Its really tough to say a particular approach for you. It depends on the data you have and how much data you have. Lets say you have decent quantity and quality of data. First you need decide whether you chose collaborative based or content based or hybrid based approach. I will suggest to chose hybrid based approach if you have user transaction history and item description. "Neural network" is currently a buzz word, Neural network can not be a solution for all machine learning problem we faced. And obviously before using neural network you also have to keep in mind the cost behind it. Rather you try simple approach first lets experiment whether the simple approach can solve your quest. Keyword based approach mostly means content based approach. But content based approach some times may not be an appropriate solution for because it will suffer over specialization problem. Thats why I asked you to try hybrid based approach.