Commit a87caa3e by 单韦乔

合并分支 'shanweiqiao' 到 'caorunzhe'

13章前言

查看合并请求 !557
parents 06a447c2 143831e3
......@@ -23,6 +23,22 @@
\chapter{神经机器翻译模型推断}
\parinterval 神经机器翻译的一个关键步骤是对神经网络进行训练。也就是,在双语平行数据上优化训练目标函数,使模型参数自动调整到一个“最佳”状态,从而可以对新的句子进行翻译。通常,训练过程对模型性能的好坏起到关键性作用。因此,对模型训练方法的研究也机器翻译领域的重要研究方向,其中的很多发现也对其它自然语言处理任务有很好的借鉴意义。
\parinterval 神经机器翻译模型训练面临着一些挑战,例如:
\begin{itemize}
\vspace{0.5em}
\item 如何对大容量模型进行有效的训练?例如,避免过拟合问题,并让模型更加健壮,同时有效地处理更大的词汇表;
\vspace{0.5em}
\item 如何设计更好的模型训练策略?例如,在训练中更好地利用机器翻译评价指标,同时选择对翻译更有价值的样本进行参数更新;
\vspace{0.5em}
\item 如何让模型学习到的“知识”在模型之间迁移?例如,把一个“强”模型的能力迁移到一个“弱”模型上,而这种能力可能是无法通过直接训练“弱”模型得到的。
\vspace{0.5em}
\end{itemize}
\parinterval 本章将就这些问题展开讨论,内容会覆盖开放词表、正则化、对抗样本训练、最小风险训练、知识蒸馏等多个主题。需要注意的是,神经机器翻译模型训练涉及的内容十分广泛。很多情况下,模型训练问题会和建模问题强相关。因此,本章的内容主要集中在相对独立的模型训练问题上。在后续章节中,仍然会有模型训练方面的介绍,其主要针对机器翻译的特定主题,如极深神经网络训练、无指导训练等。
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
......@@ -52,9 +68,11 @@
\parinterval 如果要覆盖更多的翻译现象,词表会不断膨胀,并带来两个问题:
\begin{itemize}
\vspace{0.5em}
\item 数据稀疏。很多不常见的低频词包含在词表中,而这些低频词的分布式表示很难得到充分学习;
\vspace{0.5em}
\item 词向量矩阵的增大。这会增加计算和存储的负担。
\vspace{0.5em}
\end{itemize}
\parinterval 理想情况下,机器翻译应该是一个{\small\bfnew{开放词表}}\index{开放词表}(Open-Vocabulary)\index{Open-Vocabulary}的翻译任务。也就是,不论测试数据中包含什么样的词,机器翻译系统都应该能够正常翻译。但是,现实的情况是,即使不断扩充词表,也不可能覆盖所有可能的单词。这时就会出现OOV问题(集外词问题)。这个问题在使用受限词表时会更加严重,因为低频词和未见过的词都会被看作OOV单词。这时会将这些单词用<UNK>代替。通常,数据中<UNK>的数量会直接影响翻译性能,过多的<UNK>会造成欠翻译、结构混乱等问题。因此神经机器翻译需要额外的机制解决大词表和OOV问题。
......@@ -128,11 +146,13 @@
\parinterval\ref{fig:7-9}给出了BPE算法执行的实例。在执行合并操作时,需要考虑不同的情况。假设词表中存在子词``ab''和``cd'',此时要加入子词``abcd''。可能会出现如下的情况:
\begin{itemize}
\vspace{0.5em}
\item 若``ab''、``cd''、``abcd''完全独立,彼此的出现互不影响,将``abcd''加入词表,词表数目$+1$
\vspace{0.5em}
\item 若``ab''和``cd''必同时出现则词表中加入``abcd'',去除``ab''和``cd'',词表数目$-1$。这个操作是为了较少词表中的冗余;
\vspace{0.5em}
\item 若出现``ab'',其后必出现``cd'',但是``cd''却可以作为独立的子词出现,则将``abcd''加入词表,去除``ab'',反之亦然,词表数目不变。
\vspace{0.5em}
\end{itemize}
\parinterval 在得到了子词词表后,便需要对单词进行切分。BPE要求从较长的子词开始替换。首先,对子词词表按照字符长度从大到小进行排序。然后,对于每个单词,遍历子词词表,判断每个子词是不是当前词的子串,若是则进行替换切分。将单词中所有的子串替换为子词后,如果仍有子串未被替换,则将其用<UNK>代替,如图\ref{fig:7-10}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论