前面有文章具体介绍了机器翻译用到的模型:seq2seq和加入attention机制。这里再说点别的。
1 机器翻译评价标准BLUE
参考文章介绍的很详细。论文地址:url
2 模型背后的理论:密码学
例如从中文翻译成英文,可以将中文看做是加密了的英文。
3 工程上
1 Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
2 NEURAL MACHINE TRANSLATION
BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
https://arxiv.org/pdf/1508.04025.pdf
google的翻译模型
Zero-shot NMT:解决没有翻译原材料的问题
Transformer模型:现在流行的模型
Model Inference:怎样做到统一训练和预测。在各类⽂本⽣成任务中,其实⽂本的⽣成与训练是两种不同的情形。在训练的过程中,我们假设模型在
⽣成下⼀个单词的时候知道所有之前的单词(groud truth)。然⽽在真正使⽤模型⽣成⽂本的时候,每⼀步⽣成的⽂本都来⾃于模型本身。这其中训练和预测的不同导致了模型的效果可能会很差。为了解决这⼀问题,⼈们发明了各种提升模型预测⽔平的⽅法,例如Beam Search。
beam search是一种固定宽度的装置。在每一步都选择概率最大的k个词。
第一步选择k个词:y11,y12,y13
第二步为每个词再生成k个下一个词,这里有k2k^2k2个词,然后选择概率最高的k个词。
k太大,或者太小,都可能会造成标准答案丢失。所以不能完整解决问题。
例如:美国总统和中国主席打电话。
翻译的时候:k=1,那假如最高的词是U.S. 那American就会丢了。
如果k=3,假如排序是American U.S Unite State
在第二步的时候可能因为各种原因把American丢了。
开源项目:
FairSeq https://github.com/pytorch/fairseq Facebook的开源项目
Tensor2Tensor https://github.com/tensorflow/tensor2tensor google开源项目,是Attention is all your need的标准实现
Trax https://github.com/google/trax google现在维护的开源项目
做翻译可以使用的开源工具
Pointer network 文本摘要
Copy Mechanism 文本摘要
Converage Loss
ConvSeq2Seq
Transformer
Tensor2Tensor
PyTorch代码
- seq2seq-tutorial
- Tutorial from Ben Trevett
- IBM seq2seq
- OpenNMT-py
4 做翻译可以做的事情
1 使用transformer模型
2 可以使用的库 Facebook、OpenNMT-py、huggingface、allenXXX
3 beamsearch
4 Copy Mechanism:直接复制一个词。
5 加入中文分词或者使用word-piece