Can only the master initiate communication in SPI whereas in I2C the slave can also initiate the communication?
With both only master can initiate the communication. I²C can however have multiple masters and the nodes can change the roles, so it is a bit more flexible. But saying that slave could initiate communication is still not correct.

A common way for a slave to indicate that it wants to communicate to the master is to use an interrupt signal. On many sensors and ADCs they are called "data ready" or something similar. After a slave has asserted the signal the master knows that the slave has some new data available.