度量分解

原文:《Metric Factorization: Recommendation beyond Matrix Factorization》

一、两点解释

(一)为什么说点积不满足三角不等式?

点积 Dot product cares about the magnitudes and angles of two vectors. To some extent, it measures the similarities rather than distances of the two vectors in terms of both magnitude and angle. When ignoring the magnitude, dot product boils down to cosine similarity.

度量 Metrics and distances are synonyms. Distance function should satisfy four critical conditions: non-negativity, identity of indiscernibles, symmetry and triangle inequality.

三角不等式 The triangle inequality is defined as “the distance between two points cannot be larger than the sum of their distances from a third point”.


三角不等式是针对 距离 来说的,点积关心的根本就不是向量间的距离,而是向量间(大小和角度)的相似度

dist(A,B)=||A-B||_2=\sqrt{(a_1-b_1)^2+(a_2-b_2)^2}

A\cdot  B=\vert A \vert \vert B \vert cos\theta =a_1b_1+a_2b_2

举个🌰:

给出三个向量 \vec{A} =(1,0)  \vec{B} =(0,1) \vec{C} =(1,1)

A\cdot B=0 A\cdot C=1 B\cdot C=1 很明显,不满足三角不等式

dist(A,B)=\sqrt{2}  dist(B,C)=1 dist(A,C)=1很明显,满足三角不等式


(二)为什么将用户/项目表示成位置向量?

举个🌰:

4个用户间的相似度 S23>S12>S13  S41>S43>S42

矩阵分解得到的代表4个用户的隐因子向量P1,P2,P3,P4,用夹角来模拟用户间的相似度,相似度的约束无法完全满足

度量分解得到代表4个用户的位置的向量U1,U2,U3,U4,用距离来模拟用户间的相似度,相似度的约束可以完全满足

二、回顾矩阵分解

矩阵分解:将交互矩阵分解为用户矩阵和项目矩阵(用户和项目用低维的隐因子来表示,每个用户/项目被视为新空间中的一个向量)-->通过点积测量用户和项目之间的相似性。

r_{u,i}=p_u\cdot q_i^T

适用于:(1)评分预测:Yehuda-矩阵分解(引入偏置)、Salakhutdinov-概率矩阵分解(减轻真实数据集中的稀疏性和不平衡性)(2)top-N物品推荐:BPR-贝叶斯个性化排序、WRMF-加权正则化矩阵分解

缺点:(1)两个低维矩阵的点积【不满足】三角不等式-->1⃣️限制了矩阵分解的表达性2⃣️会产生局部最优解(2)当K较大时,矩阵分解容易过拟合

前人在克服矩阵分解的点积的限制上做出的努力:(1)将非线性引入矩阵分解(主要是应用神经网络的思想)(2)直接采用满足三角不等式的度量(如collaborative metric learning协作度量学习)

三、度量分解

度量分解:将交互矩阵转换为距离矩阵(相似性和距离是相反的概念因此要先转换)-->将距离矩阵分解为两个低维矩阵(每个用户/项目被表示为同一低维坐标系中的点)-->根据用户和项目的位置测量用户和项目间的欧式距离从而确定他们的closeness进行推荐。

将交互矩阵转换成距离矩阵的公式,适用于评分也适用于隐式反馈
给定partically observed的距离矩阵Y后,学习出用户和项目的位置
根据用户u和项目i的位置向量,计算用户u和项目i之间的欧式距离

尽管度量分解(以及所学习到的矩阵)与矩阵分解具有完全不同的物理解释,我们仍可以将度量因子得到的Pu与用户的偏好相关联,将Qi和项目的潜在特征相关联。

本文提出的度量分解的主要目的是为了克服矩阵分解的点积的限制,并在评分预测和top-N推荐上都进行了推广,未来可以考虑将temporal dynamics、side information(如项目和用户的描述、评论文本、信任/社会关系)纳入度量分解模型。另外,在top-N推荐中,可以考虑采取一些负抽样策略,如随机抽样和动态负抽样来减少训练样本。

四、度量分解用于评分预测

(一)Basic Model

⚠️与矩阵分解的Basic model的唯一区别在于我们用欧几里德距离代替点积

将评分矩阵转换为距离矩阵
\kappa  denote the set of observed rating data.

(二)加入偏置与置信度

通常可以添加超参数τ来缩放μ,因为平均距离并不总是能反映真实的全局偏差
并非所有观察到的评分都应该具有一样的权重,我们要考虑评分的 reliability和stability

(三)正则化

回忆:矩阵分解对隐因子和偏差采用的是l2范数正则化

在度量分解中,对于偏置我们仍采用l2范数正则化,而对于隐因子,我们可以采用以下两种方法:

(1)Norm clipping

l2范数正则化不适用于P和Q,因为它会将用户和项目推向原点附近

我们放松对欧几里得球的约束并在每次更新后执行l2范数裁剪

l用于控制欧几里得球的大小

(2)dropout

为了防止维度间的co-adaptation,我们建议随机丢弃一些维度并计算剩下维度形成的总距离。

The dropped dimensions are subject to change in each epoch. Note that this dropout operation is only carried out during the training period.

五、度量分解用于物品排序

"Our model can not only force users and their preferred items closer but also push unpreferred items away even though we adopt a pointwise training scheme. "  "Our model  can indirectly cluster users who share a large amount of items together."
将二进制交互矩阵转换为距离矩阵,a和z这两个超参使得控制用户和项目之间的距离变得灵活,通常将z设为0。由于Rui等于“1”或“0”,所有<user,positive item>(或<user,negative item>)具有相同的距离。
为了从隐式反馈中学习到用户和项目的位置,我们采用point-wise的方法最小化加权平方损失
wui表示观察到的隐式反馈,我们可以简单地将the counts of implicit actions视为观察。该置信机制为negative items to invade user territory提供了可能。

对于正则化,我们采用l2范数clippling

六、优化与学习过程

对评分预测任务来说:获得\hat{Y}_{u,i} 后,通过\hat{R}_{ui}=R^{max}-\hat{Y}_{ui}  计算出预测的评分

对物品推荐任务来说:直接推荐\hat{Y}_{ui} 最小的top-N个物品就好

评分预测任务的模型复杂度:O(\vert \kappa  \vert k )       物品推荐任务的模型复杂度:O(\vert R  \vert k )

七、实证研究

回答3个问题:(1)预测评分:度量分解是否比矩阵分解和基于神经网络的模型预测评分的准确性更高?(2)项目排名:度量分解是否优于神经网络和度量学习方法?(3)超参数如何影响模型性能?

对照pdf第八章做完实验后再写!!!!!!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容