CS224N WINTER 2022机器翻译注意力机制subword模型(附Assignment4答案)

Posted 囚生CY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CS224N WINTER 2022机器翻译注意力机制subword模型(附Assignment4答案)相关的知识,希望对你有一定的参考价值。

CS224N WINTER 2022(一)词向量(附Assignment1答案)
CS224N WINTER 2022(二)反向传播、神经网络、依存分析(附Assignment2答案)
CS224N WINTER 2022(三)RNN、语言模型、梯度消失与梯度爆炸(附Assignment3答案)
CS224N WINTER 2022(四)机器翻译、注意力机制、subword模型(附Assignment4答案)
CS224N WINTER 2022(五)Transformers详解(附Assignment5答案)

序言


文章目录


lecture 7 机器翻译,注意力机制,subword模型

slides

[slides]

  1. 机器翻译:slides p.4

    • 统计机器翻译(SMT,1990s-2010s):slides p.7

      核心观点是从数据中学习得到一个概率模型。

      比如我们想要将中文翻译成英文,给定中文句子 x x x,目标是找到最好的英文句子 y y y作为译文:
      argmax y P ( y ∣ x ) = argmax y P ( x ∣ y ) P ( y ) (7.1) \\textargmax_yP(y|x)=\\textargmax_yP(x|y)P(y)\\tag7.1 argmaxyP(yx)=argmaxyP(xy)P(y)(7.1)
      ( 7.1 ) (7.1) (7.1)成立的原因是 P ( x ) P(x) P(x)是一个已知的常数(从中文语料库中利用语言模型计算得到),然后利用贝叶斯法则容易推得。

      我们可以这样解释式 ( 7.1 ) (7.1) (7.1)右侧的两项:

      P ( y ) P(y) P(y)是一个语言模型,用以使得翻译得到的英文语句尽可能地通顺流畅;

      P ( x ∣ y ) P(x|y) P(xy)是一个翻译模型,用以使得翻译得到的英文语句尽可能匹配中文语句;

      ( 7.1 ) (7.1) (7.1)的建模难点显然在于如何构建翻译模型 P ( x ∣ y ) P(x|y) P(xy),这通常需要一系列的平行语料(parallel data),即人工编纂的中英互译样本对。

      然后引入一个对齐向量(alignment) a a a,用以指示平行语料之间单词级别的对应关系(如中文中的明天对应英文中的Tommorrow),这是一个隐变量(latent variables),即并没有在数据中被直接指示出来,仅仅是我们为了更好的建模引入的假想变量,需要一些特殊的学习算法(如EM算法)来学习得到隐变量的参数分布,翻译模型由此改进为 P ( x , a ∣ y ) P(x,a|y) P(x,ay)

      但是语言之间的语义对应关系可能并不总是那么简单,不同的语言拓扑结构可能导致复杂的对应关系(多对一,一对多),甚至某些单词根本不存在对应词。这里推荐一篇比较古老的讲SMT中参数估计的paper(1994年发表于Computational Linguistics)。

      ( 7.1 ) (7.1) (7.1)还有一个难点在于如何计算 argmax \\textargmax argmax,难道需要遍历所有的英文语句 y y y吗?这显然非常的不经济,通常的做法是在模型中强加条件独立性假设(impose strong independence assumption),然后利用动态规划算法(如Viterbi算法)来求解全局最优解,这个求解最优 y y y的过程称为解码(decoding)。

      关于强加条件独立性假设这个做法,类比可以联想到概率论以及随机模型中大多假定样本独立同分布,或者参数之间具有独立性等等,不过这在SMT中究竟是指什么的确令人费解。于是笔者在上面那篇老古董paper里找到了independence assumption的说明(p. 40-42),具体如下:

      一般性的公式是这样的:
      P θ ( x , a ∣ y ) = P θ ( m ∣ y ) P θ ( x ∣ m , y ) P θ ( x ∣ a , m , y ) (7.2) P_\\theta(x,a|y)=P_\\theta(m|y)P_\\theta(x|m, y)P_\\theta(x|a,m,y)\\tag7.2 Pθ(x,ay)=Pθ(my)Pθ(xm,y)Pθ(xa,m,y)(7.2)
      然后我们定义 ϵ ( m ∣ l ) \\epsilon(m|l) ϵ(ml)是语句长度的分布概率, t ( x ∣ y ) t(x|y) t(xy)是翻译概率;

      其中 θ \\theta θ是模型参数, a a a即为对齐向量, m m m是中文语句 x x x的长度, l l l是英文语句 y y y的长度,那么条件独立性假设如下所示:
      P θ ( m ∣ y ) = ϵ ( m ∣ l ) P θ ( a ∣ m , y ) = ( l + 1 ) − m P θ ( x ∣ a , m , y ) = ∏ j = 1 m t ( x j ∣ y a j ) (7.3) P_\\theta(m|y)=\\epsilon(m|l)\\\\ P_\\theta(a|m,y)=(l+1)^-m\\\\ P_\\theta(x|a,m,y)=\\prod_j=1^m t(x_j|y_a_j)\\tag7.3 Pθ(my)=ϵ(ml)Pθ(am,y)=(l+1)mPθ(xa,m,y)=j=1mt(xjyaj)(7.3)
      其中 a j a_j aj即中文语句 x x x的第 j j j个位置对应的英文语句 y y y的下标,这样转换的好处是引入了语句长度这个变量,我们就可以逐字翻译,具体而言在slides p.16中给出的SMT解码示例中,对每一个中文词生成候选的对应英文单词,然后进行一个全局性的搜索(包括位置对应,选取哪个候选词等等),这就可以使用动态规划来求解了。

    • 神经机器翻译(NMT,2014):slides p.18

      直接将机器翻译问题转化为seq2seq建模,常见可以用seq2seq建模的机器学习任务有:文本综述对话系统文本解析代码生成。这涉及两个RNN网络层,一个是编码器(encoder),另一个是解码器(decoder):

      seq2seq模型是条件语言模型(Conditional Language Model)的一种范例,类似式 ( 7.1 ) (7.1) (7.1)中的标记,NMT直接计算 P ( y ∣ x ) P(y|x) P(yx)的值:
      P ( y ∣ x ) = P ( y 1 ∣ x ) P ( y 2 ∣ y 1 , x ) P ( y 3 ∣ y 1 , y 2 , x ) . . . P ( y T ∣ y 1 , . . . , y T − 1 , x ) (7.4) P(y|x)=P(y_1|x)P(y_2|y_1,x)P(y_3|y_1,y_2,x)...P(y_T|y_1,...,y_T-1,x)\\tag7.4 P(yx)=P(y1x)P(y2y1,x)P(y3y1,y2,x)...P(yTy1,...,yT1,x)(7.4)
      这时候我们再次审阅上图,注意右边的解码器是逐字进行解码(翻译)的,这就是式 ( 7.4 ) (7.4) (7.4)的思想,首先翻译第一个单词,然后给定第一个单词翻译第二个单词,依此类推。

      如何训练seq2seq模型:

      上图是单层的encoder-decoder架构,也可以改进为多层的形式,这个可能与直观上的多层有一些区别,并非encoder的最后一层输出接到decoder的第一层输入上,而是encoder每一层都会与decoder的对应层相连接,具体如下图所示:

      接下来要说的是NMT中非常关键的问题: (

      以上是关于CS224N WINTER 2022机器翻译注意力机制subword模型(附Assignment4答案)的主要内容,如果未能解决你的问题,请参考以下文章

      CS224N WINTER 2022机器翻译注意力机制subword模型(附Assignment4答案)

      CS224N WINTER 2022词向量(附Assignment1答案)

      CS224N WINTER 2022词向量(附Assignment1答案)

      CS224N WINTER 2022词向量(附Assignment1答案)

      CS224N WINTER 2022Transformers详解(附Assignment5答案)

      CS224N WINTER 2022Transformers详解(附Assignment5答案)

(c)2006-2024 SYSTEM All Rights Reserved IT常识