我很难找到关于相似度学习的全面解释。据我所知,它与度量学习相同,只是它试图学习一个相似度函数而不是度量。
谁能澄清它们之间的区别吗?任何链接或来源都将不胜感激。
提前感谢。
回答:
在大多数(全部?)情况下,度量学习是相似度学习的一个子集。请注意,在常见用法中,“相似”大致是“距离”的倒数:它们之间的距离低,相似度就高。在实践中,这通常是语义选择的问题——连续变换通常可以使两者同构。
度量需要遵循某些规则;相似度函数的标准则较为宽松。例如,将一部完整长度(假设为2小时)的电影M
与一个20分钟的动画缩减版A
进行比较。度量函数f
要求f(M, A) = f(A, M)
。然而,如果你认为电影的丰富性意味着它不应该将动画视为如此亲近的亲缘,你可能会输入一对训练三元组
(A, M, 0.90)(M, A, 0.15)
另一个例子是集合相似度,通过大小和成员身份来衡量,但以非欧几里得方式进行。
a = {1, 2, 3, 4}b = {3, 4, 5, 6}c = {5, 6, 7, 8}
相似度训练将允许
(a, b, 2)(b, c, 2)(a, c, 10)
在这个“世界”中,a
和c
因为没有任何共同点而受到很大惩罚,只是集合大小相同。b
因为有一半元素相同而与它们各自分别接近。这会让度量函数头疼,因为它严重违反了subaddition
,即三角不等式。
这有助于澄清它们的区别吗?