本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:【图】【邓侃】哈佛大学机器翻译开源项目 OpenNMT的工作原理

时间:2016-12-27 10:37来源:本港台现场报码 作者:www.wzatv.cc 点击:
【新智元导读】 2016年12月20日,哈佛大学自然语言处理研究组,宣布开源了他们研发的机器翻译系统 OpenNMT ,并声称该系统的质量已经达到商用水准。本文作者邓侃基于OpenNMT背后的论

  【新智元导读】2016年12月20日,哈佛大学自然语言处理研究组,宣布开源了他们研发的机器翻译系统 OpenNMT ,并声称该系统的质量已经达到商用水准。本文作者邓侃基于OpenNMT背后的论文,尝试对该机器翻译系统的原理进行分析。

  一. 哈佛大学机器翻译开源项目 OpenNMT

  2016年12月20日,哈佛大学自然语言处理研究组,宣布开源了他们研发的机器翻译系统 OpenNMT [1],并声称该系统的质量已经达到商用水准。

  

wzatv:【图】【邓侃】哈佛大学机器翻译开源项目 OpenNMT的工作原理

  在 OpenNMT 官网上,有这么一段话,

  The main model is based on the papers "Neural Machine Translation by Jointly Learning to Align and Translate" Bahdanau et al. ICLR 2015 and "Effective Approaches to Attention-based Neural Machine Translation" Luong et al. EMNLP 2015

  我们阅读一下这篇论文,"Neural Machine Translation by Jointly Learning to Align and Translate" [2],了解 OpenNMT 的工作原理。

  二. 机器翻译的任务和难度

  翻译有三个境界,信、达、雅。信者,语义正确。达者,无过无不及。雅者,文学性。

  机器翻译的任务很明确,譬如英翻中,输入一句英文(Source),输出一句中文(Target),两者语义相同,也就是符合 “信” 和 “达” 的要求,暂时不奢望达到 “雅” 的境界。

  早先的机器翻译,通常用统计翻译的办法来实现,精度不高。近年来,神经机器翻译的新方法,逐渐取代了原先的统计翻译的办法。

  神经机器翻译(Neural Machine Translation,NMT)的基本原理,是把用一种自然语言写成的句子 X,先编(encode),转换成一组向量 H,向量组 H 不仅包含 X 语句中每一词的语义,而且也包含词与词之间的语法结构。然后再把向量组 H 解(decode),转换成用另一种自然语言写成的句子 Y。

  举个英翻中的例子,英文源句是,“Quite cold today in Beijing, keep warm when going outdoors。” 中文译句是,“今天北京天气很冷,出门时要保暖。”

  先把英文源句中每个单词和标点,按顺序编码成数字向量组 H。在这个例子中,向量组 H 共包括 12 个向量,每个向量的维度人为确定,譬如 600 维。然后再把这个 600 * 12 向量组,解码成中文译句。

  换而言之,向量组是超越一切自然语言的数字语言。所谓翻译,就是把一种自然语言,先编码成数字语言,然后再从数字语言解码成另一种自然语言。

  不管是哪一种机器翻译方法,都面临以下挑战,直播

  1. 输入的语句往往不规范,也就是不完全符合语法规则。譬如上面的例子,缺失了主语。

  2. 有些语言有阴性阳性、单数复数、过去时完成时现在时未来时之分,其它语言不一定有。所以不能逐字逐句翻译,要结合上下文。

  3. 有些语言的句法,按主谓宾顺序排列,有些则把动词放在句尾。譬如德语和日语,谓语放在句子末尾。

  4. 句子长短不一。长句子可能包含多个从句,句法成分复杂。

  三. 编码的工作原理

  编码的任务,是把语句 X 转换成向量组 H,这个工作由一个双向循环神经网络(EncoderBiLSTM)来完成。编码包含以下几个步骤。

  1. 假如语句 X 由 Tx 个词组成,把每个词都转换成词向量。这样,语句 X 就变成 f * Tx 的矩阵,f 是词向量的维度,Tx 是语句 X 中词的数量。x(t) 是指这个矩阵的第 t 列,也就是对应于第 t 个词的词向量。

  2. 把第 1 个词向量 x(1),输入到 EncoderBiLSTM,得到输出 hf(1)。重复这个过程,逐个输入语句 X 中所有词向量 x(2) ... x(Tx),得到一系列向量 hf(1), hf(2) ... hf(Tx),每个向量 hf(i) 的维度都是 k。

  3. 从语句 X 的最末端的词 x(Tx) 开始,反向到第 1 个词 x(1),逐个输入到 EncoderBiLSTM,得到一系列输出 hb(Tx), hb(Tx-1) ... hb(1),每个向量的维度也是 k。

  4. 对应于语句 X 中每一个词向量 x(t),把 hf(t) 和 hb(t) 拼接起来,得到 h(t),它的维度是 2k。

  语句中第 t 个词的词向量是 x(t),x(t) 隐含着第 t 个词的语义信息。h(t) 比 x(t) 更超越。h(t) 不仅隐含着第 t 个词的语义信息,而且除此之外,h(t) 还隐含着上下文的语义信息,以及上下文的语法结构。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容