推荐系统入门

2023-05-22


1. 推荐系统的意义


” role=”presentation” style=”position: relative;">网络爆炸阶段信息过载的解决方案:


” role=”presentation” style=”position: relative;”>对于用户来说:找到有趣的东西,协助决策,找到新的东西。
” role=”presentation” style=”position: relative;”>对于商家来说:提供人性化的服务,增强信任和粘性,增加收入。


2. 推荐系统的构成


” role=”presentation” style=”position: relative;">前台显示页面、后台日志系统、推荐系统等部分,如图所示:


3. 建议对系统进行评估


3.1 离线试验

也就是线下部分,用来训练模型。


优势:


  1. 无需对实际系统进行控制;
  2. 无需用户参与感受;
  3. 速度快,可以检测大量算法;

缺陷


  1. 无法计算商业关注的指标;
  2. 离线试验指标商业指标存在差距;

3.2 用户调查

优势:


  1. 获得很多反映客户主观感受的指标;
  2. 测试风险很低,发生错误后很容易填补;

缺陷:


招募检测客户的成本较高;


设计双盲试验比较困难,在试验环境中收集的试验指标在现实环境中可能无法再现;


一般情况下,一个新的推荐系统最终上线需要经过以上三个实验:


1) 在很多离线指标上,通过离线实验证明其算法优于当前算法;


2) 根据用户调查,确定其客户满意度不低于当前算法;


3) 在我们关心的指标上,通过在线AB检测,确定其优于当前算法;


4 建议进行系统评估


4.1 准确度

  1. RMSE(均方根误差),MAE(平均绝对误差)
  2. Top N推荐

” role=”presentation” style=”position: relative;">主要是:precison准确度,recall召回率指标
” role=”presentation” style=”position: relative;">准确性是指在推荐的10条信息中,顾客真正感兴趣的条数,召回率是指顾客真正感兴趣的你推荐条数的比例。


下图中R(U)为推荐,T(U)选择用户:


” role=”presentation” style=”position: relative;”>



有关更多信息,请参考:在机器学习中深入探讨ROC和PR曲线


4.2 覆盖率

” role=”presentation” style=”position: relative;">推荐的物品约占物品集合的比例;


4.3 多样性

” role=”presentation” style=”position: relative;">推荐列表中物体两组之间的差异;


4.4 原创、惊喜、实时、商业目标等。

5. 推荐系统


5.1 基于内容的推荐系统

优势:


  1. 推荐基于顾客喜欢的物品的属性/信息。
  2. 需要对内容进行分析,不需要考虑用户与客户之间的联系。


缺陷:


  1. 要求内容易抽取成有价值的特征,特征内容具有良好的结构性;
  2. 无法很好地处理一词多义和一义多词带来的语义问题;


步骤:


  1. 建立一个推荐物品的特点。
  2. 建立一个用户喜欢的物品的特点。
  3. 计算相似度


例如,文档中常用的余弦相似性:







cos=w1(w1,w2)∗w2||w1||||∗||w2||||| role=”presentation” style=”text-align: center; position: relative;”>cos=w1(w1,w2)∗w2||w1||||∗|w2||cos(w1,w2)=w1∗w2||w1|||∗||w2||



5.2 协同过滤

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

算法步骤:


  1. 找出与目标用户兴趣相似的客户集合,计算用户的相似性
  2. 找出“近邻”,对近邻在新物品的评价(评分)加权推荐。


下面这个很直观的例子:


兔与米老鼠最相似,则向米老鼠推荐兔喜爱的物品:


5.2.2 基于物体的协同过滤(ItemCF)

算法步骤:


  1. 对有相同用户互动的物品,计算物体的相似性
  2. 找到物品“近邻”,推荐。


衡量相似度:


协同过滤的对比:


在这些情况下,ItemCF可以在一定的前提下缓解冷启动,而且它更稳定,而且更有说服力。


协同过滤的优点


  1. 基于用户行为,推荐内容不需要先验知识。
  2. 只要使用者与商品相关矩阵,结构紧凑。
  3. 当用户行为丰富时,效果良好。


协同过滤缺陷


  1. 需要大量的显性/隐性用户行为
  2. 商品之间需要完全相同的联系,类似的不行。
  3. 假定顾客的兴趣主要取决于以前的行为,而与当前前后文环境无关。
  4. 受数据稀疏影响。可选择二次关联。


