社区产品搜索系统

推荐系统实践-利用用户行为数据(下)

2017-02-16  本文已影响245人  醉起萧寒

此文是根据《推荐系统实践》部分整理而来。

PART 1 隐语义模型

隐语义模型核心思想是:通过隐含特征联系用户兴趣和物品。

举一个例子来理解这个模型。用户A的喜欢侦探小说、科普图书以及一些计算机技术书,用户B喜欢数学和机器学习的书。那么如何推荐呢?

第一个问题解决方法是:找编辑给物品分类。但是缺点有很多:

为了解决上面的问题,隐含语义分析技术出现了,它采用基于用户行为统计的自动聚类,较好地解决了编辑的问题:

隐含语义分析技术有很多著名的模型和方法:pLSA、LDA、隐含类别模型、隐含主题模型、矩阵分解。本文将以LFM为例介绍隐含语义分析技术在推荐系统中的应用。

LFM通过如下的公式计算用户u对物品i的兴趣:


Paste_Image.png

Pu,k和Qi,k是模型的参数,其中Pu,k度量了用户u的兴趣和第k个隐类的关系,而Qi,k度量了第k个隐类和物品i之间的关系。
要计算这两个参数,需要一个训练集,对于每个用户u,训练集里都包含了用户u喜欢的物品和不感兴趣的物品,通过学习这个数据集,就可以获得上面的模型参数。

推荐系统的用户行为分为显性反馈和隐性反馈。LFM在显性反馈数据上解决评分预测问题并达到了很好的精度,不过本文主要讨论的是隐性反馈数据集,这种数据集的特点是只有正样本,没有负样本。所以第一个问题就是,如何给每个用户生成负样本。
Rong Pan对比了如下几种方法:

  1. 对于一个用户,用他所有没有过的行为作为负样本。
  2. 对于一个用户,从他没有过行为的物品中均匀采样出一些物品作为负样本。
  3. 对于一个用户,从他没有过行为的物品中采样出一些物品作为负样本,但采样时,保证每个用户的正负样本数目相当。
  4. 对于一个用户,从他没有过行为的物品中采样出一些物品作为负样本,但采样时,偏重采样不热门的物品。

对于第1种方法,明显缺点是负样本太多,计算复杂度很高,精度也差。对于另外3种方法,Rong Pan在文章中表示第3种>第2种>第4种。
后来在一个比赛中,发现负样本采样时应该遵循以下原则:

通过离线实验评测LFM的性能,在MovieLens数据集上用LFM计算出用户兴趣向量p和物品向量q,然后对于每个隐类找出权重最大的物品:


Paste_Image.png

如果将LFM的结果与ItemCF和UserCF算法的性能相比,可以发现LFM在所有的指标上都优于UserCF和ItemCF。当数据非常稀疏时,LFM的性能会明显下降。

PART 2 LFM和基于邻域方法的比较

LFM是一种基于机器学习的方法,具有比较好的理论基础。这个方法和基于邻域的方法相比,各有优缺点:

上一篇 下一篇

猜你喜欢

热点阅读