![3cbdedddd1fd75e8caceb94e6855de2e.png](https://i-blog.csdnimg.cn/blog_migrate/0dbee2c6b127b2481797b10df198a51c.jpeg)
在2019年12月5日的《Neural Machine Translation with Byte-Level Subwords》中,作者提出了一种新的subword算法,称之为BBPE,Byte-level BPE。下文会大概介绍这种算法。
为了限制vocabulary的大小,现在的许多模型会采取subwords,甚至是character-based system来构建vocabulary。然而,在一些比较复杂,或者是字符比较多的语言(例如中文,日文)中,一些比较罕见的字会占用vocabulary的一定空间,影响其的表现。作为一种替代方法,由 Wang et al. (2019) 提出的基于bytes的算法能很好的替代以往基于characters的算法。
Byte-Level Text Representation
在UTF-8编码中,每一个字符会被encode到1-4长度大小的bytes中,这为我们提供了用bytes sequence,而不是character sequence来表达文本的可能性。UTF-8编码中大概有138000个unicode字符,如果直接使用bytes来代表一段text的话,sequence的长度将会是character sequence的数倍大小(最多4倍)。因此,Wang et al.(2019) 将一个原始的byte sequence分割成byte-level subwords,