[翻译]关于bpe以及词表缩减技术
2019-04-23 本文已影响0人
VanJordan
- 为啥翻译中要用
bpe
,在一些语言比较相近的语言中,比如英语和法语德语,student
,hospital
等等词都有很相近的部分(或许是仅仅换个后缀啥的),因此有人就发现,这样既解决了unk
的问题,还能由于联合训练,提升效果。 - 现在用
bpe
技术的有ende
,enfr
,数据,envi
,enzh
,enja
都没有用。 - 还有一个技术叫
replace unk
也是比较有用的fairseq
里面也实现了,就是对翻译好的文本进行一个后处理,使用attention
定位到源语言中的概率最大的一个词,然后将这个词填充到unk
这个位置。 -
tensor2tensor
中使用的是sentencepiece
中也有bpe
的算法
两种词表缩减技术对比
- 一个是基于统计学的
bpe
,一个是考虑了词的形态特征的,linguistically-motivated vocabulary reduction (LMVR),
,两个都是一种subword
方法 - 作者发现在大多数的情况下
LMVR
要好。
LMVR obtains significantly better performance in most languages, showing gains proportional to the sparseness of the vocabulary and the morphological complexity of the tested language.
- 德语和意大利语不是很稀疏,因此使用bpe和LMVR的效果是差不多的。
- 但是两种方法都比直接限制词频的方法要好
-
LMVR
是使用无监督的方式通过HMM
学出来的。有两个集合一个集合是单词,一个集合是时态
-
直接把德英提高了1.63个bleu 感觉不科学
- 在反方向的实验表明结论也是成立的,翻译成时态更加丰富的语言更加具有挑战性。
- 使用
subword
技术以后句子的长度都是变长了。 - 意大利语效果差不多的原因是意大利语词表很少,许多稀有词是命名实体,而一些语言很丰富的词表中词表主要是表示不同词性的词,因此BPE和LMVR效果差不多