• 信息论随笔3: 交叉熵与TF-IDF模型


    接上文:信息论随笔2: 交叉熵、相对熵,及上上文:信息论随笔

    在读《数学之美》的时候,相关性那一节对TF-IDF模型有这样一句描述:“其实 IDF 的概念就是一个特定条件下、关键词的概率分布的交叉熵(Kullback-Leibler Divergence)”;

    当时尚不明白,等我看懂交叉熵与相对熵之后,再看TF-IDF,略有所获,本想与上一篇合写在一起的,但越写越多,于是单独成文;

    文档的信息量

    一篇文档由m个词组成

        ( d = (w_{1}, w_{2}, w_{3}, ......, w_{m} ) )

    这篇文档d成文的概率是

        ( p(d) = p(w_{1}, w_{2}, w_{3}, ......, w_{m}) )

    这篇文档d的自信息量是

        ( I(d) = -log_{2}p(d) = -log_{2}p(w_{1}, w_{2}, w_{3}, ......, w_{m}) )

    假设1:每个词的出现是独立事件,则有

        ( p(w_{1}, w_{2}, w_{3}, ......, w_{m}) = p(w_{1})p(w_{2})p(w_{3})......p(w_{m}) )

    这篇文档d的自信息量是

        ( I(d) = -log_{2}p(w_{1}, w_{2}, w_{3}, ......, w_{m}) = -log_{2}p(w_{1})-log_{2}p(w_{2})-log_{2}p(w_{3}) ...... -log_{2}p(w_{m}) )

        (  = I(w_{1}) + I(w_{2}) + I(w_{3}) + ...... + I(w_{m}) )

    至此,得到一个很显而易见的结论,结论1:在假设1条件下,一篇文档的信息量是组成它的所有词的信息量之和

    再考虑到词可能出现重复,设m个词中共有k个不重复词,每个词的重复次数是( n_{k} ),则:

    这篇文档d的自信息量是

        ( I(d) =  n_{1}I(w_{1}) + n_{2}I(w_{2}) + n_{3}I(w_{3}) + ...... + n_{k}I(w_{k}) )

        ( = sumlimits_{i=1}^{k}n_{i}I(w_{i}) )

    词的概率分布估计

    在上面文档信息量公式中,需要计算每个词的自信息量,但事实上这是做不到的,因为一个词在语言中的真实概率分布是不可知的,只能进行估计;

    设我们估计得到的词概率分布为q;通常求q的方法可以是统计一个比较大的语料库中各个词的出现概率,为了迎合 IDF是KL散度的一说法,我只能再把《数字之美》中的两个假设拉进来;

    假设2:每篇文档大小基本相同,都为m个词;

    假设3:一个词如果出现在文档中,则在每个文档中出现的次数都相同;(注:我也觉得这个假设太过理想了)

    有了以上假设后,我们可以估计每个词的概率分布进而求解其信息量了;

    设共有D篇文档,每篇文档有m个词,其中包含词(w_{i})的文档有(D(w_{i}))篇,有:

        ( q(w_{i}) = frac{n_{i}D(w_{i})}{mD})

    设词(w_{I})在文档d中的真实概率分布为p',于是:

        ( p'(w_{i}) = frac{n_{i}}{m} )

    然后把p'、q套进相对熵公式:

        ( D_{KL}(p' || q) = sumlimits_{i=1}^{k}p'(w_{i})log_{2}frac{p'(w_{i})}{q(w_{i})} )

        ( =  sumlimits_{i=1}^{k}  frac{n_{i}}{m} log_{2}frac{n_{i}/m}{ n_{i}D(w_{i})/mD} )

        ( =  sumlimits_{i=1}^{k}  frac{n_{i}}{m} log_{2}frac{1}{D(w_{i})/D} )

        ( = sumlimits_{i=1}^{k} TF(w_{i})IDF(w_{i}) )

    由此得到一个结论,结论2:利用假设1、2、3条件下的词概率分布估计一个文档中某个词W的可能性所多产生的不确定性就是d中所有词的TF-IDF之和

    这个结论2写得有点拗口,只是尽力让结论成一句话,下面试着多写几句话进行解释:

    1. 首先,这个结论基于特定的条件,即假设1、2、3所设定的条件;
    2. 在这个特定条件下,我们得到了一种关于词概率分布的估计q;
    3. 用q去估计文档d中某个词W的可能性是浪费的,因为q几乎不可能与文档d中的真实词概率分布p'相同,交叉熵大于等于信息熵,即相对熵恒大于0;
    4. 以上相对熵是描述d中的某个词时的相对熵(多出来的不确定度);重要的事情说三遍,某个词、某个词、某个词;
    5. 对文档d中的所有词求TF-IDF之和,就是这个相对熵;
    6. 每个词的TF-IDF,是对这个相对熵的贡献,其中IDF是对相对熵的关键贡献值,TF是个权重;这应该就是吴军在《数学之美》中所讲的“IDF 的概念就是一个特定条件下、关键词的概率分布的交叉熵(Kullback-Leibler Divergence)”,只不过在中英文对照上出了问题,KL散度应该对应是相对熵,而相对熵与交叉熵在很多时候又分不清楚;
    7. 当这个相对熵(TF-IDF之和)越大,q对文档d的描述越差,说明文档d的内容指向性越强,因为q是对整个语言中所有词的概率分布的估计;当这个相对熵越小(TF-IDF之和)越小,q对文档d的描述越好,说明文档d的内容指向性越差,越可能是随机按q选取词堆砌成文; 

    词交叉熵与文档估计信息量

    上面既然推算出了相对熵,那再来看看交叉熵;

    同样将p'、q带入交叉熵公式:

    ( H(p', q) = -sumlimits_{i=1}^{k}p'(w_{i})log_{2}q(w_{i}) )

    (  = sumlimits_{i=1}^{k}  frac{n_{i}}{m} I'(w_{i}) , 设 I'(w_{i}) = -log_{2}q(w_{i}) )

    (  = frac{1}{m} sumlimits_{i=1}^{k} n_{i}I'(w_{i}) )

    (  = frac{1}{m} I'(d) )

    即:

    ( I'(d) = mH(p', q) )

    上面说过了,因为我们无法获知一个词的真实自信息量,所以无法获知文档d的真实自信息量,但我们引入假设2、3条件后,可以用q做估计,从而得到在q概率分布下,文档d的估计信息量,就是这个I'(d);

    这个I'(d)为啥是交叉熵的m倍?还记得上面那个说三遍吗,不管是这里的交叉熵还是相对熵,都是与某个词有关的熵;而文档d有m个词,当然信息量会翻m倍了;

    例子:

    仍然使用上一篇随笔中的例子:

    含有4个字母(A,B,C,D)的数据集,组成了一篇文档d,d的内容只有两个字母“AB”,我们不知道数据集元素的真实分布p,只知在文档d内p‘=(1/2, 1/2, 0, 0);

    如果使用p'来编码,H(p') = 1,每个字母使用一位编码,设定"A" = 0, "B" = 1,则d=01,文档d的编码长度为2;

    根据假设2、3条件,共有12篇文档,每篇长度是2(假设2),且每个字母在所有包含它的文档中出现次数都相同(假设3),分别是

    AB  AC  AD

    BA  BC  BD

    CA  CB  CD

    DA  DB  DC

    得到估计分布q=(1/4, 1/4, 1/4, 1/4),使用q来编码,则得到H(p’,q)=2,每个字母需要2位编码来识别,设定"A" = 00, "B" = 01, "C" = 10, "D" = 11;则d=0001,文档d的编码长度为4;

    字母的交叉熵是2,相对熵是1,文档d的估计信息量为4;

    IDF(A) = log(12/6) = 1,IDF(B) = log(12/6) = 1;

    TF(A)*IDF(A) + TF(B) *IDF(B) = 1/2* 1 + 1/2 * 1 = 1,与相对熵相等;

  • 相关阅读:
    二分模板
    洛谷P1631序列合并(二分答案经典好题,或优先队列堆+数学优化,或有序表一一顺序比较)
    洛谷P1498南蛮图腾(找规律,输出图形题技巧)
    洛谷P2611信息传递(思维环形题,并查集)
    关于环的问题
    洛谷P1064金明的预算方案(好题难题,依赖的背包dp,或计算拓扑先后顺序+记忆化搜索)
    2018.11.4薛猫杯比赛
    大数加减法模板
    洛谷p1060开心的金明(dp,正向暴力递归+剪枝或记忆化)
    洛谷二分答案问题
  • 原文地址:https://www.cnblogs.com/ZisZ/p/9087921.html
Copyright © 2020-2023  润新知