[文献阅读] DMF: Deep Matrix Factorization Models for Recommender Systems

论文题目:《Deep Matrix Factorization Models for Recommender Systems》
论文地址:https://www.ijcai.org/proceedings/2017/0447.pdf

What: In this paper, we propose a novel matrix factorization model with neural network architecture.
Why: Two recent works above exploit only implicit feedback for item recommendations instead of explicit rating feedback.
How: Firstly, we construct a user-item matrix with explicit ratings and non-preference implicit feedback. With this matrix as the input, we present a deep structure learning architecture to learn a common low dimensional space for the representations of users and items. Secondly, we design a new loss function based on binary cross entropy, in which
Result: we consider both explicit ratings and implicit feedback for a better optimization. The experimental results show the effectiveness of both our proposed model and the loss function.
Conclusion: On several benchmark datasets, our model outperformed other state-of-the-art methods.

文章提出了一种基于神经网络结构的深度矩阵分解模型。该模型同时考虑了用户对物品的显式评分和非偏好隐式反馈,然后通过两组神经网络将用户和物品的特征提取到一个低维空间;并通过设计的新的损失函数进行反向学习,所设计的新损失函数将显式反馈加入二元交叉熵损失函数中,称为归一化交叉熵损失。实验证明该模型在几个典型数据集上相对于其他经典模型表现更好。

这篇文章是用深度矩阵分解模型做Top-N推荐,本文主要介绍Motivation以及DMF模型

Motivation

现阶段常用的用于推荐的方法,包括协同过滤,矩阵分解,深度学习方法。

协同过滤是策略,矩阵分解是实现策略的方法。协同过滤主要是属性相近或兴趣相近的用户经验与建议作为提供个性化推荐的基础。通过协同过滤,有助于搜集具有类似偏好或属性的用户,并将其意见提供给同一集群中的用户作为参考,以满足人们通常在决策之前参考他人意见的心态。协同过滤技术应包括如下几方面:(1)一种比对和搜集每个用户兴趣偏好的过程;(2)它需要许多用户的信息去预测个人的兴趣偏好;(3)通过对用户之间兴趣偏好相关程度的统计去发展建议那些有相同兴趣偏好的用户。

矩阵分解(MF)为每个user和item找到一个隐向量。MF模型是用户和项目的潜在因素的双向互动,它假设潜在空间的每一维都是相互独立的并且用相同的权重将它们线性结合。因此,MF可视为隐向量(latent factor)的线性模型。MF因为使用一个简单的和固定的内积,来估计在低维潜在空间中用户-项目的复杂交互,从而所可能造成的限制。

矩阵分解中,由于用户对物品的评分存在偏见,比如高分低分的偏见,有些用户打的分数整体偏高,有的用户打的分数整体偏低;时间因素的偏见,随着时间的变化,用户对同一item的理解以及喜爱程度会改变。有偏见的矩阵分解考虑了偏见的影响,优化了模型。Additional extra data 是为了克服评分矩阵稀疏的问题,在矩阵中加入一些额外的数据,比如社交网络关系和物品的内容或者评论内容。

深度学习方法中,用显性的评分数据在隐藏层中学习,并预测得到新的用户评分数据。或者是用隐性反馈来代替显性评分来得到用户的偏好。
在现有深度学习方法中,推荐时只使用了显性的评分,或者只使用了隐性的反馈,于是作者想把二者结合起来,提出了本篇文章的DMF模型,用于top-N推荐。同时设计了一个新的损失函数,其中也是同时考虑了显式评分和隐式反馈。

DMF[文献阅读] DMF: Deep Matrix Factorization Models for Recommender Systems

作者直接将用户和物品的交互矩阵作为神经网络的输入,作者指出,他们是第一个直接将交互矩阵作为神经网络输入的团队。在交互矩阵中,用户对物品的评分,不是简单的认为是0/1,而是把评分比如3分或者5分保留在了交互矩阵中,保留了用户的偏好程度。其中每一行指的是一个用户对所有物品的评分,每一列指的是所有用户对这个物品的评分。

通过两组神经网络将用户和物品的特征提取到一个低维空间,并通过设计的新的损失函数进行反向学习,得到用户和物品在低维空间的表示,再用余弦相似度来计算相似度,从而进行推荐。

作者在文章中提到了LFM隐因子模型,LFM也是从交互矩阵出发,但是仅仅通过简单的点积,以及梯度下降方法优化参数来学习用户和物品的隐因子,LFM属于线性方法,而作者提出的方法是通过使用非线性的方法学习用户和物品的低维表示,相比于线性方法而言,拟合效果更强。

  • Loss function
    –Squared loss
    [文献阅读] DMF: Deep Matrix Factorization Models for Recommender Systems
    –The binary cross-entropy loss (ce)
    [文献阅读] DMF: Deep Matrix Factorization Models for Recommender Systems

在损失函数中,有两种常用的方法,平方损失和二元交叉熵损失,前者在评分问题中表现更好,后者在分类问题中表现更好。所以作者提出了标准化的交叉熵损失函数,作者认为,平方损失函数对显性排序表现得更好;交叉熵损失函数对隐性反馈表现更好,于是作者把显性的评分加入了交叉熵损失,进行normalized(标准化),实现了用一个loss函数中同时包含了显性数据和隐性数据。
[文献阅读] DMF: Deep Matrix Factorization Models for Recommender Systems
算法流程:
[文献阅读] DMF: Deep Matrix Factorization Models for Recommender Systemsneg_ratio是负采样的数目占正采样数目的比例,比如如果负采样和正采样相同,neg_ratio为1,这里是为了保证正采样数目和负采样数目数量类似。

参考:
[1] 推荐系统遇上深度学习(三十)–深度矩阵分解模型理论及实践:https://www.jianshu.com/p/63beb773f100
[2] 什么是协同过滤 collaborative filtering:https://zhidao.baidu.com/question/1823541633751748588.html?word=协同过滤中的协同是什么意思&ms=1&rid=10463791694270873723
[3] RS:关于协同过滤,矩阵分解,LFM隐语义模型三者的区别:https://www.cnblogs.com/shenxiaolin/p/10114354.html
https://blog.****.net/qq_19446965/article/details/82079367?tdsourcetag=s_pctim_aiomsg
[4] 推荐系统中的矩阵分解总结:https://blog.****.net/qq_19446965/article/details/82079367?tdsourcetag=s_pctim_aiomsg