推荐系统实战——用户行为分析

简介

古语,听其言,观其行,用户的行为不是随机的,而是蕴含着很多模式,通过算法自动挖掘用户行为数据,从而推测出用户的兴趣和需求,做出个性化推荐。本文是自己对用户行为分析的学习笔记。

思维导图

user_action_analysis

基于邻域算法

基于用户的协同过滤(UserCF)

推荐原理:给用户推荐那些和他有共同兴趣爱好的用户喜欢的物品,着重于和用户兴趣相似的小群体的热点,更社会化。
主要包括两步:

  • 找到和目标用户兴趣相似的用户集合
  • 找到集合中用户喜欢且目标用户没有行为的物品做出推荐

reserve_sort
上面这张图是,用户行为数据导出用户间共现矩阵的过程,基于该共现矩阵,利用余弦相似度(或Jaccard)得到用户间兴趣相似度后,UserCF算法会给用户推荐和他兴趣最相似的K个用户喜欢的物品。用户u对物品i的感兴趣程度:
pui
,S(u,K)包含和用户u兴趣最接近的K个用户,N(i)是对物品i有过行为的用户集合,wuv是用户u,v的兴趣相似度,rvi用户v对物品i的兴趣。
改进
计算用户间兴趣相似度时,增加用户u,v共同兴趣列表中热门物品的惩罚。原理类似TF-IDF。

基于物品的协同过滤(ItemCF)

推荐原理:给用户推荐那些和他之前喜欢的物品类似的物品,着重于维系用户历史兴趣,更个性化。
主要包括两步:

  • 计算物品间相似度
  • 根据物品相似度和用户历史行为做出推荐

ItemCF结果可解释性更好。
改进

  • 计算物品相似度时,增加活跃用户贡献的惩罚;
  • 物品相似度的归一化,可提高推荐的多样性。

UserCF和ItemCF比较:

UserCF_ItemCF

隐语义模型(LFM)

LFM和基于邻域的方法的比较:

  • 理论基础:LFM较好的理论依据,邻域主要是基于统计方法;
  • 离线计算的空间复杂度:LFM更节省空间;
  • 离线计算的时间复杂度:一般情况,LFM高于CF;
  • 在线实时推荐:传统LFM难以实现实时;
  • 推荐解释:ItemCF好于LFM。

注:当数据集非常稀疏时,LFM的性能会明显下降,甚至不如UserCF和ItemCF的性能。

基于图的模型

图中顶点的相关性高的一对顶点一般具有如下特征:

  • 两个顶点之间有很多路径相连;
  • 连接两个顶点之间的路径长度都比较短;
  • 连接两个顶点之间的路径不会经过出度比较大的顶点。

随机游走算法思路:
假如要给用户A进行个性化推荐,可以从用户A对应的节点开始在用户物品二分图(如下图)上随机游走,游走到任何一个节点时,首先按照概率a决定是否继续游走,若继续,就从当前节点指向的节点中按照均匀分布随机选择一个节点作为下一次游走经过的节点;否则,停止该次游走,从用户A对应节点重新开始游走。多次迭代,直到每个物品节点被访问到的概率收敛到一个数。
part2graph

[1]项亮,推荐系统实战.

分享