mf模型 svd++_揭秘Netflix大赛单模型最优方法SVD++

太长不看版

SVD++融合了MF和FISM的优势,直接将Implicit数据反馈到模型中,优化了对user representation的表达。

目录:概述

相关工作neighborhood models概述

存在的问题

改进方法

latent factor models概述

存在的问题

改进方法

SVD++

模型结合

具体实现

下期预告

1.概述

在前面两篇文章中,我们提到collaborative filtering方法大概可以分为neighborhood based和latent factor model。这两种方法各有优缺点。今天分享的论文来自Yehuda Koren的《 Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model》将这两种方法做了一个结合,加上融合了implicit feedback的数据,在Netflix数据上的提升效果很赞。

2.相关工作

2.1 Neighborhood based models

2.1.1 概述:

neighborhood based方法可以分为user-based和item-based模型。Item-based的思路是根据user对items的偏好并推荐与这些items相似的物品,具有很好的解释性,常常被使用。

具体流程包括:基于user-item rating matrix,计算item与item之间的similarity

equation?tex=S_%7Bij%7D 。使用Pearson correlation得到

equation?tex=%5Crho_%7Bij%7D ,但由于数据相对是非常稀疏的,需要基于数据量进行置信度加权。

equation?tex=n_%7Bij+%7D 指的是同时对

equation?tex=i+

equation?tex=j 打分的user的数据。

所以

equation?tex=S_%7Bij%7D为:

equation?tex=s_%7Bij%7D+%3D%5Cfrac%7Bn_%7Bij%7D%7D%7Bn_%7Bij%7D+%2B+%5Clambda_%7B2%7D%7D%5Crho_%7Bij%7D

user对item的打分公式为:

equation?tex=%5Chat+r_%7Bui%7D+%3D+b_%7Bui%7D+%2B+%5Cfrac%7B+%5Csum_%7Bj+%5Cin+S_%7B%7D%5E%7Bk%7D%28i%3Bu%29%7D%5E%7B%7D%7Bs_%7Bij%7D%28++r_%7Bui%7D+-+b_%7Bui%7D++++++%29%7D+%7D%7B+%5Csum_%7Bj+%5Cin+S_%7B%7D%5E%7Bk%7D%28i%3Bu%29%7D%5E%7B%7Ds_%7Bij%7D+%7D

equation?tex=b_%7Bui%7D 为基准推荐模型,即:

equation?tex=b_%7Bui%7D+%3D+%5Cmu+%2B+b_%7Bu%7D+%2B+b_%7Bi%7D

获取在user打分过的items中 与

equation?tex=i 最相似的K个items计作

equation?tex=S_%7B%7D%5E%7Bk%7D%28i%3Bu%29

计算interpolation weights,可以获得更好的效果:

equation?tex=%5Chat+r_%7Bui%7D+%3D+b_%7Bui%7D+%2B+%5Csum_%7Bj+%5Cin+S_%7B%7D%5E%7Bk%7D%28i%3Bu%29%7D%5E%7B%7D%7B+%5Ctheta_%7Bij%7D%5E%7Bu%7D%28r_%7Buj%7D+-++b_%7Buj%7D%29+%7D

2.1.2 存在的问题:

依据用户已经打分过的物品计算和这些items最相似的items进行推荐,得到的是局部最优解。

2.1.3 改进方法:以item_based方法为例,之前item之间的相似度都是通过数据统计得到,现在变成模型参数通过模型训练得到,即

equation?tex=%5Chat+r_%7Bui%7D+%3D+b_%7Bui%7D+%2B+%5Csum_%7Bj++%5Cin+R%28u%29%7D%5E%7B%7D%7B+%28r_%7Buj%7D+-++b_%7Buj%7D%29w_%7Bij%7D+%7D ;

和之前不同点包括:

通过学习得到Item之间的similarity;

基于用户所有互动过的items进行预测;

考虑了用户到互动过的item

equation?tex=j 的打分以及item

equation?tex=j 与item

equation?tex=i 的关系;

将隐式数据加入到模型中;

equation?tex=%5Chat+r_%7Bui%7D+%3D+b_%7Bui%7D+%2B+%5Csum_%7Bj++%5Cin+R%28u%29%7D%5E%7B%7D%7B+%28r_%7Buj%7D+-++b_%7Buj%7D%29w_%7Bij%7D+%7D+%2B++%5Csum_%7Bj++%5Cin+N%28u%29%7D%5E%7B%7Dc_%7Bij%7D

通过学习得到

equation?tex=b_%7Bui%7D

引入行为数控制:

equation?tex=%5Chat+r_%7Bui%7D+%3D+b_%7Bui%7D+%2B++%7CR%28u%29%7C%5E%7B-%5Cfrac%7B1%7D%7B2%7D%7D++%5Csum_%7Bj++%5Cin+R%28u%29%7D%5E%7B%7D%7B+%28r_%7Buj%7D+-++b_%7Buj%7D%29w_%7Bij%7D+%7D+%2B++%7CN%28u%29%7C%5E%7B-%5Cfrac%7B1%7D%7B2%7D%7D+%5Csum_%7Bj++%5Cin+N%28u%29%7D%5E%7B%7Dc_%7Bij%7D

