Word Piece Model (WPM) 笔记

介绍
在翻译或者其他NLP问题中,词表大小有限制,为了解决有些词不在词表中(OOV),一个常用的方法是使用sub-word单元来构建词表示,这样未出现的词也可以用这些sub-wrod单元进行表示,如Byte Pair Encoding(BPE),Word Piece Model(WPM)。
BPE论文: Neural machine translation of rare words with subword units,这里不介绍。
这里的word指的是中文的词,不是汉字。

WPM构建算法

  1. 将初始词表设置成所有的字符。
  2. 根据词表中的词单元,两两组合成可能的候选词单元,在候选词单元中,选择一个使得训练语料的似然最大的。这里的似然计算是用基于词的语言模型(一阶语言模型)。
  3. 重复2直到达到词表个数限制。

分析:

  • 由于2中要选择所有可能的候选词单元,重新训练语言模型,比较耗时,因此需要进行优化。文中提到策略的有:选择更有可能出现的词候选(比如频率高)、语言模型只更新候选相关的词频统计等
  • 文中提到构建词表可能几个小时,个人觉得不是BPE这样简单高效。

例子

上面的下划线表示词的边界,去掉后是WPM前已经分词的句子。

  • 具体WPM的细节和实验等,参考下面的原文。

参考

  • WPM Japanese and Korean Voice Search
  • 中文常用的词建模方式比较 Word, Subword or Character? An Empirical
    Study of Granularity in Chinese-English NMT

你可能感兴趣的:(NLP,论文笔记)