Skip to content

Lesson-7 机器翻译

机器翻译任务的定义

利用计算机程序将一种语言的文本自动转换为另一种语言的文本,同时尽可能保持原文的语义、语法结构和风格特征。

统计机器翻译

统计机器翻译(Statistical Machine Translation,SMT)是一种基于统计学模型的机器翻译方法。SMT通过从大量双语语料中学习,利用源语言和目标语言之间的统计关系进行翻译。它主要通过翻译模型和语言模型来生成目标语言的翻译。

  • 翻译模型:翻译模型捕捉源语言和目标语言之间的转换关系。它通过学习源语言句子与目标语言句子之间的对齐规则来进行翻译。常用的翻译模型包括短语翻译模型和词对词翻译模型。
  • 语言模型:语言模型用于评估目标语言翻译的流畅度,确保生成的句子符合目标语言的语法和用法。

统计机器翻译的核心思想是将翻译问题建模为寻找目标语言句子在给定源语言句子条件下的最大概率问题,即:

\[\hat{e} = \underset{e}{\text{argmax }} P(e|f)\]

根据贝叶斯公式:

\[P(e|f) = \frac{P(f|e)P(e)}{P(f)}\]

其中:\(P(e)\)是语言模型得出的概率,用于保证生成的目标语言句子流畅且符合语法;\(P(f|e)\)表示源语言句子\(f\)在给定目标语言句子\(e\)的条件下被生成的概率,用于捕捉源语言到目标语言的翻译对应关系;\(P(f)\)归一化常数,和目标翻译无关,可以忽略。

因此,问题转化为:

\[\hat{e} = \underset{e}{\text{argmax }} P(f|e)P(e)\]

优点:

  • 基于统计学习,能够自动从大量双语语料中获取翻译知识,适应性强
  • 可以处理不同语言对的翻译任务,无需人工规则编写

缺点:

  • 翻译模型依赖平行语料中的观测频率,导致长尾短语和低频句子对的翻译效果较差
  • 上下文感知能力有限,无法有效捕捉长距离依赖关系
  • 短语对齐和解码过程的计算复杂度较高,尤其是对于长句
  • 虽然语言模型能够提升目标语言句子的流畅性,但其能力有限,难以处理复杂的语言现象
序列到序列模型(Seq2Seq)

序列到序列模型是一种深度学习架构,旨在将一个输入序列转换为一个输出序列。

通常,Seq2Seq 模型由两个部分组成:

  • 编码器(Encoder):编码器接收输入序列并将其压缩为一个固定大小的上下文向量,这一向量表示输入序列的全局信息
  • 解码器(Decoder):解码器基于编码器输出的上下文向量逐步生成目标序列。解码器通常是一个递归神经网络,每一步的输出依赖于之前生成的输出

序列到序列模型除了适用于机器翻译,还适用于:Summarization、Dialogue、Code generation 和 Parsing

序列到序列模型实际上也是一种条件语言模型:因为 Decoder 基于 Encoder 的输出和之前的上下文预测下一个词

贪婪解码

核心思想:在每一步的生成过程中,选择当前可能性最大的输出,而不考虑未来可能的输出。

优点:

  • 简单高效:只需要一次前向推理,在每一步选择最优的词,无需回溯或复杂的计算
  • 贪婪解码是生成任务中最直观的解码方法,易于实现

缺点:

  • 局部最优,非全局最优
  • 容易错过隐藏在其他选择中的高质量序列,输出序列的质量较低
  • 生成序列的多样性较低
  • 错误传播:生成序列过程中,由于一次错误的预测会影响后续的解码步骤,导致生成的序列整体质量下降
Exhaustive Search Decoding(穷举搜索解码)

旨在找到序列生成任务中的全局最优解。它通过评估所有可能的输出序列,选择概率最高的序列。这种方法成本太高,可行性不足

柱搜索、集束搜索算法(Beam search decoding)

核心思想:在解码器的每一步中,保存k个最可能的结果(我们称之为 hypothesis,hypothesis的分数是它每一步的对数概率,即:

\[score(y_1,y_2,...,y_t) = \log P_{LM}(y1,...,y_t|x)=\sum_{i=1}^t\log P_{LM}(y_i|y_1,y_2,...,y_{i-1},x)\]

alt text

柱搜索算法的停止条件:

在beam search解码中, 不同的hypotheses 在不同的step产生<END>tokens:当某个hypothesis 产生<END>,我们认为该 hypothesis 结束,会把它放在一边,然后继续其他假说的搜索。

最终的结束条件可能会有多种:(1)设置一个最大搜索步数T;(2)当至少有n个完全的hypotheses

如果有 n 个完全的假说,选择哪个呢?

我们可以按照 score 的大小来进行选择,但是显然:假说越长,score越小,因此,我们应该对长度规范化:

\[\frac{1}{t}\sum_{i=1}^t\log P_{LM}(y_i|y_1,y_2,...,y_{i-1},x)\]
评价指标

BLEU:机器翻译中最广泛使用的自动化评价指标之一,用于衡量机器翻译结果与参考翻译之间的相似性。

核心思想:通过计算机器翻译输出与一个或多个参考翻译之间的 n-gram 匹配程度,来评估翻译质量。BLEU 的评分范围是 0 到 1(通常乘以 100 表示为百分制),分数越高表示翻译越接近参考翻译。

其公式如下:

\[BLEU = BP \cdot exp\{\sum_{i=1}^n w_i p_i\}\]

其中,BP为长度惩罚:这是为了防止机器只生成较短的翻译。

\[BP = \begin{cases} 1 & \text{若 } c > r \\ \exp(1 - r/c) & \text{若 } c \leq r \end{cases} \]

其中:\(c\)为机器翻译的长度,\(r\)为参考翻译的长度