[ReadNotes]使用Word2Vec的方式来训练Item2Vec

2018年03月05日 12814点热度 0人点赞 0条评论

论文标题: From Word Embeddings to Item Recommendation

论文地址: https://arxiv.org/pdf/1601.01356

核心思想

这一篇论文的思想相比起其他的论文来说, 思想非常简单,就是把Item 当成一句话之中的Word。 使用训练Word2Vec模型的方法来训练一个Item2Vec

这种方法我还是比较认同的, 因为需要的数据比较简单, 是实际生产之中的应用场景会多不少.

训练数据

论文之中提到的数据集太老了(2011年), 没找到. 因为论文之中提到的网页也404. 根据理解大致就是下面的样子:

但是类似的数据集还是挺多的:

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

hitrate

其中 M 就是给出推荐建议的用户数. HitRate 就是 给出的推荐, 至少命中一个的比例.

训练参数

因为处理的问题不太一样, 在训练参数上面, 可以看看作者的思路:

  • min_word_count :

    作者改成1, 尽量多的把Loc都囊括进来

  • size:

    作者在[10, 100]的范围, 以递增10的方式, 训练了不同的模型.

  • window

    作者将其设置为输入向量的最大值, 即把"整句话"都囊括进来了.

  • iter:

    作者真无聊, [5,25]按照5进行递增的方式来训练.

结果对比:

compare-result

结果分析:

  • 在这一篇论文内部的比较的方法来看, 还是KNI最好
  • 跟其他方法对比, CF-C / Gao-H / Gao-SH的方法会更好, 不过他们使用了social上面的关系, 不是纯粹的Loc之间的关系.

##本文原创, 转载需注明原文出处
https://www.flyml.net

RangerWolf

保持饥渴的专注,追求最佳的品质

文章评论