2016
Neural Machine Translation of Rare Words with Subword Units
解决的问题
OOV问题
中文也存在OOV问题。比如分词以后
核心思想
其核心思想是语料库中的高频词作为整体出现的可能性大,因此不对其进行切分,而对低频词进行切分,由此增加稀疏词中子词的共现次数。
encoding rare and unknown words as sequences
of subword units.
本文讨论了subword的不同分割技巧:
- 直接采用char,信息损失较多
- character n-gram models
- segmentation based on the byte pair encoding compression algorithm
规避大词典。原来都是先把一个数据集中所有单词找出来,把最常用的一些(如90%)做成一个大词典,显然这是冗余的,words和word完全没必要区分。动不动就是50K的单词表,非常耗内存,在像Czech这类语言上更加不行。关键是冗余不优雅。很多研究者都注意到这个问题:
- subword,就是统计一下符号的频率,如“est”可能是一个符号,能组成“w est,b est”等词,因此称为subword。我觉得还是不够自然,而且效果并不是很好。
- Hybrid Word-Character Models,相当于把未知的词训练成RNN小单元,据说华为很早就申请专利了。我表示,不能有word。
- Junyoung Chung提出的不需要显式分隔的模型。提出bi-scale的RNN,我觉得很有意思,但我有个疑问,这跟base的RNN有什么区别?论文中也显示,确实差不多。我不知道为什么性能那么好。由于没有训练时间、训练所用内存等更多信息我无法作出判断。
- 还有Wang Ling提出的,但是完全不是NMT,需要借助IBM model来对齐和分层训练,而且效果不好。
related work
- 2016 年,Rico Sennrich 和 Barry Haddow 等人提出了 Byte Pair Encoding (BPE)的方法,将原有的单词拆解成了更小单元的高频词进行翻译。 BPE 方法在多大程度上解决了未登录词翻译的问题。对未登录词的翻译精准度达到了 45%左右,
参考
- subword-nmt | github