逐点互信息(PMI)
当向量维度对应的是词而非文档时,词项—词项矩阵可以使用 tf-idf 的一种替代加权函数:正逐点互信息(positive pointwise mutual information,PPMI)。PPMI 背后的直觉是,衡量两个词之间关联程度的最佳方式,是考察它们在语料库中的实际共现次数,比我们事先假定二者随机出现时的期望共现次数多多少。
逐点互信息(pointwise mutual information,PMI;Fano, 1961)是 NLP 中最重要的概念之一。它衡量事件 和 实际共同出现的频率,相对于二者相互独立时的期望频率有多高:
目标词 与上下文词 之间的逐点互信息(Church and Hanks, 1989, 1990)定义为:
若用最大似然估计计算概率,分子表示两个词共同出现的频率;分母则表示假定两个词各自独立出现时的期望共现频率。回想一下,两个独立事件同时发生的概率,就是各自概率的乘积。因此,该比值估计了两个词的实际共现程度比随机情况下的期望值高多少。凡是需要寻找强关联词语的任务,PMI 都是一种很有用的工具。
PMI 的取值范围从负无穷到正无穷。不过,除非语料库极其庞大,否则负 PMI 值——即实际共现少于随机期望——往往并不可靠。假设两个词各自的概率都是 10-6;若要断定它们共同出现的频率低于随机水平,就必须确信二者共同出现的概率显著小于 10-12,而达到这种统计粒度需要极大的语料库。此外,这种“无关联程度”分数是否能用人类判断来评估,也并不明确。因此,更常见的做法是使用正 PMI(即 PPMI),把所有负 PMI 值替换为零(Church and Hanks, 1989;Dagan et al., 1993;Niwa and Nitta, 1994):
更形式化地说,假设我们有一个共现矩阵 ,它包含 行(词)和 列(上下文),其中 表示词 与上下文 共同出现的次数。可以把它转化为 PPMI 矩阵,其中 表示词 与上下文 的 PPMI 值;该值也可写作 或 。具体计算如下:
下面来看几个 PPMI 计算示例。为便于计算,我们使用图 J.2;它在图 J.1 的基础上增加了所有边际计数,并暂时假设图中所列的词和上下文就是需要考虑的全部内容。
原始矩阵如下:
| aardvark | computer | data | result | pie | sugar | … | |
|---|---|---|---|---|---|---|---|
| cherry | 0 | 2 | 8 | 9 | 442 | 25 | … |
| strawberry | 0 | 0 | 0 | 1 | 60 | 19 | … |
| digital | 0 | 1670 | 1683 | 85 | 5 | 4 | … |
| information | 0 | 3325 | 3982 | 378 | 5 | 13 | … |
图 J.1 维基百科语料库中四个词的共现向量,这里展示其中六个维度(为教学目的而手工选取)。图中以红色框出 digital 的向量。真实向量会有多得多的维度,因而也稀疏得多,即绝大多数维度上的值都为零。
| computer | data | result | pie | sugar | count(w) | |
|---|---|---|---|---|---|---|
| cherry | 2 | 8 | 9 | 442 | 25 | 486 |
| strawberry | 0 | 0 | 1 | 60 | 19 | 80 |
| digital | 1670 | 1683 | 85 | 5 | 4 | 3447 |
| information | 3325 | 3982 | 378 | 5 | 13 | 7703 |
| count(context) | 4997 | 5673 | 473 | 512 | 61 | 11716 |
图 J.2 维基百科语料库中四个词在五种上下文中的共现计数及其边际计数。为便于本例计算,暂且假定不存在其他需要考虑的词或上下文。
例如,若假定图 J.1 已经涵盖所有相关的词、上下文和维度,就可以按下式计算 :
图 J.3 展示了根据图 J.2 中的计数得到的联合概率,图 J.4 则展示相应的 PPMI 值。不出所料,cherry 和 strawberry 都与 pie 和 sugar 高度相关,而 data 与 information 之间存在较弱的关联。
| p(w, context) | p(w) | |||||
|---|---|---|---|---|---|---|
| computer | data | result | pie | sugar | p(w) | |
| cherry | 0.0002 | 0.0007 | 0.0008 | 0.0377 | 0.0021 | 0.0415 |
| strawberry | 0.0000 | 0.0000 | 0.0001 | 0.0051 | 0.0016 | 0.0068 |
| digital | 0.1425 | 0.1436 | 0.0073 | 0.0004 | 0.0003 | 0.2942 |
| information | 0.2838 | 0.3399 | 0.0323 | 0.0004 | 0.0011 | 0.6575 |
| p(context) | 0.4265 | 0.4842 | 0.0404 | 0.0437 | 0.0052 | |
图 J.3 以联合概率替换图 J.1 中的计数;右侧一列和底部一行给出边际概率。
| computer | data | result | pie | sugar | |
|---|---|---|---|---|---|
| cherry | 0 | 0 | 0 | 4.38 | 3.30 |
| strawberry | 0 | 0 | 0 | 4.10 | 5.51 |
| digital | 0.18 | 0.01 | 0 | 0 | 0 |
| information | 0.02 | 0.09 | 0.28 | 0 | 0 |
图 J.4 根据图 J.3 中的计数计算得到的 PPMI 矩阵,展示词与上下文词之间的关联。注意,大多数为零的 PPMI 值原本对应负 PMI。例如,,表示 cherry 和 computer 在维基百科中的共现频率低于随机期望;PPMI 会把这一负值替换为零。
PMI 存在偏向低频事件的问题:非常罕见的词往往具有很高的 PMI 值。减弱这种偏差的一种方法,是稍微改变 的计算,改用另一个函数 ,把上下文词的概率提高到 次幂:
Levy 等人(2015)发现,设置 能改善嵌入在多种任务上的表现;这种做法借鉴了第 5 章介绍的 skip-gram 模型中的相似加权方式。其原因是,把计数提高到 0.75 次幂会增加分配给低频上下文的概率,进而降低它们的 PMI。当 很罕见时,。
另一种可能的解决方案是拉普拉斯平滑:计算 PMI 之前,先给每个计数加上一个较小的常数 ,常用值为 0.1 到 3,从而收缩(折扣)所有非零值。 越大,对非零计数的折扣就越强。
Church, K. W. and P. Hanks. 1989. Word association norms, mutual information, and lexicography. ACL.
Church, K. W. and P. Hanks. 1990. Word association norms, mutual information, and lexicography. Computational Linguistics, 16(1):22–29.
Dagan, I., S. Marcus, and S. Markovitch. 1993. Contextual word similarity and estimation from sparse data. ACL.
Fano, R. M. 1961. Transmission of Information: A Statistical Theory of Communications. MIT Press.
Levy, O., Y. Goldberg, and I. Dagan. 2015. Improving distributional similarity with lessons learned from word embeddings. TACL, 3:211–225.
Niwa, Y. and Y. Nitta. 1994. Co-occurrence vectors from corpora vs. distance vectors from dictionaries. COLING.