协同过滤及其优化

作者: shrinkle | 来源:发表于2021-11-15 10:40 被阅读0次

     目录

    一、itemCF

    二、userCF

    三、Swing

    四、Seq Embedding CF

    五、Graph Embedding CF

    六、深度模型:PDN

    七、混合CF——User-Item CF——矩阵分解MF

    一、itemCF

    ItemCF即利用user与item之间的交互行为数据来计算item之间的关联相似度。

    1.实现方法:

    通过用户观影历史构建item之间的共现矩阵,然后计算LLR相似度,对相似度得分排序后取topK个,即得到每个item最相近的item作为推荐结果。共现矩阵如下所示:

    Anot A

    Bk11k12

    not Bk21k22

    k11:观看过A和B的用户数

    k12:未观看过A,观看过B的用户数

    k21:观看过A,未观看过B的用户数

    k22:A和B都未观看过的用户数

    LLR相似度:通过计算矩阵的行熵,列熵,矩阵熵来计算A和B的相似度

    计算公式:

    rowEntropy = entropy(k11, k12) + entropy(k21, k22)

    columnEntropy = entropy(k11, k21) + entropy(k12, k22)

    matrixEntropy = entropy(k11, k12, k21, k22)

    则sim(A,B) = 2 * (matrixEntropy - rowEntropy - columnEntropy)

    2.优点:

    (1)算法原理简单直接,可解释性强;

    (2)效果稳定;

    (3)可以保证用户兴趣的相关性;

    (4)行为丰富的用户召回也是多样的;

    (5)可以捕捉用户的实时兴趣;

    (6)能为用户推荐出多样性、新颖性的item

    (7)只需要用户的行为信息,不依赖用户和item的side info

    3.问题:

    (1)计算相似度时考虑未观看的用户群体,k21,k12和k22;

    (2)k22由总用户数-k11-k12-k21得来。由于数据的稀疏性,k22>>k11,算法存在一定的不合理性;

    (3)往往I2I的索引是基于一种共现的统计,可能出现冷门商品排不上,新品排不了的问题;

    (4)如何即考虑I2I的共现信息,又考虑Item两端的Side Info;

    (5)如何将这种索引的建立和多样的业务目标关联;

    (6)如何考虑多个Trigger指向相同的一个Item的联合概率。

    (7)不适用解决冷启动问题,对于行为数据少或没有的item,无法进行推荐;

    (8)由于item数量多,行为数据也是稀疏的,而稀疏的行为矩阵会导致计算出的item相似度不够准确;

    4.优化方法:

    (1)过热打压

    (2)过滤异常uid、热门页视频、特殊类别视频(例如千里眼视频)

    (3)长短期融合

    (4)实时离线融合

    (5)显式使用评分值:将用户留存作为u2i的评分,即相似度计算变成:

    (6)相似度的显著性加权:,当物品i和j的共有评分用户较少时,数据的稀疏性会导致相似度计算失真(小数据量的统计意义减弱),此时应削弱其重要性,进行降权:

    (7)活跃用户惩罚:活跃用户的评分物品数量较多,对物品的区分性较差,对物品相似度计算的贡献不如非活跃用户大,应对此进行惩罚。方式是对评分降权,权重为,其中N(u)表示用户u的评分物品数量、即用户活跃度:

    (8)itemCF和userCF结合:将itemCF和userCF的预测分加权组合:

     (9)通过聚类,加速相似物品的计算:在计算topK个相似item时只需在item所在聚类中做相似度排序取top即可。

    二、userCF

    userCF相当于itemCF的对偶算法,是利用user与item之间的交互行为数据来计算user之间的关联相似度。

    1.实现方法:

    首先构建用户的共现矩阵,计算LLR相似度,针对每个user找到最相似的topK个用户,然后将这K个用户最近n条观影历史合并排序,取top N个视频推荐给当前user。

    扩展一下,还可以通过user embedding之间计算相似度的方式,来得到topK个相似用户,然后再找推荐视频。user embedding可以用过youtubeDNN、word2vec等模型训练得到。

    2.优点:

    (1)推荐结果着重于和用户兴趣相似的小群体的热点,推荐更加社会化,反映了用户所在兴趣群体中物品的热门程度;

    (2)对物品冷启动不敏感, 对于新加入系统的物品,一旦有用户对该新物品产生行为,UserCF可以将该新物品推荐给和该用户相似的人群;

    (3)适合新热推荐,可以促进新视频和热视频的快速传播;

    3.缺点:

    (1)无法给冷启动用户产生推荐;

    (2)由于item的特征相对于用户的兴趣一般比较稳定,所以UserCF中用户相似度矩阵相比ItemCF中物品相似度矩阵需要更新更频繁;

    (3)可解释性弱;

    三、Swing

    计算物品i和物品j之间的相似度时只考虑与二者都存在交互行为的用户群体U。对于U中的用户两两计算其共现权重并求和。

    1.实现方法:

    Swing指的是秋千,例如用户 u 和用户 v ,都购买过同一件商品 i ,则三者之间会构成一个类似秋千的关系图。若用户 u 和用户 v 之间除了购买过 i 外,还购买过商品 j,则认为两件商品是具有某种程度上的相似的。

    也就是说,商品与商品之间的相似关系,是通过用户关系来传递的。为了衡量物品 i 和 j 的相似性,考察都购买了物品 i 和 j 的用户 u 和用户 v , 如果这两个用户共同购买的物品越少,则物品  和 j 的相似性越高。

    相似度计算公式:

    2.优点:

     user-item-user 的结构比 itemCF 的单边结构更稳定,线上的实际效果也明显优于通过LLR计算相似度的itemCF;

    3.缺点:

    计算量大,因此线上实际实现的过程中,只取了最近7天的观影历史,而相同时间内,itemCF取了最近120天的观影历史;

    四、Seq Embedding CF

    userCF计算的是user之间的相似度,实际上也可以认为是用户全部观影序列之间的相似度。从原理上看,itemCF和userCF是对偶关系,但实际应用中可以发现,由于user本身的复杂多变性,user与user之间的相似度较低,且不稳定,这也是userCF的效果通常不如itemCF的原因(因为item的特征是固定的、内容是单一的,而用户的兴趣是变化的、多样的)。

    但是,但看用户短期内的局部观影序列,可以大致认为user的特征也是稳定的,这也就是seq embeddingCF想法产生的原因。

    1.实现方法:

    将用户的观影序列分割成一个一个小的sequence,然后通过计算sequence的相似度,找到针对当前用户最相似的seq(可以通过计算embedding的余弦值或者共现矩阵的方式来计算相似度),然后再融合召回。

    2.优点:

    用户短期的兴趣是比较稳定的,所以能召回更相似的视频,实际生产中,线上的效果也明显好于userCF。

    3.缺点:

    计算量大,由于一个user现在对应n条观影序列,所以数据量是userCF的n倍;

    五、Graph Embedding CF

    图模型是更广义上的协同过滤,利用节点之间的多跳关系聚合更新节点的embedding,从而实现更深层次的协同关系计算。

    1.实现方法:

    利用用户观影历史构建图结构,然后利用LightGCN模型,计算节点的图卷积,得到节点的embedding,通过embedding相似召回视频。

    2.优点:

    模型简单容易迭代,且利用了图信息,效果要优于传统的itemCF;

    3.缺点:

    效果不如传统的itemCF稳定;

    4.详细实现策略见:推荐图模型总结_码一码码码的博客-CSDN博客

    六、深度模型:PDN

    联合建模u2i和i2i,通过两条路径,训练得到user embedding、item embedding和共现embedding。

    1.实现方法:

    整个模型由三个子网络构成:

    trigger_net:合并user、interact、history向量输入5层神经网络;

    similar_net:合并history、coCount、target向量输入五层神经网络;

    user_bais_net:将user向量输入三层神经网络;

    激活函数为relu,最后一层是sigmoid函数;

    trigger_net和similar_net的输出合并,为path_u_j_i,即第j个物品对于target的评分,再加上偏置user_bais_net,即为最后的预测输出;

    在实现实时召回的过程中,为满足时延要求,将路径检索解耦为两个部分:先通过triggerNet检索出用户最感兴趣的topM个商品,再在其中用similarNet构建item相似度索引,对topM个item实现i2i的检索;

    2.优点:

    融合了协同过滤和embedding算法,通过神经网络提取用户的兴趣向量,能更精准地召回推荐物品,实现测试中的线上效果也优于传统的协同算法;

    七、混合CF——User-Item CF——矩阵分解MF

    1、算法原理:

    ALS算法:假设打分矩阵式近似低秩的,通过矩阵分解得到user embedding和item embedding;

    2、算法步骤:

    迭代的方式求解一系列最小二乘回归问题。每次迭代时,固定用户因子矩阵或者物品因子矩阵,然后用固定的这个矩阵及评级矩阵来更新另一个矩阵,然后再反过来。迭代直到模型收敛或到了预设好的次数。

    一般使用RMSE(root-mean-square error)评估误差是否收敛:

    3、缺点:

    (1)是一个离线算法;

    (2)无法准确评估新加入的用户或商品,有冷启动的问题;

    相关文章

      网友评论

        本文标题:协同过滤及其优化

        本文链接:https://www.haomeiwen.com/subject/akzftrtx.html