本文是一篇较早的文章(2011),所以重点放在了对MF模型的特例化。即本文可以理解为MF的特例(或简化), 把两个隐因子(low-rank)矩阵,改成了原矩阵乘以一个sparse的列加权矩阵W。并且对权重矩阵进行一定的限制,如利用l1 norm控制权重矩阵竟可能多的元素是0(即稀疏化),另外,W的对角元素为0,避免自己对自己的影响。

至此,就可以利用一般的梯度下降方法求得W。(也可以通过求W的表达式,之前求W)

此方法本质上是用其他列估计当前列的值(线性组合,其中权重可以理解为当前未访问的item同其他用户已经访问过的item的相似度),对值为0的元素尤为重要,填完矩阵后,再根据各个元素的得分,就可进行排序(point-wise)。 (与其他物品越相似,所得到score越高,越应该被推荐)

收获和启发

  1. 针对implicit feedback,是否可以先利用SLIM填表,然后再Learning to Rank?
  2. 仔细研究下在解决L2R过拟合的问题当中,如何主动引入potential positive examples (如采用,先进行一波填充,根据CF聚类关系),而不单纯的寄托于model的泛化能力;是否仅基于协同关系的L2R model本身就存在泛化能力不足的现象?基于属性值的会好些?
  3. 这里有两个相似度: 利用itemKNN额外求出的item之间的相似度做特征提取(比如抽取前top-N个相似的item用于本文模型); 物品相似度(model求出的w)做target item评分估计(这里用到是全部的items,即所有列。所有可以利用前面itemKNN算出的top—N做筛选,即所谓的特征提取); 在GLSLIM文章中有具体说明,可参阅该博文

源码下载   http://www-users.cs.umn.edu/~xning/slim/html/

关于W元素非负

在训练时设置,如果Wij < 0 , 则强制增加该元素的loss value; 或者加一个限制项,如

 

 该文中有个论点值得商榷

他认为直接将unknown item置为0效果会更好, 而且有其他学者也这么认为



留言

登录 请先登陆, 再留言!