UCAS-AI学院-自然语言处理专项课-第2讲-课程笔记

数学基础

概率论基础

  • 概率
  • 最大似然估计
  • 条件概率
  • 全概率公式
  • 贝叶斯决策理论
  • 贝叶斯法则
  • 二项式分布
  • 期望
  • 方差
  • NLP中,以句子为基本处理单位时,一般假设与其他语句独立,句子的概率分布近似地符合二项式分布

信息论基础

熵(Entropy)

  • 如果XX是一个离散型的随机变量,其概率分布为:p(x)=P(X=x),xXp(x) = P(X = x), x\in X,那么XX的熵H(X)H(X)定义为:

H(X)=xXp(x)log2p(x) H(X) = -\sum_{x \in X} p(x) \log_2 p(x)

  • 约定0log0=00 \log 0 = 0
  • 单位为比特(bit)
  • 又称为自信息
  • 表示信源XX每发一个信号(发生一个事件)所提供的平均信息量
  • 可视为描述一个随机变量的不确定性的数量
  • 一个随机变量的熵越大,其不确定性越大,那么正确估计其值的可能性越小

联合熵(Joint Entropy)

  • 如果XXYY是一对离散型随机变量X,Yp(x,y)X, Y \sim p(x, y),其二者的联合熵H(X,Y)H(X, Y)定义为:

H(X,Y)=xXyYp(x,y)log2p(x,y) H(X, Y) = - \sum_{x \in X} \sum_{y \in Y} p(x, y) \log_2 p(x, y)

  • 实际上就是描述一对随机变量平均所需的信息量

条件熵(Conditional Entropy)

  • 在给定随机变量XX的情况下,随机变量YY的条件熵定义为:

H(YX)=xXp(x)H(YX=x)=xXp(x)[yYp(yx)log2p(yx)]=xXyYp(x,y)log2p(yx) \begin{aligned} H(Y | X) &= \sum_{x \in X} p(x) H(Y | X = x) \\ &= \sum_{x \in X} p(x) \left[ - \sum_{y \in Y} p(y | x) \log_2 p(y | x) \right] \\ &= - \sum_{x \in X} \sum_{y \in Y} p(x, y) \log_2 p(y | x) \end{aligned}

  • 将联合熵中的log2p(x,y)\log_2 p(x, y)展开,有:

H(X,Y)=xXyYp(x,y)log2p(x,y)=xXyYp(x,y)log2[p(x)p(yx)]=xXyYp(x,y)[log2p(x)+log2p(yx)]=xXyYp(x,y)log2p(x)xXyYp(x,y)log2p(yx)=xXp(x)log2p(x)xXyYp(x,y)log2p(yx)=H(X)+H(YX) \begin{aligned} H(X, Y) &= - \sum_{x \in X} \sum_{y \in Y} p(x, y) \log_2 p(x, y) \\ &= - \sum_{x \in X} \sum_{y \in Y} p(x, y) \log_2 \left[p(x) p(y | x) \right] \\ &= - \sum_{x \in X} \sum_{y \in Y} p(x, y) \left[\log_2 p(x) + \log_2 p(y | x) \right] \\ &= - \sum_{x \in X} \sum_{y \in Y} p(x, y) \log_2 p(x) - \sum_{x \in X} \sum_{y \in Y} p(x, y) \log_2 p(y | x) \\ &= - \sum_{x \in X} p(x) \log_2 p(x) - \sum_{x \in X} \sum_{y \in Y} p(x, y) \log_2 p(y | x) \\ &= H(X) + H(Y|X) \end{aligned}

  • 第四行到第五行,实际上完成了对p(x,y)p(x,y)yy的边缘积分
  • 连锁规则:联合熵为单个的熵和另外一个基于其的条件熵
  • p(x1y1)=p(x1,y1)p(y1)p(x_1 | y_1) = \frac {p(x_1, y_1)}{p(y_1)}
  • 注意:H(YX)H(XY)H(Y | X) \neq H(X | Y)

熵率(Entropy Rate)

  • 对于一条长度为nn的信息,每一个字符或字的熵为:

Hrate=1nH(X1n)=1n1np(x1n)logp(x1n) H_{rate} = \frac 1n H(X_{1n}) = - \frac 1n \sum_{1n} p(x_{1n}) \log p(x_{1n})

  • 其中,X1nX_{1n}表示随机变量序列(X1,,Xn)(X_1, \ldots, X_n)x1n=(x1,,xn)x_{1n} = (x_1, \ldots, x_n)表示具体取值,有时亦写作x1nx_1^n

相对熵(Relative Entropy)

  • 又称K-L散度
  • 两个概率分布p(x)p(x)q(x)q(x)的相对熵定义为:

D(pq)=xXp(x)logp(x)q(x) D(p \| q) = \sum_{x \in X} p(x) \log \frac{p(x)}{q(x)}

  • 约定,0log(0/q)=00 \log (0 / q) = 0plog(p/0)=p \log (p / 0) = \infty
  • 常被用于衡量两个随机分布的差距,二者一样时,相对熵为0

