WWW 2017文章精读(二)
2017年 4月 16号我们在这里对WWW 2017文章Collaborative Metric Learning进行一个简单的分析解读。
这篇文章的作者群来自于加州大学洛杉矶分校(University of California at Los Angeles)以及康奈尔科技大学(Cornell Tech)。 文章的核心思想是如何把Metric Learning和Collaborative Filtering(CF)结合起来从而达到更好的推荐效果。
那么这篇文章为什么会想到把Metric Learning结合到CF上面呢?文章做了比较详细的交代。这里面的重点来自于传统的基于Matrix Factorization的CF模型都使用了Dot-Product来衡量用户向量(User Vector)和物品向量(Item Vector)的距离。也就是说,如果Dot-Product的值大, 就代表两个向量相近,值小就代表距离远。对于Dot-Product的默认使用已经让广大研究人员和实践者都没有怎么去质疑过其合理性。文章这里指出,Dot-Product并不是一个合理的距离测度,因此可能会带来对于相似度的学习不准确的问题。
这里简单说一下什么是一个合理的距离测度。一个距离测度需要满足一些条件,而其中比较普遍的条件是所谓的“三角不等式”。所谓的“三角不等式”关系其实也就是说,距离的大小是有传递性的。举例来说,就是如果X与Y和Z都相近,那么Y和Z也应该相近。也就是说,相似度是可以传播的,在使用一个合理的距离测度的情况下。然而,文章指出Dot-Product并不具备这样的相似传递性,因此在实践中常常会不能有效得学习到数据中全部的信息。
Metric Learning就是如何在一定的假设下,进行有效距离测度学习的工具。文章使用了一种Relaxed Version的Metric Learning,叫做Large-Margin Nearest Neighbor(LMNN)来学习数据之间的相似度。LMNN简单说来,就是同一个类型的数据应该更加紧密聚集在一起(通过Euclidean Distance),而不同类的数据应该远离。同时,同类的数据和不同类的数据之间保持一个Margin(模型的一个参数)的安全距离。
作者们把这个概念拿过来,应用在CF的场景下,做了进一步的简化,那就是把“相同类数据聚合”这个部分去掉了,仅仅留下了“不同类远离”这个部分。作者们认为,一个物品可能被多个人喜欢,那么在这样的含义下,很难说清楚,到底怎么聚类比较有意义。具体说来,一个用户所喜欢的物品要远离这个用户所不喜欢的物品,同时这个距离会被一个与Rank(这里所说的Rank是指物品的排序)有关Weight所控制。也就是Rank越大,所产生的Penalty就越大。文章具体采用了一个叫Weighted Approximate Rank Pairwise Loss(WARP)的Loss来对Rank进行Penalty。这个WARP是早几年的时候还在Google的Weston等人提出的,目的是要对排在Rank比较大的正样本(Positive Instance)做比较大的Penalty。这里就不复述WARP的细节了。
除了外加WARP的Metric learning,这篇文章还为整个模型的目标函数加了不少“作料”。“作料一”就是使用了Deep Learning来学习从物品的Feature到物品的Latent Vector的映射。这解决了Cold-start的问题。“作料二”则是对物品和用户的Latent Vector都做了正则化,使得学习起来更加Robust。
文章简单描述了一下整个模型的训练过程。整个模型的目标函数由三个部分组成:Metric Learning的部分,加Deep Learning的部分,外加正则化的部分。比较意外的是,文章并没有提及模型在训练好以后如何在Test数据上进行Inference。
文章在一系列标准数据集上做了测试,对比的Baseline也比较完整。总体说来,提出的模型都能达到最好的效果,有些在目前比较好的模型基础上能够提高10%以上,这比较令人吃惊。比较遗憾的是,文章并没有很好的展示这个模型的三个模块究竟是不是都必须。值得一提的是,文章指出使用了WARP的任何模型(包括本文章提出的模型)都要好于其他的模型。
这篇文章总的来说还是可以参考。虽然有一些细节很值得推敲,但是,提出把Metric Learning引入到CF里来说,还是有一定价值的。
建议对推荐系统正在研究的学者精读,对推荐系统有兴趣的实践者泛读。