I am genuinely interested how such a thing would be done. I understand that it wouldn’t be as hard as with communism, but I can’t think of any way to encourage companies to make better (genuinely better) products. I remember how my mother told me how in her days (she lived in the DDR) there wasn’t really any reason to be better than another company, as they would all be payed equally.
That question is a little hard to answer unless we have more specifics of this hypothetical socialist economy we are talking about.
If everything is centrally planned, innovation might come from the government paying out bonuses to people who improve the efficiency of production of goods with very high demand, or otherwise reduce the amount of human labor necessary to produce goods.
If we are talking about a heavily regulated market economy with a concerted effort to minimize the gap between rich and poor (e.g. 100% tax rate beyond a certain level of income, along with universal basic income), then the free market forces could encourage innovation as they are theoretically supposed to do right now.
Even without government intervention, people might enjoy hosting contests in which large numbers of people vote for which products they believe deserve more innovation. This model already sort-of exists in the form of free/libre open-source software. Projects that people find to be most useful tend to amass larger communities of users, and these communities continue to innovate the software. This happens without any rewards offered, but projects that become very large tend to attract donation money which becomes a kind of reward for the innovation. This also happens in a “game jam” where participants compete to create a compute game, and the game that gets the most votes wins a prize.