冷启动问题


对于新客户


  1. 对于新客户来说,所有推荐系统都有这个问题。
  2. 推荐很受欢迎的商品
  3. 收集一些信息 在用户注册的时候收集一些信息
  4. 用户注册后,使用一些互动游戏等来决定喜欢和不喜欢。


对于新商品


  1. 根据自己的属性,寻求与原产品的相似性。
  2. Item-可以推荐based协同过滤。


5.3 推荐系统基于矩阵分解。

” role=”presentation” style=”position: relative;">原理:根据现有的评分矩阵(很稀疏),将其分解为低维用户特征矩阵(评分者对每一个因素的喜好程度)和商品特征矩阵(商品包括每一个因素的水平),然后反过来分析数据(客户特征矩阵乘以商品特征矩阵获得新的评分矩阵)以获得预测结果;


SVD

” role=”presentation” style=”position: relative;">SVD的时间复杂度为O(m^3)M往往稀疏,有空缺值。简单的方法就是把空缺值补上随机值,然后svd就可以分解了,但是推荐效果一般,所以这个问题一般会转化为优化问题;同时,原始矩阵有0多个,不应该用0填充。


矩阵分解


也就是说,给出一个损失函数,然后进行优化。


5.4 混合推荐

(1)加权混合: 根据一定的权重,使用线性公式组合几种不同的推荐。具体权重值需要在测试数据集中反复测试,才能达到最佳的推荐效果;


(2)转换混合:对于不同的情况(信息量、系统运行情况、用户和物体的数量等)。),推荐策略可能有很大的不同,所以转换混合方式是允许选择最合适的推荐算法,在不同的情况下计算推荐;


(3)分区混合:采用多种推荐算法,并向用户显示不同的推荐结果;事实上,Amazon,当当网等许多电子商务网站都采用这种方式,用户可以得到非常全面的推荐,也更容易找到自己想要的东西;


(4)分层混合:采用多种推荐算法,将一种推荐算法的结果作为另一种输入,然后综合每种推荐算法的优缺点,获得更准确的推荐;


参考资料:
1. 七月在线推荐系统原理与应用
2. 推荐系统





                                



1. 推荐系统的意义


” role=”presentation” style=”position: relative;">网络爆炸阶段信息过载的解决方案:


” role=”presentation” style=”position: relative;”>对于用户来说:找到有趣的东西,协助决策,找到新的东西。
” role=”presentation” style=”position: relative;”>对于商家来说:提供人性化的服务,增强信任和粘性,增加收入。


2. 推荐系统的构成


” role=”presentation” style=”position: relative;">前台显示页面、后台日志系统、推荐系统等部分,如图所示:


3. 建议对系统进行评估


3.1 离线试验

也就是线下部分,用来训练模型。


优势:


  1. 无需对实际系统进行控制;
  2. 无需用户参与感受;
  3. 速度快,可以检测大量算法;

缺陷


  1. 无法计算商业关注的指标;
  2. 离线试验指标商业指标存在差距;

3.2 用户调查

优势:


  1. 获得很多反映客户主观感受的指标;
  2. 测试风险很低,发生错误后很容易填补;

缺陷:


招募检测客户的成本较高;


设计双盲试验比较困难,在试验环境中收集的试验指标在现实环境中可能无法再现;


一般情况下,一个新的推荐系统最终上线需要经过以上三个实验:


1) 在很多离线指标上,通过离线实验证明其算法优于当前算法;


2) 根据用户调查,确定其客户满意度不低于当前算法;


3) 在我们关心的指标上,通过在线AB检测,确定其优于当前算法;


4 建议进行系统评估


4.1 准确度

  1. RMSE(均方根误差),MAE(平均绝对误差)
  2. Top N推荐

” role=”presentation” style=”position: relative;">主要是:precison准确度,recall召回率指标
” role=”presentation” style=”position: relative;">准确性是指在推荐的10条信息中,顾客真正感兴趣的条数,召回率是指顾客真正感兴趣的你推荐条数的比例。


下图中R(U)为推荐,T(U)选择用户:


” role=”presentation” style=”position: relative;”>



有关更多信息,请参考:在机器学习中深入探讨ROC和PR曲线


4.2 覆盖率

” role=”presentation” style=”position: relative;">推荐的物品约占物品集合的比例;


