WordPiece实现了将单词拆分为subword的功能。比如"loves"、“loved”、“loving”这三个单词。其本身的语义都是"爱",但是如果以单词为单位,那这些单词就是不同的词。WordPiece算法可以把这3个单词拆分为“lov”,“ed”,"#ing","#es"几部分,这些单词都有相同的部分"lov",这样可以把词的本身的意思和前缀、后缀分开,使得最终的词表变得精简。
为什么要这门做?因为按照传统方式进行分词,由于单词存在时态、单复数等多种变化会导致词表非常大,影响训练速度,并且即使一个非常大的词表仍然无法处理未登录词。而如果以character级别进行文本表示粒度又太细。subword粒度在word于character之间,能够较好的解决上述分词方式面临的问题。subword主要的实现方式又wordpiece和bpe。BERT使用的是wordpiece方式。