论文标题: From Word Embeddings to Item Recommendation
论文地址: https://arxiv.org/pdf/1601.01356
核心思想
这一篇论文的思想相比起其他的论文来说, 思想非常简单,就是把Item 当成一句话之中的Word。 使用训练Word2Vec模型的方法来训练一个Item2Vec
这种方法我还是比较认同的, 因为需要的数据比较简单, 是实际生产之中的应用场景会多不少.
训练数据
论文之中提到的数据集太老了(2011年), 没找到. 因为论文之中提到的网页也404. 根据理解大致就是下面的样子:
1 2 3 |
User1 Loc1 Loc2 ... User2 Loc1 Loc3 ... |
但是类似的数据集还是挺多的:
https://sites.google.com/site/yangdingqi/home/foursquare-dataset
https://www.kaggle.com/chetanism/foursquare-nyc-and-tokyo-checkin-dataset
推荐方式
- Recommendation by k-nearest items (KNI)
计算target_user与item之间的相关性. 根据相关性, 把最相关的k个item推荐给用户
-
Recommendation by N-nearest users (NN)
计算用户之间的相关性. 然后对top-k用户的Loc进行统计. 推荐分数最高的地点.
-
Recommendation by N-nearest and k-nearest items (KIU)
上面两种方法的结合. (太复杂了, 后面看到, 效果也不是太好. Pass)
Evaluation / 评价方法
我只关注了其中一种:HitRate
其中 M 就是给出推荐建议的用户数. HitRate 就是 给出的推荐, 至少命中一个的比例.
训练参数
因为处理的问题不太一样, 在训练参数上面, 可以看看作者的思路:
- min_word_count :
作者改成1, 尽量多的把Loc都囊括进来
-
size:
作者在[10, 100]的范围, 以递增10的方式, 训练了不同的模型.
-
window
作者将其设置为输入向量的最大值, 即把"整句话"都囊括进来了.
-
iter:
作者真无聊, [5,25]按照5进行递增的方式来训练.
结果对比:
结果分析:
- 在这一篇论文内部的比较的方法来看, 还是KNI最好
- 跟其他方法对比, CF-C / Gao-H / Gao-SH的方法会更好, 不过他们使用了social上面的关系, 不是纯粹的Loc之间的关系.
##本文原创, 转载需注明原文出处
https://www.flyml.net

文章评论