I、NLP三大Subword模型详解:BPE、WordPiece、ULM
NLP任务中,神经网络模型的训练和预测需要词表对句子进行表示。 传统方法存在词汇量大、计算效率低的问题。 为解决这些问题,Subword模型应运而生,它介于词和字符之间,既能降低词典大小,又能处理相似词。 主要有三种方法:BPE、WordPiece和ULM。
BPE,最初由Sennrich等在2015年引入,是目前最流行的Subword算法。 它通过逐步合并高频字节对生成子词,如从单词"looking"拆分为"look"和"ing"。 GPT-2和RoBERTa就采用了BPE。 BPE的步骤包括:拆分单词为字符、统计相邻单元频数并合并,直到达到预设词表大小或出现频率为1的字节对。
WordPiece,Google的BERT使用此算法,选择能够提升语言模型概率的子词合并。 它通过最大化子词间互信息来决定合并,比如在"est"和"est"之间选择"est",因为它们在语言模型中的关联性强。
ULM则是减量法,它首先生成大词表,然后根据评估准则逐渐淘汰子词。 ULM考虑了所有可能的分词,通过维特比算法求解最佳分词结果。
SentencePiece是一个开源工具,集成了BPE、ULM等子词算法,支多种分词级别和多语言处理,是使用Subword模型的实用工具。