Metric Learning机器学习中最近比较火的领域,但维基百科上直到本文写作时也没有一个中文翻译。本人才疏学浅,不敢擅自取名,所以文中将会一直使用英文名。关于 Metric Learning 的研究主要有两个方面:

  1. Metric Learning 的理论研究。
  2. Metric Learning 应用到其他领域(如推荐系统,计算机视觉等)。

近年来,每年的或大或小的会议都有不少关于 Metric Learning 的文章,它们都从各自的特定方面改进或应用了 Metric Learning。本文尝试着抛砖引玉,概括 Metric Learning 的基本原理和它在推荐系统里的应用。本文的定位是科普文,不是综述。写作目的是与机器学习的同侪学习交流。 ## Metric Learning 的基本原理

Metric Learning 的原理为,基于一些分类数据,学习出一个量度,减小同类数据的距离,拉大不同类数据的距离。 因此,它是基于距离的,对两个点,A(x_a, y_a)B(x_b, y_b),根据高中所学,它们的距离如下:

distance = \sqrt{(x_a - x_b)^2 + (y_a - y_b)^2}

这个距离又称为欧氏距离(Eculidean distance),即两个点之间的直线距离。通常来说,这个距离越大,两个点越近;越小,两个点越远。其实,这只是一个衡量两点距离的方法。另一个常用的方法是余弦相似性(cosine similarity)。余弦相似性把AB视为两个向量,然后计算向量AB的夹角,其公式如下:

cosine \: distance = \frac{A \cdot B}{||A|| \: ||B||}

余弦相似性的公式看似复杂,其原理是计算两个向量的夹角的余弦值。这个值介于0到1之间,即cosine \: distance \in [0, 1]越大,说明夹角越大,两个向量的离得越远;反之越近。余弦相似性也只是多种量度中的一种,还有很多其他的量度,本文就不赘述了,感兴趣的朋友可以自行搜索。 既然存在这么多量度,那么对于一个任务,我们应该如何选择使用哪一个呢——这个问题就是 Metric Learning 想要解决的。

Metric Learning

一般地,Metric Learning 研究的是马哈拉诺比斯距离(Mahalanobis distance)。假设X = [x_i, x_2, ..., x_N]是一些训练数据,其中x_i \in R^d是第i个样本,N代表训练样本的总数。那么,Mahalanobis distance 的计算方法如下:

d_M(x_i, x_j) = \sqrt{(x_i - x_j)^\top \text{M} (x_i-x_j)}

其中M是半正定对称矩阵,d_M(x_i, x_j) 是两个样本之间的距离,而且这个距离具备以下的性质:非负数,不可分,同一性,且满足三角不等式(triangle inequality)。此外,通过分解矩阵M,我们可以推导出以下的公式:

\begin{aligned}
M &= W^\top W \\
d_M(x_i, x_j)  &= \sqrt{(x_i - x_j)^\top \text{M} (x_i-x_j)}  \\
&= \sqrt{(x_i - x_j)^\top W^\top W (x_i-x_j)} \\
&= ||W{x_i} - W{x_j}||_2
\end{aligned}

从以上的等式可以看到,Euclidean distance 可以通过矩阵W转换成 Mahalanobis distance。因此,Metric Learning 即通过学习矩阵W达到最小化同类样本,最大化非同类样本的距离。 ### Deep Metric Learning

Mahalanobis distance 相当于 Eculidean distance 的线性变换,而线性变换过的 Eculidean distance 也是有局限的,它不能学习到足够的非线性知识。因此,在 Mahalanobis distance 提出之后,又有很多变形提出,如使用 kernel density 计算距离,以及计算与概率分布的相似度等。关于这些内容,本文就不继续深入了,想深入了解的化可以自行搜索前文提及的论文。

Metric Learning 在推荐系统 (Recommender Systems) 里的应用

碍于篇幅,这一节算是下一篇博文的引子,推荐系统里的具体介绍留在下一篇中。 就我所知,截止到本文写作时为止,Metric Learning 在推荐系统里的应用主要为协同过滤 (collaborative filtering),在经典的论文中,只有一篇论文 Collaborative Metric Learning 在一小节中提到了与项目特征的结合。其中通过惩罚模型学习到的项目特征和隐向量,使模型能够同时学习到 Collaborative filtering 和 item features。但是,这种混合模型的具体效果仍然不明确,在后来的研究中,很少又提到这种混合过滤 (hybrid filtering)。当然,这里不否认 hybrid filtering 的效果,以后有机会会继续讨论 hybrid filtering 与 collaborative filtering 的比较。