度量学习算法产生的距离度量捕获数据之间的重要关系。这里,我们将度量学习和协同过滤联系起来,提出了协同度量学习(CML),它可以学习出一个共同的度量空间来编码用户偏好和user-user 和 item-item的相似度。
令 χ={x1,x2,…,xn} 是空间 Rm 上的一个数据集。
相似对记为:
最普通的度量学习方法采用的是马氏距离度量:
上边的全局优化本质上式试图学习一种距离:它将相似的放在一起,将不相似的尽量分开。另一方面,如果学习到的度量被用作knn分类,只要保证目标与k个近邻共享一个类标就足够了。
具体来说,给定一个输入 x ,我们把离 x 近的数据点作为它的target neighbors。并且假设 x 的target neighbors构建了不同类标之间的边界。不同类标的输入侵入边界被作为importors。这里,学习的目标就是最小化importors的个数。
一种为人知模型是LMNN,它使用2个损失函数来表达上述目标函数。
1. LMNN定义了pull loss:
这里重点关注隐性反馈的CF,传统的CF算法是基于用户相似计算出的。MF是一种流行的CF算法,普通的MF模型设计为用户的显性反馈,它是通过将users 和items映射到潜在因子空间上,那么user-item的关系可以通过潜在因子的乘积获得。
rij 记为用户 i 对item j 的打分,用户向量 ui→∈Rr 和item向量 vj→∈Rr ,它们的乘积为 ui→Tvj→ ,这个式子让最优化问题变为最小化集合上的均方误差:
隐性反馈(Implicit feedback)和贝叶斯个性(Bayesian personalized ranking)化排序略过,感兴趣的可以自己查询资料。