前情概括
词对齐工作分为三大实现形式,详情见词对齐工作概述,此为其一。
认为 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))。
-
adversarial 具体形式:A discriminator is trained to discriminate between elements randomly sampled from $WX = (W _{x1}, …, W_{xn})$ and $Y$. 登到
等到 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 系列。