关于算法:词对齐任务相关文献2022年-个人整理综述

43次阅读

共计 4012 个字符,预计需要花费 11 分钟才能阅读完成。

是什么

在 machine translation 中的词对齐问题。算是机器翻译的子衍生问题吧,感觉利用面不是很广。一篇文文献里的自述:Word Alignment is the task of finding the correspondence between source and target words in a pair of sentences that are translations of each other.

个别这种对应关系会被示意成这样子的相关矩阵,谁分数高就示意谁与谁对齐,我就把他叫做 词相关矩阵 了(不晓得其他人是不是这么叫的):

掂量

最常见的是 AER(https://zhuanlan.zhihu.com/p/…),当然还有 recall precision(见 https://arxiv.org/pdf/2103.17…)。

如何实现此指标

因为是机器翻译外面的问题,其实现依存于机器翻译模型,英文 MT(machine translation)。MT 分为两大支流实现形式:NMT(nueral MT)和 SMT(statistical MT)。

  • SMT 算是比拟早支流的了,经典的统计办法模型,IBM 模型 1 2 3 代等等。
  • NMT 是因为深度学习崛起大部分人在深挖其与本工作的联合形式,大部分应用 LSTM、RNN、CNN 等支流组件去实现。
  • 互信息直算

实现此指标,换句话说是如何求出第一局部那个词与词的矩阵。

NMT 附丽下的 word alignment

说道机翻显然就想到 transformer,其 encoder-decoder 构造其实即使是在应用了 lstm 等模型上也是这样的,附丽在 NMT 的 word alignment 工作就能够间接应用 seq2seq 的输入对输出的词 attention(动图 https://www.bilibili.com/vide…,36:00)来表征 word alignment。

词互信息(PMI)直算

这个是很 intuitive 的办法,我不应用任何模型,间接用概率统计的办法,算出两词间的互信息值,很多文章里叫 PMI(pointwise mutual information),间接用这个值作为根据,填出词相关矩阵。
互信息是什么?这个场景下的互信息怎么算?见 https://blog.csdn.net/index20…。

附丽 NMT 的词对齐

这种模式的 word alignment 的最终解决形式是求得 word 的相关矩阵,用分数示意各个词的相关度,文章中名词叫做 soft align。
经典 seq2seq+att 的模型和 transformer based 模型会在 decoder 阶段失去以后输入词与原 sentence 的词的 attention,利用此能够组成相关矩阵。
对于老式的 seq2seq+att 来说,

对于 transformer 来说,

值得注意的一点是,只管 bert 是在 transformer 的根底上倒退来的,只取了 transformer 的 encoder,在文字了解、浏览等工作有宽泛应用和很好成绩,然而在机器翻译这一工作上 bert encoder 的体现 很个别,甚至不如 lstm 等老牌 rnn,连带的 word alignment 也不算好(ACL 2019)。

MarianNMT

自身是一个汇合了很多 seq2seq 和 transformer 的机器翻译的工具箱,word alignment 能够依附于机器翻译,应用 src 的 word embedding 与 target embedding 计算词汇的相关矩阵。

从可解释性角度进行 word align(ACL 2019)

前言

文章借鉴了 LRP 删除法判断重要性的办法 (ACL 2016)。
LRP 最先在 cv 畛域提出。具体来说,对于 cv 来说,删掉某一部分使得模型错判,则阐明此局部对于后果是重要的。
在 nlp 中,上文提出间接把 word embedding 全 0 示意来“删除”这个 word。
LRP 能给出每个 word 对后果的相干值。
·
文章首先摸索了应用 bert 的 att 的办法也不咋地,应用 transformer 做 word alignment 工作的话有些甚至不如用互信息(PMI)直算:

文章一共比拟了

  • 互信息直算(PMI)
  • 用 transformer attention
  • 他的两种 model agnostic 的办法,一个叫 PD,一个叫 EAM

    PD(prediction difference)办法

    其办法如下,对于一个填词问题来说,把原 sentence 的某一个 word $x$ 替换成全 0embedding,把替换前后的模型输入词 $y$ 的差值作为 x 与 y 的“相关度”。

不同于直算或者 attention 办法的 word alignment,本篇文章间接应用删除 word 对后果的差别大小来作为两个语言相关矩阵的值。

EAM(Explicit Alignment Model)办法

对于一个曾经训练好的 NMT 模型,源语言的 word x 和目标语言的 word y 是这样算的:

而后归一化一下

这个 $W$ 是要训练的。

后果


fast align 是 IBM mode 2 的一个实现,就是纯概率统计模型的词对齐模型。AER 是越小越好,这表只能看出,作者的 EAM 和 PD 比应用 transformer 的 attention 做词对齐好,然而 比不上IBM model 2.

其实这个后果看了挺悲观的,原本就是以词对齐为工作向导,后果搞了一顿这个办法还不如经典概率统计的后果……
然而看完还是有意义的,这篇文章给出了在训练好 NMT 模型后,想要附加一个词对齐的工作该如何下手。

小结

这篇文章从可解释性角度找了 model agnostic 的办法进行 word alignment,而不是间接给出端到端的模型。
然而不论是 EAM 还是 PD,都首先要有一个齐全训练实现的 NMT 模型,对于 EAM 办法来说,还要再训一个 $W$。
能够这么说,文章的角度是机器翻译工作附带了词对齐工作,算个 add on 的加分项。

繁多词对齐为指标的相干文章


以下纯从工程师落地角度对待
纯实现不同语言间的 word alignment繁多指标,没有依附于机器翻译,单纯就是词(组)找词(组)。以下工作都是为了找到不同语言间 word 的线性映射 $W$。独特特点是无监督,不须要对齐的语料做训练。

VecMap(ACL 2017)

提出线性映射即可在不同语言之间实现词翻译,
提出了 self supervised 办法,不须要平行语料进行训练

流程

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

缺点

双语对应一个 $W$,多语种间接 $A_n^2$,不不便。


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 会呈现导致一个 hubness 的景象:有些向量(称作 hubness,枢纽),是很多其余点的最近邻,而有些点(anti-hubness)则不是任何点的最近邻。因为最近邻是非对称的,y 是 x 的最近邻不代表 x 是 y 的最近邻。所以作者应用了借鉴的cross-domain similarity local scaling(CSLS)

  • word translation
    实现不同语言间单个单词的翻译。
    最根本的想法 cosine 类似度来选取最近邻词。但这会导致 hubness 景象:有些词 (称为 hubness) 是很多词的最近邻点,而有些词(anti-hubness)却不是任何点的最近邻点。为了惩办这些 hubness,作者定义了 CSLS 间隔,之后的后果都是应用 CSLS 做 eval 的。
  • Sentence translation retrieval
    实现句子级别的“翻译”。

    采纳了词袋的办法实现,一个句子被打包成词袋,而后还是通过词汇合向量间隔找词汇合。

    MUVE(cvpr2020)

    对于前两个工作来说,muve 退出了图像信息进行词 embedding 的初始化(也就是仅仅对第一步做了改良,退出了图像信息)。

    改良的第一步流程


    如此图所示,$\mathcal{Y}$ 有一个 AdaptLayer,这个 layer 就是个 linear,MUVE 把他的 $W$ 间接拿来做初始的 $W$ 了。其余的步骤是一样的。
    此步骤的训练 objective 是:
    对于 X 和 Z 来说,就是 NCE loss,Y 和 Z 也相似。NCE 具体是:

eval

  • 词对词翻译
  • 短语级别的翻译(在 how to world 数据集上)

WALIP (arxiv2022.5.23)

想法

流程

  • 比照前人工作,提出了 robust procrustes;对第一步同样应用了 image 和 text,然而是另一种实现(应用了 clip 的)

    eval

  • 词对词

exp 的后果比拟和其余 baseline 其实相差不大。

4 篇工作总结

  • 根本遵循 2 个步骤,step1 初始化单词映射汇合,step2 迭代求得所有单词映射,都是双语之间的办法。区别在于 step1 是否应用视觉信息,step2 是否有 robust 改良。
  • evaluation 的办法都波及了词对词翻译和词袋级别的翻译,应用办法都是 cos sim 和改良的 CSLS。

数据集

  • Dictionary、Dictionary(visual):纯单词
  • Simple Words、Simple Words(visual):纯单词

  • Human Query:短语
  • HowToW:教你如何干货色的视频,video 和 text 都有,video 是 video,text 是字幕。

    杂项

    杂项
    ● word2word(ACL 2020),一个多语种点对点词典
    也提出了一种叫 CPE 的统计概率的计算形式,并且提供了数据集。

正文完
 0