交叉熵(Cross Entropy)

  • 有一个随机变量Xp(x)X \sim p(x)q(x)q(x)为用于近似p(x)p(x)的概率分布,那么随机变量XX和模型qq之间的交叉熵定义为:

H(X,q)=H(X)+D(pq)=xp(x)logq(x) H(X, q) = H(X) + D(p \| q) = -\sum_x p(x) \log q(x)

  • 用于衡量估计模型与真实概率之间的差异
  • 对语言L=(X)p(x)\mathcal L = (\bold X) \sim p(\bold x),与其模型qq的交叉熵定义为:

H(L,q)=limn1nx1np(x1n)logq(x1n) H(\mathcal L, q) = - \lim_{n \to \infty} \frac 1n \sum_{x_1^n} p(x_1^n) \log q(x_1^n)

  • 对于语言来讲,不可能得到精确的概率分布,因此需要尽可能地取估算(理论值)
  • 定理:假定语言L\mathcal L是稳态遍历性随机过程,x1nx_1^nL\mathcal L的样本,那么有:

H(L,q)=limn1nlogq(x1n) H(\mathcal L, q) = -\lim_{n \to \infty} \frac 1n \log q(x_1^n)

  • 可以根据模型qq和一个含有大量数据的L\mathcal L的样本计算交叉熵
  • 设计模型qq是,使交叉熵最小,从而接近真实分布p(x)p(x)

困惑度(Perplexity)

  • 设计语言模型时,常使用困惑都代替交叉熵衡量语言模型的好坏
  • 避免交叉熵小数在计算时的下溢出的问题,尽量将其放大
  • 对语言L\mathcal L的样本l1nl_1^nL\mathcal L的困惑度PPqPP_q的定义为:

PPq=2H(L,q)21nlogq(l1n)=[q(l1n)]1n \operatorname{PP}_q = 2^{H(\mathcal L, q)} \approx 2^{-\frac 1n \log q(l_1^n)} = \left[ q(l_1^n) \right]^{-\frac 1n}

  • 语言模型设计的任务目标就是寻找困惑度最小的模型,使其接近真实的语言

互信息(Mutual Information)

  • 如果有(X,Y)p(x,y)(X, Y) \sim p(x, y)XXYY之间的互信息I(X;Y)I(X;Y)定义为:

I(X;Y)=H(X)H(XY)=xXp(x)log2p(x)+xXyYp(x,y)log2p(xy)=xXyYp(x,y)(log2p(xy)log2p(x))=xXyYp(x,y)(log2P(xy)p(x))=xXyYp(x,y)(log2P(x,y)p(x)p(y)) \begin{aligned} I(X; Y) &= H(X) - H(X|Y) \\ &= -\sum_{x \in X} p(x) \log_2 p(x) + \sum_{x \in X} \sum_{y \in Y} p(x, y) \log_2 p(x | y) \\ &= \sum_{x \in X} \sum_{y \in Y} p(x, y) \left( \log_2 p(x | y) - \log_2 p(x) \right) \\ &= \sum_{x \in X} \sum_{y \in Y} p(x, y) \left( \log_2 \frac {P(x | y)}{p(x)} \right) \\ &= \sum_{x \in X} \sum_{y \in Y} p(x, y) \left( \log_2 \frac {P(x , y)}{p(x) p(y)} \right) \end{aligned}

  • 互信息反映了知道YY的值以后,XX的不确定性的减少量,即YY透露了多少关于XX的信息量
  • XXYY在意义上是对称的
  • 由于H(XX)=0H(X | X) = 0,则有:

H(X)=H(X)H(XX)=I(X;X) H(X) = H(X) - H(X | X) = I(X; X)

  • 上式反映了熵为什么又成为自信息
  • 两个相互依赖的变量之间的互信息并不是常量,而是取决于它们的熵
  • 汉语分词任务
    • 互信息值越大,两个字之间结合越紧密,越可能成词
    • 两个汉字关联度强时,互信息I(X;Y)>0I(X; Y) \gt 0;二者关联度较弱,则I(X;Y)0I(X; Y) \approx 0;当I(X;Y)<0I(X; Y) \lt 0时,二者成为“互补分布”
    • 也可以用耦合度代替互信息:对汉字cic_ici+1c_{i + 1},统计连续出现在一个词中的次数和连续出现(同一个词,或者分别为两个连续词的结尾和开头)的总次数,二者之比为双字耦合度:
    • 存在一类词,很少连续出现,一旦连续出现必然是一个词,这种情形下,互信息就很小(因为很少一起出现),但是耦合度就能很好的反应两个字的关系

