先这样答
BPE 分词从字符出发,反复合并语料中频率最高的相邻对,直到词表达到目标大小。它让高频词作为整体编码,也让低频词拆成子词组合。新词即使不在词表里,也能拆成已有的子词,因此不会出现 OOV。面试里先讲合并规则,再讲编码效果,就能把原理答清楚。
训练时,BPE 先从字符开始,统计语料中相邻对出现的频率。它每轮选择频率最高的一对进行合并,然后继续统计下一轮的相邻对。这个过程持续到词表达到目标大小。高频词可以整词编码;低频词则用子词组合表示。回答时要说明,BPE 选择合并对的依据是频率,不能只说它会把字符合成词。
推理时,BPE 使用训练得到的固定词表,不会因为输入里出现新词就扩充词表。比如遇到一个新梗,它会把新梗拆成已有的子词组合。这样既能解释没有 OOV 的原因,也能说明训练和推理使用同一套词表。若面试官继续问 WordPiece,就抓住选择标准回答:BPE 选择最高频的相邻对,WordPiece 按似然最大化选择合并对。
面试官会怎么追问
- 「BPE 从什么开始合并?什么时候停?」 从字符开始。每轮统计语料中相邻对的频率,合并最高频的一对。重复这个过程,直到达到目标词表大小。
- 「训练时没见过的新梗,推理时怎么办?」 推理时使用固定词表,不为新梗增加词表项。BPE 把它拆成已有的子词组合。因此,新梗不会造成 OOV。
- 「BPE 和 WordPiece 选合并对的标准一样吗?」 不一样。BPE 选择语料中最高频的相邻对。WordPiece 按似然最大化选择合并对,不能把两种依据说反。
回答的坑
- 只说“把字符合成词”,却没说清每轮按相邻对的频率选择,以及达到目标词表大小才停止。
- 把新词说成 OOV,或说推理时会为新词扩充词表,漏掉固定词表下的子词拆分。
同系列的题
这家公司的面经实录
—— 本题完 ——