nlp2-数学基础(信息论,概率论、词义消歧)
文章目錄
- 概率論
- 信息論
- 計算熵
- 計算信息熵、條件熵、聯合熵
- 波利尼亞語
- 熵率
- 噪聲信道模型
- 建立一個翻譯
- 詞義消歧(WSD
- 貝葉斯
- 最大熵的消歧方法
概率論
- 在自然語言處理中,以句子為處理單位時一般假設句子獨立于它前面的其它語句,句子的概率分布近似地符合二項式分布
- 貝葉斯決策:
- max p(x|w1)p(w1)—x可以是語音信號,而w1可以是我們希望得到的對應文字
信息論
| 熵(自信息) | H(X)=?Σx∈Xp(x)log2p(x)=I(X;X)H(X)=-\Sigma_{x\in X}p(x)log_2p(x)=I(X;X)H(X)=?Σx∈X?p(x)log2?p(x)=I(X;X) | 熵越大,不確定性越大,越難分類 |
| 聯合熵 | H(X,Y)=H(X)+H(Y∥X)=?Σx∈XΣy∈Yp(x,y)log2p(x,y)H(X,Y)=H(X)+H(Y\|X)=-\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)log_2p(x,y)H(X,Y)=H(X)+H(Y∥X)=?Σx∈X?Σy∈Y?p(x,y)log2?p(x,y) | 描述一對隨機變量平均所需要的信息量 |
| 條件熵 | H(Y∥X)=Σx∈Xp(x)H(Y∥X=x)=?Σx∈XΣy∈Yp(x,y)log2p(y∥x)H(Y\|X)=\Sigma_{x\in X}p(x)H(Y\|X=x)=-\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)log_2p(y\|x)H(Y∥X)=Σx∈X?p(x)H(Y∥X=x)=?Σx∈X?Σy∈Y?p(x,y)log2?p(y∥x) | - |
| 熵率 | Hrate=1nH(X1n)=?1nΣX1np(x1n)logp(x1n)H_{rate}=\frac{1}{n}H(X_{1n})=-\frac{1}{n}\Sigma_{X_{1n}}p(x_{1n})logp(x_{1n})Hrate?=n1?H(X1n?)=?n1?ΣX1n??p(x1n?)logp(x1n?) | - |
| 相對熵(KL距離) | D(p∥q)=Σx∈Xp(x)logp(x)q(x)yD(p\|q)=\Sigma_{x\in X}p(x)log\frac{p(x)}{q(x)}yD(p∥q)=Σx∈X?p(x)logq(x)p(x)?y | 衡量兩個分布的差距,兩個隨機分布相同則為0,差別增大,則增大 |
| 交叉熵 | H(L,q)=?limn→∞1nΣx1np(x1n)logq(x1n)=?limn→∞1Nlogq(x1n)=H(X)+D(p∥q)H(L,q)=-lim_{n\rightarrow \infty}\frac{1}{n}\Sigma_{x_1^n}p(x_1^n)logq(x_1^n)\\=-lim_{n\rightarrow \infty}\frac{1}{N}logq(x_1^n)=H(X)+D(p\|q)H(L,q)=?limn→∞?n1?Σx1n??p(x1n?)logq(x1n?)=?limn→∞?N1?logq(x1n?)=H(X)+D(p∥q) | 在設計模型q時,我們的目的是使交叉熵最小,從而使模型最接近真實的概率分布 |
| 困惑度 | PPq=2H(L,q)≈2?12logq(l1n)PP_q=2^{H(L,q)}\approx2^{-\frac{1}{2}logq(l_1^n)}PPq?=2H(L,q)≈2?21?logq(l1n?) | |
| 互信息 | I(X;Y)=H(X)?H(X∥Y)=Σx∈XΣy∈Yp(x,y)log2p(x,y)p(x)p(y)I(x;y)=logp(x,y)p(x)p(y)=log2p(y∥x)p(y)I(X;Y)=H(X)-H(X\|Y)\\=\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)log_2\frac{p(x,y)}{p(x)p(y)}\\I(x;y)=log\frac{p(x,y)}{p(x)p(y)}=log_2\frac{p(y\|x)}{p(y)}I(X;Y)=H(X)?H(X∥Y)=Σx∈X?Σy∈Y?p(x,y)log2?p(x)p(y)p(x,y)?I(x;y)=logp(x)p(y)p(x,y)?=log2?p(y)p(y∥x)? | 互信息大,說明兩個文字之間的結合越緊密,越可能成詞。反之,斷開的可能性越大(考慮了兩詞不連續的情況 |
| 耦合度 | couple(ci,ci+1)=N(cici+1)N(cici+1+N(....ci∥ci+1....couple(c_i,c_{i+1})=\frac{N(c_ic_{i+1})}{N(c_ic_{i+1}+N(....c_i\|c_{i+1}....}couple(ci?,ci+1?)=N(ci?ci+1?+N(....ci?∥ci+1?....N(ci?ci+1?)? | 僅考慮兩詞連續的情況 |
- 熵:H(X)=?Σx∈Xp(x)log2p(x)H(X)=-\Sigma_{x\in X}p(x)log_2p(x)H(X)=?Σx∈X?p(x)log2?p(x)
- 約定:0log0=00log0=00log0=0
- 單位:比特(bit)
- 越大,不確定性大,正確估值的可能性小
- 又叫自信息:H(X)=H(X)-H(X|X)=I(X;X)—H(X|X)=0
- 熵又稱為自信息(self-information),表示信源 X 每發一個符號(不論發什么符號)所提供的平均信息量。熵也可以被視為描述一個隨機變量的不確定性的數量。一個隨機變量的熵越大,它的不確定性越大。那么,正確估計其值的可能性就越小。越不確定的隨機變量越需要大的信息量用以確定其值。
- 聯合熵H(X,Y)=?Σx∈XΣy∈Yp(x,y)log2p(x,y)=?Σx∈XΣy∈Yp(x,y)log2p(x)p(y∣x)=?Σx∈XΣy∈Yp(x,y)(log2p(x)+log2p(y∣x))=?Σx∈XΣy∈Yp(x,y)(log2p(x))?Σx∈XΣy∈Yp(x,y)(log2p(y∣x))=?Σx∈Xp(x)(log2p(x))?Σx∈XΣy∈Yp(x,y)(log2p(y∣x))=H(X)+H(Y∣X)H(X,Y)=-\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)log_2p(x,y)\\=-\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)log_2p(x)p(y|x)=-\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)(log_2p(x)+log_2p(y|x))=-\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)(log_2p(x))-\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)(log_2p(y|x))\\=-\Sigma_{x\in X}p(x)(log_2p(x))-\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)(log_2p(y|x))\\=H(X)+H(Y|X)H(X,Y)=?Σx∈X?Σy∈Y?p(x,y)log2?p(x,y)=?Σx∈X?Σy∈Y?p(x,y)log2?p(x)p(y∣x)=?Σx∈X?Σy∈Y?p(x,y)(log2?p(x)+log2?p(y∣x))=?Σx∈X?Σy∈Y?p(x,y)(log2?p(x))?Σx∈X?Σy∈Y?p(x,y)(log2?p(y∣x))=?Σx∈X?p(x)(log2?p(x))?Σx∈X?Σy∈Y?p(x,y)(log2?p(y∣x))=H(X)+H(Y∣X)
- 聯合熵實際上就是描述一對隨機變量平均所需要的信息量。
- 條件熵H(Y∣X)=Σx∈Xp(x)H(Y∣X=x)=Σx∈Xp(x)(?Σy∈Yp(y∣x)log2p(y∣x))=?Σx∈XΣy∈Yp(x,y)log2p(y∣x)H(Y|X)=\Sigma_{x\in X}p(x)H(Y|X=x)\\=\Sigma_{x\in X}p(x)(-\Sigma_{y\in Y}p(y|x)log_2p(y|x))\\=-\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)log_2p(y|x)H(Y∣X)=Σx∈X?p(x)H(Y∣X=x)=Σx∈X?p(x)(?Σy∈Y?p(y∣x)log2?p(y∣x))=?Σx∈X?Σy∈Y?p(x,y)log2?p(y∣x)
- 熵率
- 一般地,對于一條長度為 n 的信息,每一個字符或字的熵為:Hrate=1nH(X1n)=?1nΣX1np(x1n)logp(x1n)H_{rate}=\frac{1}{n}H(X_{1n})=-\frac{1}{n}\Sigma_{X_{1n}}p(x_{1n})logp(x_{1n})Hrate?=n1?H(X1n?)=?n1?ΣX1n??p(x1n?)logp(x1n?)
- 相對熵(KL距離)
- D(p∣∣q)=Σx∈Xp(x)logp(x)q(x)約定0log(0/q)=0,plog(p/0)=∞D(p||q)=\Sigma_{x\in X}p(x)log\frac{p(x)}{q(x)}\\約定0log(0/q)=0,plog(p/0)=\inftyD(p∣∣q)=Σx∈X?p(x)logq(x)p(x)?約定0log(0/q)=0,plog(p/0)=∞
- 用來:衡量兩個分布的差距,兩個隨機分布相同則為0,差別增大,則增大
- 交叉熵
- 隨機變量X`p(x),模型q
- 用以衡量估計模型與真實概率分布之間的差異
- H(X,q)=H(X)+D(p∣∣q)=?Σxp(x)logq(x)H(X,q)=H(X)+D(p||q)=-\Sigma_xp(x)logq(x)H(X,q)=H(X)+D(p∣∣q)=?Σx?p(x)logq(x)
- 對于語言L=(X)-p(x)與其模型q的交叉熵定義為
- H(L,q)=?limn→∞1nΣx1np(x1n)logq(x1n)H(L,q)=-lim_{n\rightarrow \infty}\frac{1}{n}\Sigma_{x_1^n}p(x_1^n)logq(x_1^n)H(L,q)=?limn→∞?n1?Σx1n??p(x1n?)logq(x1n?)
- p(x_1^n)概率
- q(x_1^n)為概率估計值(頻率)
- 如果是理想的語言,n趨于無窮大(記做N),假定L是穩態的隨機過程
- H(L,q)=?limn→∞1nΣx1np(x1n)logq(x1n)=?limn→∞1Nlogq(x1n)H(L,q)=-lim_{n\rightarrow \infty}\frac{1}{n}\Sigma_{x_1^n}p(x_1^n)logq(x_1^n)\\=-lim_{n\rightarrow \infty}\frac{1}{N}logq(x_1^n)H(L,q)=?limn→∞?n1?Σx1n??p(x1n?)logq(x1n?)=?limn→∞?N1?logq(x1n?)
- 在設計模型q時,我們的目的是使交叉熵最小,從而使模型最接近真實的概率分布
- 困惑度
- 再設計語言模型時,可以用困惑度來代替交叉熵衡量模型的好壞
- 語言L的樣本l1n=l1...lnPPq=2H(L,q)≈2?12logq(l1n)l_1^n=l_1...l_n\\PP_q=2^{H(L,q)}\approx2^{-\frac{1}{2}logq(l_1^n)}l1n?=l1?...ln?PPq?=2H(L,q)≈2?21?logq(l1n?)
- 互信息
- (X,Y)-P(x,y)
- I(X;Y)=H(X)?H(X∣Y)=Σx∈XΣy∈Yp(x,y)log2p(x,y)p(x)p(y)I(x;y)=logp(x,y)p(x)p(y)=log2p(y∣x)p(y)I(X;Y)=H(X)-H(X|Y)\\=\Sigma_{x\in X}\Sigma_{y\in Y}p(x,y)log_2\frac{p(x,y)}{p(x)p(y)}\\I(x;y)=log\frac{p(x,y)}{p(x)p(y)}=log_2\frac{p(y|x)}{p(y)}I(X;Y)=H(X)?H(X∣Y)=Σx∈X?Σy∈Y?p(x,y)log2?p(x)p(y)p(x,y)?I(x;y)=logp(x)p(y)p(x,y)?=log2?p(y)p(y∣x)?
- 互信息 I (X; Y) 是在知道了 Y 的值以后 X 的不確定性的減少量,即Y 的值透露了多少關于 X 的信息量。
- 又叫自信息:H(X)=H(X)-H(X|X)=I(X;X)—H(X|X)=0
- 說明兩個完全依賴的變量之間的互信息并不是一個常量,而是取決于他倆之間的熵
- 互信息大,說明兩個文字之間的結合越緊密,越可能成詞。反之,斷開的可能性越大
- 關系強:I(x;y)>0
- 弱:I(x;y)≈0I(x;y)\approx0I(x;y)≈0
- 互補分布:I(x;y)<0
- 兩個單個離散事件(xi, yj)之間的互信息I(xi, yj)可
能為負值,但 - 兩個隨機變量(X, Y)之間的互信息I(X, Y)不可能為負值。后者通常稱為平均互信息
- 耦合度
- couple(ci,ci+1)=N(cici+1N(cici+1+N(....ci∣ci+1....couple(c_i,c_{i+1})=\frac{N(c_ic_{i+1}}{N(c_ic_{i+1}+N(....c_i|c_{i+1}....}couple(ci?,ci+1?)=N(ci?ci+1?+N(....ci?∣ci+1?....N(ci?ci+1??
- 兩字相鄰的情況
- 相鄰且是一個詞
- 相鄰但不是一個詞
- 不相鄰(耦合度不考慮這個情況,但互信息考慮)
- 有些漢字在實際應用中出現雖然比較頻繁,但是連續在一起出現的情況比較少,一旦連在一起出現,就很可能是一個詞。這種情況下計算出來的互信息會比較小,而實際上兩者的結合度應該是比較高的。而雙字耦合度恰恰計算的是兩個連續漢字出現在一個詞中的概率,并不考慮兩個漢字非連續出現的情況。
- 有些漢字在實際應用中出現雖然比較頻繁,但是連續在一起出現的情況比較少,一旦連在一起出現,就很可能是一個詞。這種情況下計算出來的互信息會比較小,而實際上兩者的結合度應該是比較高的。而雙字耦合度恰恰計算的是兩個連續漢字出現在一個詞中的概率,并不考慮兩個漢字非連續出現的情況。
計算熵
計算信息熵、條件熵、聯合熵
))))
波利尼亞語
熵率
噪聲信道模型
- 要求:在信號傳輸的過程中都要進行雙重性處理:
- 一方面要通過壓縮消除所有的冗余,
- 另一方面又要通過增加一定的可控冗余以保障輸入信號經過噪聲信道后可以很好地恢復原狀。
- 信息編碼時要盡量占用少量的空間,
- 但又必須保持足夠的冗余以便能夠檢測和校驗錯誤。
- 接收到的信號需要被解碼使其盡量恢復到原始的輸入信號。
- 目標:就是優化噪聲信道中信號傳輸的吞吐量和準確率,其
- 基本假設:是一個信道的輸出以一定的概率依賴于輸入。
- 信道容量(capacity):其基本思想是用降低傳輸速率來換取高保真通訊的可能性。其定義可以根據互信息給出
- C=maxp(x)I(X;Y)C=max_{p(x)}I(X;Y)C=maxp(x)?I(X;Y)
- 據此定義,如果我們能夠設計一個輸入編碼 X,其概率分布為 p(X),使其輸入與輸出之間的互信息達到最大值,那么,我們的設計就達到了信道的最大傳輸容量。
- 在語言處理中,我們不需要進行編碼,只需要進行解碼,使系統的輸出更接近于輸入,如機器翻譯。(自編碼器)
- 一個二進制的對稱信道 (binary symmetric channel, BSC) 的輸入符號集 X:{0, 1},輸出符號集Y:{0, 1}。在傳輸過程中如果輸入符號被誤傳的概率為 p,那么,被正確傳輸的概率就是 1-p。這個過程我們可以用一個對稱的圖型表示如下:
建立一個翻譯
詞義消歧(WSD
- 定義:任何一種自然語言中,一詞多義(歧義)現象
是普遍存在的。如何區分不同上下文中的詞匯語義,
就是詞匯歧義消解問題,或稱詞義消歧(word sense
disambiguation, WSD) 。- 一個基本問題
- 基本思路:依據上下文
- 每個詞表達不同的含意時其上下文(語境)往往不同,也就是說,不同的詞義對應不同的上下文,因此,如果能夠將多義詞的上下文區別開,其詞義自然就明確了。
- 基本的上下文信息:詞,詞性,位置
- 基于上下文分類的消除歧義方法
- 基于貝葉斯分類器
- 最大熵的消歧方法
貝葉斯
-
假設某個多義詞 w 所處的上下文語境為 C,如果w 的多個語義記作 si,那么,可通過計算 argmaxp(si|C)確定w 的詞義
p(si∣C)=p(si)p(C∣si)p(C)分母不變性,及獨立性假設:P(C∣si)=Πck∈Cp(ck∣si)所以,si^=argmaxsi(p(si)Πck∈Cp(ck∣si))??極大似然估計得到:p(ck∣si)=N(ck,si)N(si)??出現次數p(si)=N(si)N(w)??N(w)為多義詞w總共出現的次數p(s_i|C)=\frac{p(s_i)p(C|s_i)}{p(C)}\\分母不變性,及獨立性假設:P(C|s_i)=\Pi_{c_k\in C}p(c_k|s_i)\\所以,\hat{s_i}=argmax_{s_i}(p(s_i)\Pi_{c_k\in C}p(c_k|s_i))--極大似然估計得到:\\p(c_k|s_i)=\frac{N(c_k,s_i)}{N(s_i)}--出現次數\\p(s_i)=\frac{N(s_i)}{N(w)}--N(w)為多義詞w總共出現的次數p(si?∣C)=p(C)p(si?)p(C∣si?)?分母不變性,及獨立性假設:P(C∣si?)=Πck?∈C?p(ck?∣si?)所以,si?^?=argmaxsi??(p(si?)Πck?∈C?p(ck?∣si?))??極大似然估計得到:p(ck?∣si?)=N(si?)N(ck?,si?)???出現次數p(si?)=N(w)N(si?)???N(w)為多義詞w總共出現的次數 -
實際,用對數計算
- si^=argmax(logp(si)+Σck∈Clogp(ck∣si)\hat{s_i}=argmax(logp(s_i)+\Sigma_{c_k\in C}logp(c_k|s_i)si?^?=argmax(logp(si?)+Σck?∈C?logp(ck?∣si?)
-
算法描述
- 訓練過程:
- 計算p(ck∣si)=N(ck,si)N(si)??出現次數p(c_k|s_i)=\frac{N(c_k,s_i)}{N(s_i)}--出現次數p(ck?∣si?)=N(si?)N(ck?,si?)???出現次數
- 計算p(si)=N(si)N(w)p(s_i)=\frac{N(s_i)}{N(w)}p(si?)=N(w)N(si?)?
- 預測過程:
- si^=argmax(logp(si)+Σck∈Clogp(ck∣si)\hat{s_i}=argmax(logp(s_i)+\Sigma_{c_k\in C}logp(c_k|s_i)si?^?=argmax(logp(si?)+Σck?∈C?logp(ck?∣si?)
-
例子
-
對于“打”字而言,假設做實詞用的25個語義分別標
記為:s1 ~ s25,兩個虛詞語義分別標記為: s26 、s27。
假設 s1 的語義為“敲擊(beat)”。那么,N(s1)表示“打”
字的意思為“敲擊(beat)”時在所有統計樣本中出現的
次數;N(ck, s1) 表示某個詞 ck 出現在 s1 的上下文中時
出現的次數。例如,句子:對于“打”字而言,假設做實詞用的25個語義分別標記為:s1 ~ s25,兩個虛詞語義分別標記為: s26 、s27。假設 s1 的語義為“敲擊(beat)”。那么,N(s1)表示“打”字的意思為“敲擊(beat)”時在所有統計樣本中出現的次數;N(ck, s1) 表示某個詞 ck出現在 s1 的上下文中時出現的次數。例如,句子: -
上下文C=(他,對,鼓,很),ck=他,N(他,s1)=5,N(s1)=100
-
p(ck|si)=p(他|s1)=5/100=0.05
-
p(s1)=N(s1)/N(w)=100/800=0.125
最大熵的消歧方法
- 基本思想:在只掌握關于未知分布的部分知識的情況下,符合已知知識的概率分布可能有多個,但使熵值最大的概率分布最真實地反映了事件的分布情況,因為熵定義了隨機變量的不確定性,當熵最大時,隨機變量最不確定。也就是說,在已知部分知識的前提下,關于未知分布最合理的推斷應該是符合已知知識最不確定或最大隨機的推斷。
- 對于求解的問題,就是估計在條件b ∈B下(已知知識) ,發生某個事件(未知分布) 的概率p(a|b),該概率使熵 H(p(A|B))最大。
- 用最隨機情況下的概率來推導
- 上下文條件b表示有:
- 詞形
- 詞性
- 詞形+詞性
- 兩種表示方法
- 位置有關(模板表示
- 位置無關(詞袋模型
- EP(f)=Σa,bp~(b)p(a∣b)f(a,b)希望(約束)EP(f)=EP~(f),EP~(f)=Σa,bp~(a,b)f(a,b)C={p∈Γ∣EP(f)=EP~(f)}所以,H(p)=L(p)=?Σa,bp~(b)p(a∣b)log(p(a∣b))p?(a∣b)=argmaxpH(p)E_P(f)=\Sigma_{a,b}\tilde{p}(b)p(a|b)f(a,b)\\希望(約束)E_P(f)=E_{\tilde{P}}(f),\\E_{\tilde{P}}(f)=\Sigma_{a,b}\tilde{p}(a,b)f(a,b)\\C=\{p\in \Gamma |E_P(f)=E_{\tilde{P}}(f)\}\\所以,H(p)=L(p)=-\Sigma_{a,b}\tilde{p}(b)p(a|b)log(p(a|b))\\p^*(a|b)=argmax_p H(p)EP?(f)=Σa,b?p~?(b)p(a∣b)f(a,b)希望(約束)EP?(f)=EP~?(f),EP~?(f)=Σa,b?p~?(a,b)f(a,b)C={p∈Γ∣EP?(f)=EP~?(f)}所以,H(p)=L(p)=?Σa,b?p~?(b)p(a∣b)log(p(a∣b))p?(a∣b)=argmaxp?H(p)
- 確定特征函數
總結
以上是生活随笔為你收集整理的nlp2-数学基础(信息论,概率论、词义消歧)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12 计算机组成原理第七章 输入/输出
- 下一篇: 「Python」为什么Python里面,