前情概括

词对齐任务分为三大实现方式,详情见词对齐任务概述,此为其一。


以为2013年的文章前提:线性映射即可在不同语言之间实现词对齐,求出此线性映射,就可以是直接求两词之间的mapping,就可以词对齐。

VecMap(ACL 2017)

方法是一个迭代方法,求两个语料之间的$W$线性映射。

流程

在这里插入图片描述
文章想要找到一个 $W$,使得两个语种之间的映射后距离最小:在这里插入图片描述

$X$是源语言的embedding, $Y$是目标语言的embedding,embedding是word2vec训得的,$W$ 是要求的线性映射, $D$是词典,倘若原句 $x_i$与$y_i$目标句的 是匹配的,则是1,不然是0.
要求解 ,文章还加了个条件,W是正交矩阵。经过一系列简化,简化到了$W$ 是能直接算出来的。

eval

这个eval是取XW与Z的dot分,也就是 $(XW)^TZ$,做两词的相关分数的。
在这里插入图片描述

数据集小得可怜! 只有5k组词。而且目标函数优化的就是XW和Z的距离,eval又用这个去取,额...
文章中的题目其实是Learning bilingual word embeddings with (almost) no bilingual data,看实验数据意思是即便是在pair极少的情况下,仍能有好效果。
给出了一种迭代更新的思想 ,并且延续了源词和目标词的线性映射这个假设。


MUSE(ICLR2018)

方法

先adversarial方法得到rough的映射关系(图中(B)),后用Procrustes精细求映射(图中(C))。
MUSE过程简图

  • adversarial具体方式:A discriminator is trained to discriminate between elements randomly sampled from $WX = (W _{x1}, ..., W_{ xn})$ and $Y$.登到adversarial 过程
    等到discriminator判别不出来了,就直接用此时的$W$作为最初的映射了。接下来就进行refine(图中(C))步骤。

    evaluation

自创距离 。由于直接使用cos sim会在KNN出现一个hubness的现象:有些向量(称作hubness,枢纽),是很多其他点的最近邻,而有些点(anti-hubness)则不是任何点的最近邻。因为最近邻是非对称的,y是x的最近邻不代表x是y的最近邻。所以作者使用了自创的cross-domain similarity local scaling(CSLS)。
在这里插入图片描述
在这里插入图片描述

  • word translation
    实现不同语言间单个单词的翻译。数据自建了100k word pairs 。
    使用CSLS做eval的。

在这里插入图片描述
可以看到如果不用refine步骤,只凭GAN还没有达到supervised的效果。

与其他baseline的比较:确有提高,不过最高仍不过90%.
在这里插入图片描述

  • Sentence translation retrieval. 实现句子级别的“翻译”。 采用了词袋的方法实现,一个句子被打包成词袋,通过根据idf权重相加得到句子embedding,然后还是通过句子embedding向量距离找句子embedding。 idf的权重来自300k的语料,eval使用2k查询句embedding和200k个候选句。
    在这里插入图片描述

    小结

    数据集大了;提出了使用CSLS;有监督 无监督;效果提升,但上限不算高;


MUVE(cvpr2020)

对于前两个工作来说,muve加入了图像信息进行词embedding的初始化(也就是仅仅对第一步做了改进,加入了图像信息)。idea是甭管语言是什么,有些词一张图就蕴含所有,我们可以利用这个现象。在这里插入图片描述

改进的第一步流程

在这里插入图片描述
video端使用别人的工作I3D做encoder,text端直接使用预训练的embedding做feature。

因为有着相同图片的文字embedding应当尽可能相近,文章用图片做中间连接,希望拉进相关词的距离。优化目标是是:
在这里插入图片描述
f是X的encoder,g是y的encoder,h是video端的encoder。

根据优化目标,loss是对比学习常用的NCE。
在这里插入图片描述
随后也是使用Procrustes去迭代 ,提升效果.
在这里插入图片描述

如此图所示,$\mathcal{Y}$有一个AdaptLayer,这个layer就是个linear,MUVE把他的$W$直接拿来做初始的$W$了。其余的步骤是一样的。

eval

训练数据集是用HowToW,一个教人怎么做很多事情的教学视频:
在这里插入图片描述

另外词対词的数据集被人为分出了visual部分,因为有些词是可以用图片表达,但抽象词是无法的,两类在eval的时候会不一样。

  • 词对词翻译,数据集不超过3k 的词pair,词embedding的训练是在HowToW训练的。 base model指不使用procrustes;video retrieval指直接用video的embedding取。 在这里插入图片描述
    与baselines:
    在这里插入图片描述

● 文章提到MUVE比其他的方法更加鲁棒,意思是即便是少vocab size训embedding,我的性能也不下降,因为我还有图片的信息补上(个人推测)。

其他点

● 因为加入了video,文章还特意把text和image做了retrieval的case study:
在这里插入图片描述
不过这个看看就行,因为case study都是挑好的放出来的。
● 文章也做了短语sentence级别的retrieval,但是并没有说明是怎么检索的,并且短语级别的数据集特别小,只有444个query带标签,看case study的效果还可以:在这里插入图片描述

● 文章retrieval的具体实现方式含糊不清,只是提了一嘴cos。
loss中加入正交约束对整个方法提升很大,就是在NCE loss中加入 限制 必须是正交矩阵,原文: We observe that this penalty was a key component for MUVE. Precisely, there is a 43.0% relative drop of performance for Recall@1 on the Dictionnary En-Fr

小结

延续了无监督,添加了图片信息,多模了;
提升了效果;
文章写作乱,极乱!


WALIP (arxiv2022.5.23)

MUVE是video和text结合,整个是image和text结合。

想法

在这里插入图片描述

流程

在这里插入图片描述

  • 对比前人工作,提出了robust procrustes;对第一步同样使用了image和text,但是是另一种实现(使用了clip的)。CLIP是一个能 同时吸收image和text信息抓取feature的工作,这个文章直接使用它做feature extractor,与前面的文章不同。
    ● 对比前人直接使用procrustes做refine,此文使用了另一个文章的robust procrustes;

对于Step#1来说,有些抽象的词是图片表达不出来的,所以此步骤里面的集合并不能全用,文章只选了sim(用CSLS)高的pair做最初集合,然后统计出a与b的映射 ,作为initial 进入下一步robust proscrustes。

eval

eval的数据集和MUVE的一模一样,也是 ,retrieval的距离是CSLS。

  • 词对词:wiki数据集预训练的embedding效果并不明显: 在这里插入图片描述
    他的各种变体版本就不看了,直接看完全版的和之前的比较,效果只提升了0.1% 用HowToW预训练的embedding提升多一些: 在这里插入图片描述

小结

方法有效,传承无监督(但是原文并没有提到 CLIP那一步具体用的loss是什么);
image和text,又是多模,使用了CLIP统一的encoder,流程简洁了些;
文章提到的优势还有 计算量少、多语言鲁棒。

4篇工作总结

涉及的一系列都是分步走,先获得W ,再用(改进的)P方法迭代精修 。
retrieval的方法除了cos,可以用CSLS。
方法都是无监督的方法,但是效果有限,数据集也不算大。
embedding使用的都是word2vec而不是bert系列。


Yonggie
95 声望4 粉丝