2.2 latent factor models

2.2.1 概述:

将user和item映射到低维空间中,可以基于此计算user和user、item与item、user与item之间的相似度。 对应的最优化问题如下:

equation?tex=%5Cmin_%7Bp%2A%2C+q%2A%2C+b%2A%7D%7B++%5Csum_%7B%28u%2Ci%29+%5Cin+k+%7D%5E%7B%7D++%28%7B++r_%7Bui%7D+-+%5Cmu+-+b_%7Bu%7D+-+b_%7Bi%7D+-+p_%7Bu%7D%5E%7BT%7Dq_%7Bi%7D%7D+%29%5E%7B2%7D+%2B+%5Clambda_%7B3%7D%28+++%7C%7Cp_%7Bu%7D%7C%7C%5E2+%2B%7C%7Cq_%7Bi%7D%7C%7C%5E2+%2B+b_%7Bu%7D%5E2+%2B+b_%7Bi%7D%5E2+%29%7D

依然可以使用SGD进行求解。关于SGD可以参考前两篇文章(MF和FISM)。

2.2.2 存在的问题:

因子分解模型可解释性不好。

2.2.3 改进方法:

给出异步SVD(Asymmetric-SVD ),预测模型为:

equation?tex=%5Chat+r_%7Bui%7D+%3D+b_%7Bui%7D+%2B++q_%7Bi%7D%5E%7BT%7D+%28+%7CR%28u%29%7C%5E%7B-%5Cfrac%7B1%7D%7B2%7D%7D++%5Csum_%7Bj++%5Cin+R%28u%29%7D%5E%7B%7D%7B+%28r_%7Buj%7D+-++b_%7Buj%7D%29x_%7Bij%7D+%7D+%2B++%7CN%28u%29%7C%5E%7B-%5Cfrac%7B1%7D%7B2%7D%7D+%5Csum_%7Bj++%5Cin+N%28u%29%7D%5E%7B%7Dy_%7Bij%7D%29

将用户表达为物品的叠加。优点包括:Fewer parameters。更少的参数。

New users。对冷启动问题也更友好。

Explainability。这样可解释性就比初始的模型要好。

Efficient integration of implicit feedback。结合了implicit feedback数据。

3. SVD++

为了进一步集成隐式反馈数据,可以通过直接将隐式数据反馈到模型中:

equation?tex=%5Chat+r_%7Bui%7D+%3D+b_%7Bui%7D+%2B++q_%7Bi%7D%5E%7BT%7D+%28p_%7Bu%7D+%2B++%7CN%28u%29%7C%5E%7B-%5Cfrac%7B1%7D%7B2%7D%7D+%5Csum_%7Bj++%5Cin+N%28u%29%7D%5E%7B%7Dy_%7Bij%7D%29

4. AN INTEGRATED MODEL模型结合

将neighborhood based model与SVD++结合,对应的预测模型为:

equation?tex=%5Chat+r_%7Bui%7D+%3D+b_%7Bui%7D+%2B++q_%7Bi%7D%5E%7BT%7D+%28p_%7Bu%7D+%2B++%7CN%28u%29%7C%5E%7B-%5Cfrac%7B1%7D%7B2%7D%7D+%5Csum_%7Bj++%5Cin+N%28u%29%7D%5E%7B%7Dy_%7Bij%7D%29++%2B++%7CR%28u%29%7C%5E%7B-%5Cfrac%7B1%7D%7B2%7D%7D++%5Csum_%7Bj++%5Cin+S_%7B%7D%5E%7Bk%7D%28i%3Bu%29%7D%5E%7B%7D%7B+%28r_%7Buj%7D+-++b_%7Buj%7D%29w_%7Bij%7D+%7D+%2B++%7CN%28u%29%7C%5E%7B-%5Cfrac%7B1%7D%7B2%7D%7D+%5Csum_%7Bj++%5Cin+S_%7B%7D%5E%7Bk%7D%28i%3Bu%29%7D%5E%7B%7Dc_%7Bij%7D

包括3个tier:equation?tex=%5Cmu+%2B+b_%7Bu%7D+%2B+b_%7Bi%7D;描述了user和items的基本特征,不考虑interaction。

latent factor model tier描述了user profile和item profile之间的interaction,

equation?tex=+q_%7Bi%7D%5E%7BT%7D+%28p_%7Bu%7D+%2B++%7CN%28u%29%7C%5E%7B-%5Cfrac%7B1%7D%7B2%7D%7D+%5Csum_%7Bj++%5Cin+N%28u%29%7D%5E%7B%7Dy_%7Bij%7D%29

neighborhood tier,做精细调整。

5. 具体实现

from surprise import SVDpp

6. 下期预告

下次想要分享的是feature-based方法Factorization Machine,是traditional 方法的最后一个了。 是一个非常好、用途广泛的base方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值