在BERT的预训练和推理过程中,遇到词表中未收录的罕见词或未登录词时,它采用了怎样的处理机制?请结合其分词方式说明。
考察说明
考察对BERT分词机制中罕见词处理原理的理解
回答思路
- 【回答框架 1】BERT使用WordPiece子词分词,能将罕见词拆解为更小的子词或字符片段,从而缓解未登录词问题。其分词基于词表,词表通常包含约3万个token,由语言模型预训练期间通过统计学习得到。
- 【回答框架 2】对于词表中不存在的罕见词,BERT会将其切分为多个子词,每个子词都是词表中存在的片段,例如将'unaffable'切分为'un'、'##aff'、'##able',其中'##'表示该token是前一个token的后续片段。这种方式的优势在于模型可以借助子词的语义组合来理解罕见词的大致含义。
- 【回答框架 3】如果罕见词无法拆分成已知子词,BERT会退化为按字符级别处理,但实际中WordPiece几乎总能找到可行的切分路径,因为词表覆盖了常见字符组合。即便如此,极端罕见或拼写不规范的新词仍可能产生不理想的表示,这是子词模型的固有局限。
- 【回答框架 4】从实现角度看,BERT的分词器使用贪婪最长匹配算法,在词表中选择最长前缀匹配,逐步切分整个词。该过程与训练时一致,从而保证预训练和推理阶段的tokenization行为一致。
- 【回答框架 5】总体而言,BERT通过子词切分将罕见词问题转化为子词组合问题,使得模型能对未见词产生相对有意义的表示,但该机制并不保证语义绝对准确,遇到完全无意义的新词时表示质量会下降。
- 【关键点 1】BERT采用WordPiece子词分词,通过切分罕见词为已知子词来处理未登录词。
- 【关键点 2】子词以'##'前缀标记后续片段,组合后保留语义线索。
- 【关键点 3】分词过程使用贪婪最长匹配,与训练时保持一致。
- 【关键点 4】子词机制不绝对可靠,极端新词仍可能得到不佳表示。
- 【易错点 1】误以为BERT能直接处理任意新词而无需切分,实际仍依赖词表片段组合。
- 【易错点 2】混淆WordPiece与BPE或SentencePiece,它们的分词规则和边界处理不同。
- 【易错点 3】忽略'##'标记的语义,认为子词之间完全独立,实际其在表示学习中是关联的。