4.3 多样性

” role=”presentation” style=”position: relative;">推荐列表中物体两组之间的差异;


4.4 原创、惊喜、实时、商业目标等。

5. 推荐系统


5.1 基于内容的推荐系统

优势:


  1. 推荐基于顾客喜欢的物品的属性/信息。
  2. 需要对内容进行分析,不需要考虑用户与客户之间的联系。


缺陷:


  1. 要求内容易抽取成有价值的特征,特征内容具有良好的结构性;
  2. 无法很好地处理一词多义和一义多词带来的语义问题;


步骤:


  1. 建立一个推荐物品的特点。
  2. 建立一个用户喜欢的物品的特点。
  3. 计算相似度


例如,文档中常用的余弦相似性:







cos=w1∗(w1,w2);|w2|||||#x2217||||||;||w2||||| role=”presentation” style=”text-align: center; position: relative;”>cos=w1(w1,w2)∗w2||w1|||∗|w2||cos(w1,w2)=w1∗w2||w1|||∗||w2||




5.2 协同过滤

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

算法步骤:


  1. 找出与目标用户兴趣相似的客户集合,计算用户的相似性
  2. 找出“近邻”,对近邻在新物品的评价(评分)加权推荐。


下面这个很直观的例子:


兔与米老鼠最相似,则向米老鼠推荐兔喜爱的物品:


5.2.2 基于物体的协同过滤(ItemCF)

算法步骤:


  1. 对有相同用户互动的物品,计算物体的相似性
  2. 找到物品“近邻”,推荐。


衡量相似度:


协同过滤的对比:


在这些情况下,ItemCF可以在一定的前提下缓解冷启动,而且它更稳定,而且更有说服力。


协同过滤的优点


  1. 基于用户行为,推荐内容不需要先验知识。
  2. 只要使用者与商品相关矩阵,结构紧凑。
  3. 当用户行为丰富时,效果良好。


协同过滤缺陷


  1. 需要大量的显性/隐性用户行为
  2. 商品之间需要完全相同的联系,类似的不行。
  3. 假定顾客的兴趣主要取决于以前的行为,而与当前前后文环境无关。
  4. 受数据稀疏影响。可选择二次关联。


冷启动问题


对于新客户


  1. 对于新客户来说,所有推荐系统都有这个问题。
  2. 推荐很受欢迎的商品
  3. 收集一些信息 在用户注册的时候收集一些信息
  4. 用户注册后,使用一些互动游戏等来决定喜欢和不喜欢。


对于新商品


  1. 根据自己的属性,寻求与原产品的相似性。
  2. Item-可以推荐based协同过滤。


5.3 推荐系统基于矩阵分解。

” role=”presentation” style=”position: relative;">原理:根据现有的评分矩阵(很稀疏),将其分解为低维用户特征矩阵(评分者对每一个因素的喜好程度)和商品特征矩阵(商品包括每一个因素的水平),然后反过来分析数据(客户特征矩阵乘以商品特征矩阵获得新的评分矩阵)以获得预测结果;


SVD

” role=”presentation” style=”position: relative;">SVD的时间复杂度为O(m^3)M往往稀疏,有空缺值。简单的方法就是把空缺值补上随机值,然后svd就可以分解了,但是推荐效果一般,所以这个问题一般会转化为优化问题;同时,原始矩阵有0多个,不应该用0填充。


矩阵分解


也就是说,给出一个损失函数,然后进行优化。


5.4 混合推荐

(1)加权混合: 根据一定的权重,使用线性公式组合几种不同的推荐。具体权重值需要在测试数据集中反复测试,才能达到最佳的推荐效果;


(2)转换混合:对于不同的情况(信息量、系统运行情况、用户和物体的数量等)。),推荐策略可能有很大的不同,所以转换混合方式是允许选择最合适的推荐算法,在不同的情况下计算推荐;


(3)分区混合:采用多种推荐算法,并向用户显示不同的推荐结果;事实上,Amazon,当当网等许多电子商务网站都采用这种方式,用户可以得到非常全面的推荐,也更容易找到自己想要的东西;


(4)分层混合:采用多种推荐算法,将一种推荐算法的结果作为另一种输入,然后综合每种推荐算法的优缺点,获得更准确的推荐;


参考资料:
1. 七月在线推荐系统原理与应用
2. 推荐系统



本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com