在本系列文章中,将向展示如何利用深度学习技术来创建一个自动翻译系统。这一系列可以视为一个逐步教程,帮助理解并构建一个神经机器翻译系统。
本系列假定已经熟悉机器学习的概念:模型训练、监督学习、神经网络,以及人工神经元、层和反向传播。
机器翻译(MT)的概念,即利用机器自动将一种自然语言的文本翻译成另一种自然语言,可以追溯到1949年,当时Warren Weaver提出了主要的MT原则。最初,MT是通过专家规则(基于规则的机器翻译,RBMT)来完成的,这需要大量的人工翻译工作。然后,在20世纪70年代末,统计机器翻译(SMT)出现并迅速发展,特别是得到了IBM资助的Candide项目的帮助。
SMT基于计算文本语料库(原始语言和目标语言)中词和句子对之间最可能的关系。SMT在MT领域占据主导地位,直到2000年,提出了将神经网络应用于MT的神经机器翻译(NMT)作为替代方案。
尽管NMT在最初并未成功,但多年来取得了令人印象深刻的进步。随着AI处理能力(例如GPU卡)的增长,NMT开始提供优于SMT的结果。随着对深度学习(DL)和长短期记忆(LSTM)设计的持续研究,NMT正在获得越来越惊人的结果;很可能在不久的将来,NMT将取代大部分SMT在商业翻译软件中的应用。
深度学习在MT中的优势在于它旨在创建一个人造大脑。理论上,人脑能做的一切,DL系统也能做。此外,LSTM——一种DL技术,更确切地说,是一种循环神经网络(RNN)——在回忆和检测时间模式方面有着前所未有的记录。这在考虑自然语言句子作为单词的条件时间序列,或作为马尔可夫过程的结果时,特别有用。
让专注于LSTM如何在MT上下文中工作,首先简要描述SMT的主要原理。
其功能基于平行语料库。本质上,这是一个“超级词典”——通常来源于专业翻译人员或高年级学生——匹配两种语言中的词或句子对。
SMT和NMT都使用平行语料库。SMT将输入句子划分为单词组,然后使用概率来找到最可能的匹配组合。
例如,像Moses这样的SMT将从训练数据中创建一个翻译模型,并将该模型应用于任何输入。结果是目标语言中条件概率得分最高的句子。
互联网上有许多来源提供自然语言的平行语料库。很好的例子包括像Tatoeba项目和Linguee这样的网站。
Tatoeba项目为各种语言提供了制表符分隔的双语序列对。例如,英语/荷兰语平行语料库包含大约50,000行翻译对。
通常,SMT将为输入语言的非平行语料库创建一个语言模型。然后,翻译模型和语言模型可能与词典模型和对齐模型一起使用,通过贝叶斯规则和最大似然(MLE)估计器计算一系列概率。MLE评分选项,MT选择目标语言中MLE得分最高的句子。换句话说,它选择与输入句子最匹配的一个。通过计算条件概率,估计器如MLE为翻译句子评分。