APP下载

基于神经网络的维汉翻译系统实现

2018-12-14张胜刚艾山·吾买尔吐尔根·依布拉音买合木提·买买提米尔夏提·力提甫

现代电子技术 2018年24期
关键词:小语种机器翻译负载均衡

张胜刚 艾山·吾买尔 吐尔根·依布拉音 买合木提·买买提 米尔夏提·力提甫

关键词: 小语种; 机器翻译; theano; 神经网络; 开源系统; 负载均衡

中图分类号: TN711?34                         文献标识码: A                       文章编号: 1004?373X(2018)24?0157?05

Implementation of Uyghur?Chinese translation system based on neural network

ZHANG Shenggang1,2, Hasan Wumaier1,2, Tuergen Yibulayin1,2, Mahmut Maimaiti1,2, Mirxat Litip1

(1. School of Information Science and Engineering, Xinjiang University, Urumqi 830046, China;

2. Xinjiang Laboratory of Multi?Language Information Technology, Urumqi 830046, China)

Abstract: The machine translation of minority languages is generally to achieve online service system on the basis of the open source system due to reasons such as development costs and user scale. At present, the source codes provided by neural machine translation are mostly written by the theano, but the machine translation written by the theano cannot meet users′ needs due to its slow translation speed. How to realize the stable Uyghur?Chinese neural network machine translation system based on the theano is taken as the research object. The multi?layer bi?directional network framework of the ALU neuron is used as the translation model. The django is used to realize the translation service interface. The nginx+uwsgi is selected to achieve load balancing, so as to improve the translation speed. The experimental results show that, the translation speed of the system constituted by 5 translation engines is 1.3~1.55 times higher than that of the system constituted by 10 translation engines. The research results in this paper have an important reference value for using the open source system to rapidly realize the translation system that can meet daily visits of less than 10 million times per day.

Keywords: minority language; machine translation; theano; neural network; open source system; load balancing

0  引  言

隨着“一带一路”倡仪的提出,为了使得沿线的所有民族之间都可以无障碍自由的沟通,机器翻译变得日益重要。机器翻译(Machine Translation,MT)指的是利用机器实现自动从一种语言转换为另一种相应的语言,在翻译过程中可以分为源语言和目标语言。机器翻译的历史可以大致分为4个阶段。在第一个阶段中机器翻译主要是基于情报学中的“加密/解密”方法,但这一方法并没有获得成功。在第二个阶段中机器翻译主要利用语言学家手工书写翻译规则,然而语言学家编写的规则有限并且成本巨大,若某个句子不符合翻译规则则该句就无法正常翻译。第三阶段的机器翻译主要是基于概率统计的方法[1?3]。通俗来讲,基于统计的机器翻译的基本思想是利用概率统计方法找到大规模的平行语料的翻译规律从而构建相应的机器翻译模型。更具体来说就是将源语言的句子分割为词单元或者短语单元等,然后将其输入到翻译模型中并选择最好的目标语言句子进行输出。第四阶段也就是目前阶段主要是基于神经网络的机器翻译(神经机器翻译,NMT)[4?7]。通过多个不同的非线性处理单元,基于神经网络的方法能够自动对任意数据进行特征抽取和学习并拟合任意的非线性关系。目前基于神经网络的机器翻译一般采用encoder?decoder模型,encoder端主要将源语言句子编码为一个稀疏稠密的实数向量,decoder端则根据编码器端的结果生成目标语言句子。尽管基于神经网络的机器翻译方法目前已经成为主流方法,但是由于网络的复杂性和模型的庞大等原因导致在实际工程应用时翻译速度很慢。本文基于神经网络的机器翻译模型采用 nginx+uwsgi+django组合的方式实现了基于神经网络的维汉机器翻译的服务接口,并利用nginx实现对多个维汉机器翻译引擎进行负载均衡,从而可以同时保证翻译质量和翻译速度。

1  相关工作

端到端神经机器翻译的基本思想是通过神经网络直接实现自然语言之间的自动翻译。因此基于神经网络的机器翻译常采用编码器?解码器模型(encoder?decoder)来实现序列之间的自动转换。编码器端主要将输入的源语言句子编码为稠密稀疏的实数向量,而解码器端则根据编码器端编码的结果生成目标语言句子。为了获得好的翻译结果,机器翻译需要句子的全局上下文信息。循环神经网络(Recurrent Neural Network,RNN)[5]通常作为基于神经网络机器翻译模型的编码器和解码器。RNN的当前时刻状态不仅受到当前时刻输入的影响,还受到之前时刻状态影响,因此理论上可以捕获句子的全局上下文信息。为了缓解RNN本身固有的梯度消失(Vanishing Gradient)和梯度爆炸(Gradient explosion)的问题,通常实际使用是RNN的两个变体: 长短时记忆网络(LSTM)和门控循环单元(GRU)。在RNN网络中由于存在上下时刻间时序上的依赖从而无法并行计算,因此训练的时间代价很高。卷积神经网络(Convolutional Neural Network,CNN)能够对一个窗口内的局部上下文信息进行特征抽取,而且不同窗口间的计算过程可以并行,从而能够充分利用 GPU设备的并行计算能力。 因此有人提出了CNN?based 神经网络机器翻译模型(ConvSeq2Seq)[8]。为了增强CNN的建模能力,ConvSeq2Seq模型通过堆叠多层 CNN来增强感受野的范围。然而原则上ConvSeq2Seq还是存在上下文信息缺失的问题,特别是当序列变得很长的时候。最近有人提出了完全通过Attention机制构建翻译模型(Transformer)并且获得了很大的成功[9]。

