I know that a home router have a private IP address and a public IP address, but what about the routers that an ISP uses, do these routers also have two IP addresses?
The number of IP addresses a router is usually significantly more than 2, that said it is very much possible to have routers with only a single address. Theoretically it's possible to have a router with no-ip address at all but this is generally impractical.
Normally each "interface" of the router will have an address, it's also common for the router to have a "loopback" address, which remains active regardless of which interfaces are currently active.
Interface may be a physical interface, but routers nowadays generally support Ethernet VLANs, so one physical interface may carry multiple logical interfaces.
While it is normal practice for each interface to have it's own address it is not strictly necessary. True point to point interfaces have no need for IP addresses at all. For Ethernet interfaces, the picture is more complicated and IP address is needed for arp and some routing platforms will insist that each interface has it's own IP. Others will allow configurations with each router only having a loopback address, for example a quick google found and article describing an unnumbered confirmation with ospf and aruba routers.
I don't have a link handy but I remember a presentation from a metro network operator saying they liked unnumbered interfaces because in addition to saving addresses they made it much easier to add and remove devices from a ring, and even to deploy optical bypass switches to restore the ring in the event of power failure.
Yes and no.
A router's function is to forward between multiple networks or links. Each of those links may be connected to an actual multi-host network - then an IP address on the interface is required - or the link may be point-to-point, then no IP address is required.
In extreme, a router is connected using point-to-point links only (think of simple serial lines), then no IP address at all is required.
ISP routers usually connect to multi-host networks, so they'd have at least one IP address per interface and at least two interfaces. They often have (many) more interfaces than just two however.
The general rule is that a router needs an IP address for EVERY interface on the device. This is true regardless of whether the interface is physical or logical. There are sone exceptions to the rule (like IP unnumbered) but you should plan for having each interface of a router to have an IP address with each of those addresses residing in different subnets.