本发明属于机器学习技术领域,特别涉及一种基于强化学习的蒙汉双语种互译方法。
背景技术
随着internet的普遍应用,世界经济一体化进程的加速以及国际社会交流日渐频繁,机器翻译技术在促进政治、经济、文化交流等方面起到越来越重要的作用。
在我国经济快速发展与社会不断进步的背景下,蒙古族与汉族的之间的交流日益频繁,而蒙古语是我国蒙古族同胞使用的主要语言,并且蒙语作为蒙古国的官方语言,因此蒙汉机器翻译的研究对于两种文化的价值观相互渗透,凝聚民族的核心文化,促进良好民族关系的建立以及促进和蒙古国之间的对外贸易和文化交流都具有重要意义。
目前,编码器-解码器架构的神经机器翻译(nmt)在当前的标准机器翻译基准上实现了最佳的结果,并且也已经在业界的翻译服务核心得到了应用。nmt模型由编码器和解码器两者组成,二者均采用循环神经网络(recurrentneuralnetwork,rnn)结构。可使用双向的rnn作为编码器和单向的rnn作为解码器,这个框架从源语言句子a={a1,a2,...,an}到正确的双语库目标语言句子b={b1,b2,...,bm}学习了一个概率映射pθ(b|a),其中an和bm分别是源语言句子a的第n个词和正确双语库目标语言句子b的第m个词。
注:bt:双语库中目标语言句子b的第t个词。
b<t:bt先前的词。
每一个局部分布式pθ(b|b<t,a)通过目标词汇建模成一个多项式分布。根据softmax函数,把公式(1)线性转化,解码器输出矢量
ct=attend(s'1:n,st)(4)
注:attend(.,.):一种注意力机制
τ:softmax函数的参数
s:解码器生成的隐藏向量
s':编码器生成的隐藏向量
在一个监督的学习框架中,一个nmt模型通常是在最大的逻辑可能性下进行训练的,但由于训练该模型需要大量平行语料数据,才能得到比较好的结果。但是对于少数民族语言翻译领域而言,此类翻译任务普遍面临双语对齐语料不足,资源稀少,翻译研究时间短,成果少等困难。并且平行语料库的获得成本非常之高,且需要相对应的专业知识。
技术实现要素:
为了克服上述现有技术的缺点,本发明的目的在于提供一种基于强化学习的蒙汉双语种互译方法,对nmt模型进行微调,微调的训练过程只关注相关的句子,同时利用强化学习反馈机制,接受一个源语言句子进行翻译,生成一个目标语言语句子,并且得到一个标量分数作为反馈,利用强化学习技术,从反馈中有效地学习。
为了实现上述目的,本发明采用的技术方案是:
一种基于强化学习的蒙汉双语种互译方法,基于编码-解码架构的神经机器翻译系统,其特征在于,系统接受一个源语言句子a进行翻译,生成一个目标语言句子
所述编码器和解码器均采用循环神经网络(rnn)结构,编码器将源语言句子a编码成一个连续向量φ(a),作为解码器的初始隐藏向量,解码器执行rnn更新以生成一个隐藏的序列向量(s1,s2,...,st):
s0=φ(a)
其中,st表示解码器t时刻的隐藏状态,fθ为循环单元,e(·)表示词向量查找操作,bt表示双语库中正确的目标语言句子b的第t个词,st-1表示解码器t-1时刻的隐藏状态,
利用系统预测值
通过随机策略pθ(bt|b<t,a)来采取下一步行动,以t-1时刻的隐藏状态st-1作为输入,生成一个所有行为在目标词汇的概率分布,选择下一个动作
通过梯度下降优化所述目标函数,公式如下:
再通过奇点采样和v的values来标准化奖励机制,从而减少上述公式的误差,并实现系统更新,公式如下:
其中,
其中,
训练一个奖赏模型vw来估计v的值,vw是一种基于注意力的编码解码器,通过vw,将编码源语言句子a解码,预测
给定一个固定的a,该公式的梯度下降函数为:
根据该下降函数,实现奖赏机制更新。
其中,||·||2为欧几里得范数,为二范式,二范数是指空间上两个向量矩阵的直线距离。即两点之间的最短距离,来表示实际值和预测值之间的最小差距。
首先所述系统接受一个源语言句子a进行翻译,初始化翻译模型参数θ,然后根据翻译模型pθ(b|a),生成一个预测值
与现有技术相比,本发明的有益效果是:
强化学习不同于监督学习和非监督学习。首先,监督学习只能从标注的数据进行学习;而强化学习可以从未标注的数据进行学习。其次,半监督尽管可以对未标注的样本生成伪标签,但是无法知道这些标签的好坏,而强化学习生成的反馈能知道中间过程产生伪标签的好坏,因而可以更有效地利用未标签的数据。在强化学习中没有原始已知的数据可以学习。强化学习面对的是一个不断变化的状态空间,要解决的是一个决策链的问题。其目的是找到在当前环境(状态空间)下的最佳决策是什么。但是当下的决策好坏当下无法验证和评估,要根据多次决策以后才能知道。所以强化学习没有大量的原始已知数据,机器需要在变化的环境中通过大量的多次试错学习,再根据某种规则找到产生最佳结果的最佳路径,从而做出最佳决策。
因而,本发明一种基于强化学习的双语种互译方法,对于少数民族语言翻译领域而言,很好解决了双语对齐语料不足,资源稀少等困难。
附图说明
图1是强化学习基本模型示意图。
具体实施方式
下面结合附图和实施例详细说明本发明的实施方式。
本发明一种基于强化学习的蒙汉双语神经翻译方法,采用编码-解码结构,对nmt模型进行微调,微调的训练过程只关注相关的句子,同时利用强化学习反馈机制,接受一个源语言句子进行翻译,生成一个目标语言句子,并且得到一个标量分数作为反馈,利用强化学习技术,从反馈中有效地学习。
具体地,本发明利用强化学习策略梯度方法来训练蒙汉翻译模型,希望提高策略以最大化长远的回报,但是没有标注的样本不会告知在某个状态a哪个动作b是正确的,因此只有通过使用策略在不同的状态下执行不同的动作,观测该动作带来的回报,从而改善策略。如果在执行某个动作之后,观测到了一个很大的回报,就通过调整策略(在当前策略函数的参数上加上它的梯度)来增加这个状态下执行这个动作的概率;相反,如果在执行某个动作之后,观测到了一个很小的回报,那么就需要调整策略(在当前策略函数的参数上减去它的梯度),依降低在这个状态下执行这个动作的概率。
在强化学习中定义解法的数学框架叫做马尔科夫决策过程(markovdecisionprocess)。如图1所示,它被设计为:
一系列的状态集合(setofstates),s
一系列行动集合(setofactions),a
策略(policb),π
价值(value),v
agent发出动作a给环境,环境接受到这个动作之后发生了状态s的变化并且发出了强化信号r,强化信号r是一个成功或者失败的反馈信息,这个反馈信息传递给agent,当强化信号r趋于成功反馈信息的时候,agent才会根据这种成功反馈信息和当前的状态再选择做下一个动作,然而选择的动作会立刻影响强化值,而且还会影响下一动作的状态和最终强化值。强化学习中agent发出的动作给环境所产生的强化信号r只是一种成功与失败的评价标注,而并不是直接告诉agent正确的动作,由于外部环境给agent的信号单一,所以agent需要通过不断的动作反应给环境,环境又将反馈强化信号r传给agent以判定动作的正确,通过反复操作判定成功与失败来不断修正自己的动作,从这种不断地修复中学习一系列正确的动作行为,从而达到适应环境的目的。
nmt模型的翻译过程可以是被看作是在一个连续状态空间的马尔科夫决策过程。状态是由解码器生成的隐藏向量。这个动作空间是目标语言的词汇。
在训练过程中,编码器首先编码a成一个连续向量φ(a),它被用作解码器的初始隐藏向量,解码器执行rnn更新以生成一个隐藏的向量:
s0=φ(a)
注:fθ:循环单元,例如longssort-termmemorb(lstm)
e(·):词向量查找操作
st:t时刻的隐藏状态
st-1:t-1时刻的隐藏状态
对于给定的源语言句子,模型预测值
在一个监督学习框架中,一个nmt模型通常通过最大对数似然函数训练。dtr:训练集
z(θ)=e(a,b)~dtr[logpθ(b|a)](7)
要从一个源语言句子a中生成一个翻译,一个nmt模型在一个初始状态s0下开始,这是由编码器计算出的a的表示,在时刻t大于0时,模型决定了通过定义一个随机策略pθ(bt|b<t,a)来采取下一步行动,这一策略需要前一步状态st-1作为输入,生成一个所有行为的概率分布(在目标词汇)。选择下一个动作
目标是从模型的策略中找到一个策略使预期的翻译质量最大化
注:
通过梯度下降优化这个目标函数。
这个算法近似等于公式(9)中的梯度下降运算,通过奇点采样和通过v的values来标准化奖励机制来减少误差。
可通过训练一个奖赏模型vw来估计v的值,这个模型是一种基于注意力的编码解码器,通过模型,将编码源句a解码,预测
w0:矩阵,将向量转化成一个标量。
奖赏机制被训练来在实际值和预测值之间最小化均方误差。
给定一个固定的a,公式(11)的梯度下降函数为:
对于每一个给定的源语言句子a,从nmt模型中抽取一个单一样本
奖赏机制的流程:
1:fork=0.....kdo
2:接受源句a
3:样本翻译
4:获得反馈
5:根据公式9使用梯度来更新nmt模型
6:根据公式12使用梯度来更新奖赏机制
7:endfor
以下是一个蒙译汉的案例。
接受源句:
根据蒙古语的语法和语义特点,比如给出类似下面的样本翻译和反馈。
样本翻译:你我帮可以吗?
获得反馈:0.3
调整策略(在当前策略函数的参数上减去它的梯度),降低在这个状态下执行这个动作的概率。
.......多轮迭代
样本翻译:你可以帮我吗?
获得反馈:0.8
调整策略(在当前策略函数的参数上加上它的梯度)来增加这个状态下执行这个动作的概率。翻译结束。
本发明利用强化学习策略梯度方法来训练蒙汉翻译模型,希望提高策略以最大化长远的回报,但是没有标注的样本不会告知在某个状态a哪个动作b是正确的。由环境提供的强化信号是对产生动作的好坏作一种评价(用标量信号),而不是告诉如何去产生正确的动作。因此只有通过使用策略在不同的状态下执行不同的动作,观测该动作带来的反馈,从而改善策略。根据环境提供的奖赏来调整策略直至最优。如果在执行某个动作之后,观测到了一个很大的反馈,就通过调整策略(在当前策略函数的参数上加上它的梯度)来增加这个状态下执行这个动作的概率;相反,如果在执行某个动作之后,观测到了一个很小的反馈,那么就需要调整策略(在当前策略函数的参数上减去它的梯度),降低在这个状态下执行这个动作的概率。通过这种方法,从环境中获得知识,改进行动方案以适应环境。