此前已有不少研究者和机构尝试搭建维汉机器翻译系统,新疆大学的Tilmach维汉机器翻译系统[10]。该系统主要是基于传统的基于短语的统计方法实现。中国民族语文翻译局的在线维汉翻译系统,该系统则主要是基于self?attention机制来构造整个系统,该模型既能保证并行训练的速度优势,又能快速地得到句子中任意两个时刻的交互状态。孔金英等使用带注意力机制的编码器解码器模型搭建了维汉口语机器翻译模型[11]。本文主要从工程角度入手探讨如何同时保证基于神经网络的维汉机器翻译系统的翻译速度和翻译质量。

2  基于神经网络的维汉机器翻译系统

2.1  神经网络机器翻译模型

神经网络机器翻译模型以端到端的方式实现输入序列到输出序列的直接映射。假设给定的源语言为X={x1,x2,…,xn},目标语言为Y={y1,y2,…,ym},基于神經网络建模翻译概率如下:

[P(YX)=t=1mP(yty<t,X)] (1)

式中,y<t=y1,y2,…,yt-1。在基于神经网络机器翻译模型中使用LSTM,GRU或者其他非线性单元根据当前的输入xt和前一时刻的隐藏状态ht-1计算当前的隐藏状态ht:

[ht=RNN(ht-1,xt)] (2)

为了能得到更加丰富的上下文信息,在编码器端通常对源语言进行双向编码;然后对两个方向的编码结果进行整合作为最终的隐藏状态,该过程为:

[h→t=RNN(h→t-1,xt)] (3)

[ht←=RNN(h←t-1,xt)] (4)

[ht=htht←→] (5)

在解码器端生成目标语言过程如下:

[q=g(yt-1,ct,st)] (6)

[p(yty<t,X)=softmax(q)] (7)

式中:q是要预测目标端词的张量;g(·)是一个非线性单元,如第一节提到的LSTM,GRU或者CNN等;st是解码器端的隐藏状态,其计算方法和编码器端相同;ct是源端所有隐藏状态的加权和,通过注意力机制计算得到。ct的计算方法如下:

[ct=attention(st-1,h)=i=1nat,ihi] (8)

[at,i=softmax(VTatanh(Wast-1+Uahj))] (9)

式中,Va,Wa,Ua均为神经网络要训练的参数。模型的整体结构如图1所示。

2.2  维汉机器翻译系统

为了更好地捕获句子中的深层信息提高译文质量,本文构建的维汉机器翻译模型在上文所述的模型的基础上将其变为深层神经网络并且借鉴文献[12]的思想,将网络中的非线性单元从传统的GRU修改为ALU,从而可以减小训练的难度并进一步提高翻译质量。当翻译完成后系统对译文进行了后处理以缓解由于神经机器翻译中的集外词问题导致的译文质量下降[13]。

系统在实现上首先使用Django Web开源框架,在维汉机器翻译引擎的基础上实现维汉机器翻译的网络服务接口。然后使用开源Web服务器nginx不停地监听来自用户的请求并将用户传来的Web请求交给相应的接口进行处理并返回。为了能处理更多的用户请求量,在两者之间设置了uwsgi服务器用来接收来自nginx的服务请求。为了进一步提高翻译速度和并发量,整个维汉翻译系统由多个维汉机器翻译引擎构成,并使用nginx进行负载均衡。本系统采用的负载均衡方法为轮询方式,整个维汉机器翻译系统结构图如图2所示。

3  实  验

为了验证基于神经网络维汉机器翻译系统性能,本文设置了多组实验,从翻译质量、翻译速度和并发量三个方面来进行测试。

3.1  接口调用说明

本文系统的调用方式是基于Web的服务接口,具体关于调用的详细信息如表1所示,输入示例如表2所示,返回结果示例如表3所示。

猜你喜欢

小语种机器翻译负载均衡
互联网+新时代下人机翻译模式研究
“语联网+行业” 助力中国伟大复兴
异构环境下改进的LATE调度算法
小语种就业现状调查与分析
大数据背景下石油科技翻译
大数据背景下石油科技翻译
基于负载均衡的云资源调度策略研究
机器翻译不可盲取
全球化背景下小语种语言的发展
小语种对大学生(非小语种专业)就业竞争力影响调查