我是靠谱客的博主 无语荷花,最近开发中收集的这篇文章主要介绍论文解析:Collaborative Filtering for Implicit Feedback Datasets论文解析:Collaborative Filtering for Implicit Feedback Datasets,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

论文解析:Collaborative Filtering for Implicit Feedback Datasets

基本信息

  • 作者:Yifan Hu, Yehuda Koren, Chris Volinsky
  • 单位:AT&T Labs – Research
  • 发表:International Conference on Data Mining, 2008
  • 引用量:2002 (截止2019年10月)
  • Spark ml机器学习库ALS隐式矩阵分解(通过implicitPrefs参数指定采用显性反馈还是隐性反馈模型)算法spark.ml.recommendation.ALS参考本文实现
  • 本文的意义在于在传统的FM算法的基础上,考虑了用户的隐形反馈建模的问题

问题背景

以往的矩阵分解模型基于user对于item的显性反馈,而对于没有显性反馈的user-item对,则认为是user-item评分矩阵的缺失值。但是在实际系统中,无法收集user对于item的显性反馈(例如user对item的评分),更多数据是隐性反馈(例如用户的购买历史、浏览历史)。
隐性反馈有如下特点:

  1. 没有负面反馈。在显性反馈中,较高的评分可以看作是正面反馈,较低的评分可以看作负面反馈,而评分矩阵中缺失的评分则被某种意义上认为是没有信息量的,在计算模型中不予考虑;而在隐性反馈中,所有的反馈都是正面反馈,而没有反馈的user-item项未必是负面反馈(有可能该user没有点击/购买该item只是因为没有看到该item),但是模型也必须考虑这些没有反馈的user-item项,否则模型中就只有正面反馈没有负面反馈
  2. 隐性反馈信噪比更低
  3. 显性反馈的数值表示user偏好,具有明确的数值意义;隐性反馈的数值只能表达某种意义上的置信度。隐性反馈中的数值通常代表user action发生的次数(user对item的浏览量/购买量),但是action的次数并不能直接反应user的偏好。例如,用户观看一个视频2次可能是因为看视频的中间去处理了别的事情第一次视频中断了
  4. 模型评价指标不同。在显性反馈模型中,可以直接使用诸如mse之类的指标来评估模型,而在隐性反馈模型中,由于user-item项的值没有明确的偏好数字量的意义,因此无法直接用上述指标评估模型

模型

在经典FM模型的基础上加入置信度加权。经典FM模型的优化模型为
m i n x , y Σ u , i ( r u i − x u T y i ) 2 + λ ( Σ u ∣ ∣ x u ∣ ∣ 2 + Σ i ∣ ∣ y i ∣ ∣ 2 ) min_{x,y} Sigma_{u,i}(r_{ui} - x_u^Ty_i)^2 + lambda(Sigma_u||x_u||^2 + Sigma_i||y_i||^2) minx,yΣu,i(ruixuTyi)2+λ(Σuxu2+Σiyi2)
其中 x u x_u xu y i y_i yi分别是用户 u u u和物品 i i i的隐向量, r u i r_{ui} rui u u u i i i的评分(显性反馈)。第一项是矩阵分解项,第二项是参数正则项。
置信度权重的公式为
c u i = 1 + α r u i c_{ui} = 1 + alpha r_{ui} cui=1+αrui
其中 r u i r_{ui} rui是用户 u u u对物品 i i i的隐性反馈, α alpha α是超参数。当 r u i = 0 r_{ui} = 0 rui=0时, c u i = 1 c_{ui} = 1 cui=1,表示模型也会计算没有隐性反馈的项,只是权重较小。
本文提出的隐性反馈模型的公式为
m i n x , y Σ u , i c u i ( p u i − x u T y i ) 2 + λ ( Σ u ∣ ∣ x u ∣ ∣ 2 + Σ i ∣ ∣ y i ∣ ∣ 2 ) min_{x,y} Sigma_{u,i}c_{ui}(p_{ui} - x_u^Ty_i)^2 + lambda(Sigma_u||x_u||^2 + Sigma_i||y_i||^2) minx,yΣu,icui(puixuTyi)2+λ(Σuxu2+Σiyi2)
其中 c u i c_{ui} cui是上面提到的置信度权重, p u i p_{ui} pui是一个表示 u u u i i i之间是否存在隐性反馈的0-1变量,存在隐性反馈时 p u i = 1 p_{ui} = 1 pui=1,否则 p u i = 0 p_{ui} = 0 pui=0. 因此,除了置信度加权和利用无反馈数据外,本文的隐性反馈模型和经典FM模型的区别还在于矩阵分解项中隐性反馈只有0-1没有数值,隐性反馈的数值体现在置信度权重当中。

优化方法

与经典FM一样,本文也采用ALS(Alternating Least Squares, 交替最小二乘法)对上述模型进行优化。
记user的隐向量为 X ∈ R m × f Xin R^{mtimes f} XRm×f,记item的隐向量矩阵为 Y ∈ R n × f Yin R^{ntimes f} YRn×f m , n , f m, n, f m,n,f分别为user的个数,item的个数和隐向量的维度, C u , C i C^u, C^i Cu,Ci分别为 u u u i i i对应的置信度权重对角矩阵, p ( u ) , p ( i ) p(u), p(i) p(u),p(i)分别为 u u u i i i对应的隐性反馈0-1向量,根据最小二乘法,有迭代公式
x u = ( Y T C u Y + λ I ) − 1 Y T C u p ( u ) x_u = (Y^T C^u Y + lambda I)^{-1} Y^T C^u p(u) xu=(YTCuY+λI)1YTCup(u)
y i = ( X T C i X + λ I ) − 1 X T C i p ( i ) y_i = (X^T C^i X + lambda I)^{-1} X^T C^i p(i) yi=(XTCiX+λI)1XTCip(i)
对比经典FM算法的ALS迭代公式为
x u = ( Y T Y + λ I ) − 1 Y T r ( u ) x_u = (Y^T Y + lambda I)^{-1} Y^T r(u) xu=(YTY+λI)1YTr(u)
y i = ( X T X + λ I ) − 1 X T r ( i ) y_i = (X^T X + lambda I)^{-1} X^T r(i) yi=(XTX+λI)1XTr(i)
其中 r ( u ) , r ( i ) r(u), r(i) r(u),r(i)分别为 u u u i i i对应的数值评分向量。

最后

以上就是无语荷花为你收集整理的论文解析:Collaborative Filtering for Implicit Feedback Datasets论文解析:Collaborative Filtering for Implicit Feedback Datasets的全部内容,希望文章能够帮你解决论文解析:Collaborative Filtering for Implicit Feedback Datasets论文解析:Collaborative Filtering for Implicit Feedback Datasets所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部