NLP

神经机器翻译学习大纲

From Neural Machine Translation

Posted by Jiayue Cai on October 23, 2018

Last updated on 2018-10-23…

由于拿到了腾讯AI Lab的实习offer,所以查找了如下大纲。

以下内容转载自北邮研究生LXM的博客,作为个人的学习大纲,不定期增删改。>原文链接

NMT大纲(到2017年6月)

主要作为研究目录,不深入探讨每个模块。

  1. 网络架构设计
    • 神经图灵机
    • 利用记忆机制(attention)提高神经机器翻译
    • 隐变量神经机器翻译模型
    • Linear Associative Unit(LAU):支持深层网络
    • Facebook: Convolutional Seq2Seq
    • Google: Transformer
  2. 受限的词汇量
    • 未登录词替换(UNK or OOV)
    • sampled softmax
    • 基于字母(字)的模型(字母与词语的混合模型,高频词用词向量,生僻词用字母/字向量)
    • Byte Pair Encoding(BPE):合并高频字串来切分子词
    • 使用相似词替代未登录词
  3. 先验约束(如何加入先验知识)
    • 基于覆盖率的NMT:如何防止一个词被翻译多次
    • 一致性训练:正向和反向翻译模型具有互补性(同一对翻译的中翻英的attention矩阵与英翻中的attention矩阵应该互补)
    • 基于后验正则化加入离散特征(加入规则约束)
  4. 训练准则
    • 最小风险准则
    • 柱搜索
  5. 低资源语言翻译
    • 伪数据:翻译单语语料库(利用已有模型一个词一个词翻译),构造伪平行语料库
    • 半监督学习:同时利用平行语料库和单语语料库(A翻译到B,B再翻译到A,模型共2个部分,目标为减小reconstruct结果误差)
    • 对偶模型:上同,也是相互翻译,利用DL
    • 多任务学习:一次翻译多个语言(通过大资源语料库来辅助训练低资源语料库)
    • 通用语言翻译器(一个模型,多个翻译对,一种zero-shot的思想)
    • 学生-教师模型:比如A翻译B,A翻译C,B翻译C,那么可以通过A翻译B的模型和B翻译C的模型来辅导A翻译C的模型,使得A->C的模型结果与A->B->C的模型结果KL距离变小
  6. 多模态
    • 语音->文本
    • 文本+图像->文本生成
    • 视频->描述文本
  7. 可视化

exposure bias:it occurs when a model is only exposed to the training data distribution, instead of its own predictions.比如翻译的decoder的输入是前一个的true label,而不是前一个的prediction