PMI(Pointwise Mutual Information)
机器学习相关文献中,可以看到使用PMI衡量两个变量之间的相关性,比如两个词,两个句子。原理公式为:
在概率论中,如果x和y无关,p(x,y)=p(x)p(y);如果x和y越相关,p(x,y)和p(x)p(y)的比就越大。从后两个条件概率可能更好解释,在y出现的条件下x出现的概率除以单看x出现的概率,这个值越大表示x和y越相关。
log取自信息论中对概率的量化转换(对数结果为负,一般要再乘以-1,当然取绝对值也是一样的)。
自然语言处理中使用PMI的例子
比如,要衡量like这个词的极性(正向情感or负向情感)。先选一些正向情感词如good,计算like跟good的PMI,
其中p(like,good)表示like跟good在同一句话出现的概率(like跟good同时出现次数/总词数^2),p(like)表示like出现概率,p(good)表示good出现概率(good出现次数/总词数)。
PMI越大代表like正向情感倾向越明显。
【不过,对话语料库和全词预料库的PMI有一点不同...
利用PMI预测对话的回复语句关键词
先在比较大的训练预料中计算query每个词(wq)和reply每个词(wr)的PMI,
这里概率p(wq,wr)为wq和wr分别在一个对话pair的上下句同时出现的概率(wq和wr同时出现的对话pair数/训练语料q部分每个词和r部分每个词组成pair的总数),p(wq)是wq在q语句中出现的概率(wq在q语料中出现的语句数/q语料总数)。
计算出一个PMI矩阵,两个维度分别是query词表和reply词表,
预测回复关键词时,计算候选词表中某个词和给定的query的n个词(wq1,...wqn)的PMI,对n求和,候选词表每个词都这样求个PMI和,选出最大的那个对应的候选词就是predict word。
文章中还对 keyword candidates 作了限制,规定它的范围是名词。
参考文献:
[1] Sequence to Backward and Forward Sequences: A Content-Introducing Approach to Generative Short-Text Conversation.