语言模型有个底层假设:词与词之间不是随机碰撞的。Pointwise Mutual Information(PMI)就是用来量化这个"不随机"的工具——它算的是两个词实际共现的频率,跟它们如果完全独立、随机碰上的频率,差了多少。

举个例子。如果英语真是随机的,你把《傲慢与偏见》的词全剪成纸条扔帽子里,摇匀再抽出来,"ice"后面跟"cream"的概率,应该跟跟"box"差不多。但真实语料里,"ice cream"的共现次数远高于随机预期。PMI把这个差距算成一个数:正得越多,绑定越紧;负值意味着这对词在刻意回避彼此。

这个指标最早是信息论里搬来的,后来被NLP圈拿去挖搭配关系。它的狡猾之处在于,不告诉你"这两个词为什么有关系",只告诉你"它们的关系比随机强多少倍"。换句话说,PMI是个纯粹的统计告密者。

实际用起来有个坑:低频词容易刷出虚高PMI。两个词各自只出现一次,又恰好撞在一起,PMI会炸到天上去。所以现代做法通常是加平滑,或者直接改用更稳健的变体——比如Normalized PMI,或者干脆用互信息的近亲。

Google Research早年有篇经典论文用PMI做词聚类,把"doctor"和"nurse"算进同一组,把"doctor"和"apple"踢开。这个细节后来被写进不少教材,但很少有人提:那批实验用的Brown语料库只有100万词,放到今天的大模型预训练数据里,PMI的噪声问题会被放大几个数量级。