论文阅读:Neural Machine Translation with Byte-Level Subwords

文章简介:

基于字符,子词,词的机器翻译几乎都是以词频top-k数量建立的词典;但是针对字符相对杂乱的日文和字符较丰富的中文,往往他们的罕见词难以表示;
本文提出采用字节级别的字词BBPE(byte-level BPE),不会出现oov的词;比纯用字节表示更方便,比只用字符表示又效果更好;当BBPE和BPE性能接近时,词典size只是BPE的1/8;

主要方法:

整体思想是,把文本表示生字节级别的n-gram,而不是常用的字符级别n-gram;
把文本用UTF-8编码,每个字符最多用4字节;
首先把句子变成UTF-8字节序列,再分割字节序列到 byte-level “subwords”;(4X)
Encoder:作者是采用基于transformer的实验,也可以使用深度CNN和双向GRU;
Decoder:作者提出字符可以用有效的字节表示,但是字节字串不一定能表示有效的字符;
解决半训练模型经常出现的错误模式:出现随机重复字节,作者提出的算法:
在这里插入图片描述
f(k)是一串字节能表示的最长字符;如果子字节和有效字符相关,则g(i,j)=1,否则为0;然后递归计算f(k)

结果和分析

Qualitative Comparison: BPE vs. BBPE:

Symbol Frequency Distribution:

BBPE在只需要几乎1/8分词典size就能表示几乎全部这个语言的字符,包括大量的稀有字符
论文阅读:Neural Machine Translation with Byte-Level Subwords_第1张图片

Cross-Lingual Sharing:

论文阅读:Neural Machine Translation with Byte-Level Subwords_第2张图片
不同语言用BBPE表示时,也能进行参数共享,即某些字节能表示多种语言的意思;

Impact on Sequence Lengths:论文阅读:Neural Machine Translation with Byte-Level Subwords_第3张图片

一般BBPE有更长的分词序列和更长的训练时间和inference时间,但是基于子字节的方法比基于字符的词典依旧长度减少很多;

后面的分析插个眼补上

你可能感兴趣的:(nlg文献)