没有ALS Spark MLlib的评级字段

时间:2018-02-09 06:56:22

标签: pyspark apache-spark-mllib recommendation-engine collaborative-filtering

我正在尝试使用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

1 个答案:

答案 0 :(得分:2)

协同过滤算法将评级作为运行的输入。听一首歌并不一定意味着用户喜欢这首歌。可喜性因用户而异。

因此,在这种情况下,评级字段有助于区分用户对不同歌曲的这种不同反应。然后预测用户对他们没有听过的歌曲的评分。

我认为你采取了一种固有的假设,即如果歌曲出现在用户列表中,则用户喜欢它。在这种情况下,您可以添加一个固定填充值为1的评级列并运行代码。