Couple(ci,ci=1)=N(cici+1)N(ci,ci+1)+N(ci//ci+1) \operatorname{Couple}(c_i, c_{i = 1}) = \frac{N(c_ic_{i+1})}{N(c_i,c_{i+1}) + N(\ldots c_i // c_{i+1} \ldots)}

  • 说明:两个单个离散事件(xi,yi)(x_i, y_i)之间的互信息I(xi,yi)I(x_i, y_i)称为点式互信息,其可能为负值(从公式计算出发);两个随机变量(X,Y)(X, Y)之间的互信息I(X,Y)I(X, Y)成为平均互信息,其不可能为负值(从定义出发)

噪声信道模型(Noisy Channel Model)

  • 双重性处理:
    • 压缩以消除冗余(空间占用)
    • 增加可控冗余,保持经过噪声信道后,信息的可恢复性(错误校验)
  • 模型的目标就是优化噪声信道中信号传输的吞吐量和准确率
    • 基本假设:一个信道的输出以一定概率依赖于输入
  • WW -》编码器 -》XX -》噪声信道p(yx)p(y | x) -》YY -》解码器 -》W^\widehat W
  • 翻译过程中,大脑完成编码,翻译过程即通过信道,探究通过的过程,通过解码来推测输入
  • 二进制对称信道:
    • 输入符号集X:{0,1}X:\{0, 1\}
    • 输出符号集Y:{0,1}Y:\{0, 1\}
    • 误传概率为pp,那么正确传输的概率为1p1 - p

信道容量(Capacity)

  • 用降低传输速率来换取高保真通讯的可能性
  • 定义可由互信息给出(p(x)p(x)为信号的概率分布):

C=maxp(X)I(X;Y) C = \max_{p(X)} I(X; Y)

  • 语言处理中,不需要编码,只需要进行解码,使系统的输出更接近于输入(如机器翻译)

应用举例

词汇歧义消解

问题提出

  • 一种自然语言中,一词多义现象普遍存在
  • 如何区分不同上下文中的词汇语义,即歧义消解问题,又称词义消歧(word sense disambiguation)
  • NLP中的基本问题之一

基本思路

  • 根据上下问区分词义
  • 基本上下文的信息:词、词性、词的位置

实现方法

  • 贝叶斯分类器
    • 分类方法
    • 假设某个多义词ww所处上下文环境为CC,针对其多个语义sis_i,通过计算argmaxsiP(siC)\arg \max_{s_i} P(s_i | C)来确定词义
    • 贝叶斯公式p(siC)=p(si)p(Csi)p(C)p(s_i | C) = \frac{p(s_i) p(C | s_i)}{p(C)}
    • 独立性假设p(Csi)=vkCp(vksi)p(C | s_i) = \prod_{v_k \in C} p(v_k | s_i)
    • 得到si^=argmaxsi[p(si)vkCp(vksi)]\widehat{s_i} = \arg \max_{s_i} \left[ p(s_i) \prod_{v_k \in C} p(v_k | s_i) \right]
    • 使用最大似然估计式中的概率项
      • p(vksi)=N(vk,si)N(si)p(v_k | s_i) = \frac{N(v_k, s_i)}{N(s_i)}
      • p(si)=N(si)N(w)p(s_i) = \frac{N(s_i)}{N(w)}
    • 测试过程也称为标注过程
    • 实际采用对数加法运算
  • 基于最大熵的方法
    • 分类方法
    • 使熵值最大的概率分布能够最真实地反应事件的分布情况
    • 在已知部分知识的前提下,关于位置分布最合理的推断应该是符合已知知识最不确定的推断
    • 估计在条件bBb \in B下,发生某事件aAa \in A(分布未知)的概率p(ab)p(a | b),使熵H(p(AB))H(p (A | B))最大
    • p(ab)=1Z(b)exp(j=1lλjfj(a,b))p^\ast (a | b) = \frac {1}{Z(b)} \exp(\sum_{j = 1}^l \lambda_j f_j(a, b))
    • 上式为近似估算,特征函数ff的取值为0或者1,表示特征分布存在或不存在,λ\lambda为特征权重,Z(b)Z(b)为归一化因子(对aa归一化):Z(b)=aexp(j=1lλjfj(a,b))Z(b) = \sum_a \exp(\sum_{j = 1}^l \lambda_j f_j(a, b))
    • AA为所有义项的集合,BB为所有上下文的集合,定义特征函数取值为0或者1,存在关系(a,b)(a,b)时为1
    • 上下文信息
      • 词形(词本身)
      • 词性
      • 词形+词性
    • 上下文表示方法
      • 位置无关,词袋模型
      • 位置有关,模板表示
    • 特征信息
      • 上下文
      • 窗口
      • 位置
    • 特征选择
      • 出现频率超过阈值
      • 满足互信息要求
      • 增量式特征选择方法
      • 最终选定的kk个特征对应kk个特征函数
    • λ\lambda参数的获取
      • GIS算法
      • 对每个任意(a,b)A×B(a,b) \in A \times B,有j=1kfj(a,b)=C\sum_{j = 1}^k f_j(a, b) = C(特征空间固定)
      • 若不满足,则取C=maxaA,bBj=1kfj(a,b)C = max_{a \in A, b \in B} \sum_{j = 1}^k f_j(a, b),并增加一个修正特征fl(a,b)=Cj=1kfj(a,b)f_l(a, b) = C - \sum_{j = 1}^k f_j(a, b)
      • 具体算法查阅PPT-71,72,73

工作过程

UCAS-AI学院-自然语言处理专项课-第2讲-课程笔记