我正在尝试使用Spark MLib ALS进行音乐推荐的协同过滤。输入数据有几个字段,包括userId,songId,artist等。我的数据中没有评级字段。 ALS需要评级作为其中一个参数。我环顾四周但却无法得到任何帮助。我该如何处理?采用listen_count(用户收听特定歌曲的次数)是否可以
我的数据集:
user_id song_id songtitle artist language music_director
123 1 abc artist1 English NULL
345 2 xyz artist2 English NULL
456 3 abc artist3 English NULL
567 4 xyz artist4 English NULL
678 5 xyz artist5 English NULL
789 6 abc artist6 English NULL
答案 0 :(得分:2)
协同过滤算法将评级作为运行的输入。听一首歌并不一定意味着用户喜欢这首歌。可喜性因用户而异。
因此,在这种情况下,评级字段有助于区分用户对不同歌曲的这种不同反应。然后预测用户对他们没有听过的歌曲的评分。我认为你采取了一种固有的假设,即如果歌曲出现在用户列表中,则用户喜欢它。在这种情况下,您可以添加一个固定填充值为1的评级列并运行代码。