ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

推荐系统架构

2019-04-07 13:40:27  阅读:778  来源: 互联网

标签:架构 矩阵 推荐 系统 用户 相似 公式 物品 排序


 

推荐系统通常可分为两部分召回与排序,粗排和精排

 

首先明确一点,计算广告或者推荐系统中数据特点,大多是高维离散型数据。

 1 召回

召回框架如下图所示:

常用的召回算法:

    1基于共现关系的collaborative Filtering:利用用户的行为数据建模。这里需要注意用户活跃度与物品流行度,仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法

            以下展示常见的相似度计算公式:  

      1  用户相似度 

         A:             

           B:  UserCF算法中用户u对物品i的感兴趣程度:  
          

                                    其中, S(u, K)包含和用户u兴趣最接近的K个用户, N(i)是对物品i有过行为的用户集合, wuv是用户u和用户v的兴趣相似度, rvi代表用户v对物品i的兴趣,因为使用的是单一行为的隐反馈数据,所以所有的rvi=1

         C:   

                  可以看到,该公式惩罚了用户u和用户v共同兴趣列表中热门物品对他们相似度的影响 

 

                        2 基于物品的协同过滤

      

            这里,分母|N(i)|是喜欢物品i的用户数,而分子 N i N j ( ) ( )  是同时喜欢物品i和物品j的用户数。因此,上述公式可以理解为喜欢物品i的用户中有多少比例的用户也喜欢物品j 

           上述公式虽然看起来很有道理,但是却存在一个问题。如果物品j很热门,很多人都喜欢那么Wij就会很大,接近1。因此,该公式会造成任何物品都会和热门的物品有很大的相似度,这对于致力于挖掘长尾信息                                       的推荐系统来说显然不是一个好的特性。为了避免推荐出热门的物品,

            可以用下面的公式:

            这个公式惩罚了物品j的权重,因此减轻了热门物品会和很多物品相似的可能性。 

            下图是一个根据上面的程序计算物品相似度的简单例子。图中最左边是输入的用户行为记录,每一行代表一个用户感兴趣的物品集合。然后,对于每个物品集合,我们将里面的物品两两加一,得到一个                                                  矩阵。最终将这些矩阵相加得到上面的C矩阵。其中C[i][j]记录了同时喜欢物品i和物品j的用户数。最后,将C矩阵归一化可以得到物品之间的余弦相似度矩阵W。 

                        

 

                               改进版ItemToItem: 

                  

 


    2 Model based CF:

            MF    

           SVD     

 

           FISM: 用评价过的Item表示用户: 

 

           SVD++: 嵌入ID类型数据以及用户表示过的物品表示用户: 

 

           FM: 

 

  通过用户偏好建模选取key,通过k近邻搜索来查找value

  查找算法: LSH KD tree ball tree

 2 排序

推荐系统中的排序是多目标排序, 比如CTR与CVR预估,按照优化方式的不同,也就是learn to rank的三种方式,可分为Pointwise  CTR预估,Pairwise   bpr  Lambed MART,listWise  

 

常用的pointwise方式,也就是ctr预估模型,之前已经介绍过,现在来看pair-wise方式。

pointwise在优化L2 loss ,

但是很多证据表明

一个低MSE模型不⼀定代表排序效果好。。
– Possible Reasons:

1) 均方误差(e.g., RMSE) and 排序指标之间的分歧
2) 观察有偏 – 用户总是去对喜欢的电影打分 现在的工作开始逐步朝着优化pairwise ranking loss 

优化相对序关系,不是优化绝对值。

 

首先明确排序模型的评价指标:

 

NDCG: 

AUC: 有两层含义,1 ROC曲线下的面积,2 任给一个正样本,排在负样本之前的概率有多大。

 

但是AUC通常不可导:所以引入了BPR,

 可以看出BPR可以近似看做AUC。类似的还有RankNet,常见的排序指标⽆法求梯度
• 通过概率损失函数学习Ranking Function
• 两个候选集之间的相对排序位置作为⽬标概率
• 交叉熵(cross entropy loss function)作为概率损失函数 ,模型有LambdaNet与LambdaMart,后续总结。

 

 

 

标签:架构,矩阵,推荐,系统,用户,相似,公式,物品,排序
来源: https://www.cnblogs.com/xianbin7/p/10665056.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有