PaperWeekly从EMD、WMD到WRD:文本向量序列的相似度计算( 三 )
本文插图
得到:
本文插图
这就是 Word Rotator's Distance (WRD) 了 。 由于使用的度量是余弦距离 , 所以两个向量之间的变换更像是一种旋转(rotate)而不是移动(move) , 所以有了这个命名;同样由于使用了余弦距离 , 所以它的结果在 [-1,1] 内 , 相对来说更容易去感知其相似程度 。
3.2 参考实现
参考实现如下:
defword_rotator_distance(x, y):
"""WRD(Word Rotator's Distance)的参考实现
x.shape=[m,d], y.shape=[n,d]
"""
x_norm = (x** 2).sum(axis= 1, keepdims= True)** 0.5
y_norm = (y** 2).sum(axis= 1, keepdims= True)** 0.5
p = x_norm[:, 0] / x_norm.sum
q = y_norm[:, 0] / y_norm.sum
D = 1- np.dot(x / x_norm, (y / y_norm).T)
returnwasserstein_distance(p, q, D)
defword_rotator_similarity(x, y):
"""1 - WRD
x.shape=[m,d], y.shape=[n,d]
"""
return1- word_rotator_distance(x, y)
3.3 下界公式
同 WMD 一样 , 我们也可以推导出 WRD 的一个下界公式:
本文插图
不过这部分内容并没有出现在 WRD 的论文中 , 只是笔者自行补充的 。
小结
文本介绍了两种文本相似度算法 WMD、WRD , 它们都是利用 Wasserstein 距离(Earth Mover's Distance , 推土机距离)来直接比较两个不定长向量的差异性 。 这类相似度算法在效率上会有所欠缺 , 但是理论上比较优雅 , 而且效果也颇为不错 , 值得学习一番 。
参考链接
[1] http://proceedings.mlr.press/v37/kusnerb15.html
[2] https://arxiv.org/abs/2004.15003
[3 ]https://kexue.fm/archives/4677
点击以下标题查看更多往期内容:
# 投 稿 通 道#
让你的论文被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体 , 缩短读者寻找优质内容的成本呢? 答案就是:你不认识的人 。
总有一些你不认识的人 , 知道你想知道的东西 。 PaperWeekly 或许可以成为一座桥梁 , 促使不同背景、不同方向的学者和学术灵感相互碰撞 , 迸发出更多的可能性 。
PaperWeekly 鼓励高校实验室或个人 , 在我们的平台上分享各类优质内容 , 可以是 最新论文解读 , 也可以是 学习心得或 技术干货 。 我们的目的只有一个 , 让知识真正流动起来 。
?? 来稿标准:
? 稿件确系个人 原创作品 , 来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)
? 如果文章并非首发 , 请在投稿时提醒并附上所有已发布链接
? PaperWeekly 默认每篇文章都是首发 , 均会添加“原创”标志
?? 投稿邮箱:
? 投稿邮箱:hr@paperweekly.site
? 所有文章配图 , 请单独在附件中发送
【PaperWeekly从EMD、WMD到WRD:文本向量序列的相似度计算】? 请留下即时联系方式(微信或手机) , 以便我们在编辑发布时和作者沟通
