自然語言處理起航篇之資訊理論基礎(上)
在自然語言處理領域,資訊理論的基礎必不可少。信息這個概念比較抽象,我們常說對某一件事情獲取的信息有很多或很少,但很難說清信息到底有多少。如何對信息進行量化度量?本文對一些概念進行了總結歸納。如下圖所示:
主要涉及各種熵的概念。下面依次進行介紹。
1 熵
熵又稱自信息,可以視為描述一個隨機變數的不確定性的數量(即不確定性的多少)。它表示信源 X 每發一個符號所提供的平均信息量,用於量化信息的度量。比如,如果我們需要了解一件非常不確定的事,或是我們一無所知的事情,就需要了解大量的與該事件相關的信息。相反,如果我們對某件事已經有了較多的了解,那麼不需要太多的信息就能把這件事搞清楚。這個信息的量就是用信息熵來度量,度量單位是比特(bit)。
對於一個變數 ,如果它的發生概率為 ,那麼,x的熵定義為 。假設 R = {x1,x2,...,xn},當n越大時,我們可以看到變數x的不確定就越大,因為它的取值範圍更大了;因此由上述熵的定義可知,熵也就越大了。這樣就是說要搞清變數x(一個事件)所需要的信息量也就越大了。
2 條件熵
在一次考試中,我們想知道小明的成績能考多少(一件事),如果沒有其他任何額外信息的話,我們是很難去猜測小明到底能考多少分的;但是如果我們又知道了小明在前幾次考試中的分數都在80至85分之間波動的,而且還有上升的趨勢,那麼我們現在就可以放心大膽的猜測這次小明能考的分數應該在85分左右了。
從上述例子可以看到,隨著我們知道的信息越多,隨機事件(小明的考試分數)的不確定性就越小。為嚴格描述這些"相關的"信息,以便幫我們消除不確定性,為此,研究者們提出了條件熵的概念。假設我們知道除了x之外,y的一些情況(比如一句話中某個詞的前一個詞的情況),包括它和x一起出現的概率,即x,y的聯合概率分布;以及在y取不同值時x的概率分布,即條件概率分布。則可以定義在Y的條件下X的條件熵為:
我們可以證明 ,也就是說多了Y的信息,關於X的不確定性下降了。等號成立時,說明我們獲取的信息和我們要研究的事物沒有關係,因此信息增多了,不確定性卻沒有降低。
3 互信息
上一節我們知道,隨著我們知道的信息越多,隨機事件的不確定性就會減小。但是這個減少的信息量是多少呢?正好,互信息可用來度量這個減小的量。即知道了Y的值以後X的不確定性的減少量。可以理解為Y的值透露了多少關於X的信息量。也即,「互信息」可以用來對兩個隨機事件「相關性」的量化度量。
假定有兩個隨機事件X和Y,他們的互信息定義如下:
從上式可以看出,互信息就是隨機事件X的不確定性(熵H(X)),以及在知道隨機變數Y條件下的不確定性(條件熵H(X|Y))之間的差異,即:
推導如下:
互信息是一個取值在0到min(H(X), H(Y))之間的函數,當X和Y完全相關時,他取值為1;當他們完全無關時,取值為0 。互信息被廣泛用於度量語言現象的相關性。
4 相對熵
相對熵也叫交叉熵,用來衡量相關性,但與互信息不同的是它用來衡量兩個取值為正數的函數的相似性。定義如下:
三條結論:
- 對於兩個完全相同的函數,它們的相對熵等於0
- 相對熵越大,函數之間的差異越大,反之~
- 對於概率分布或者概率密度函數,如果取值均大於0,相對熵可以度量兩個隨機分布的差異性
在自然語言處理領域,相對熵的應用很多,可以用它都得到信息檢索中的一個重要概念,TF-IDF。
參考資料:
1、吳軍,《數學之美》
2、宗成慶,《統計自然語言處理》
推薦閱讀:
※PaperWeekly 第53期 | 更別緻的詞向量模型:Simpler GloVe - Part 2
※線下沙龍 x 北京 | NLP專題技術分享會,佔座全憑手速!
※論文推薦:機器閱讀理解,問答系統,對話生成 | 本周值得讀 #36
※SEO詞庫清洗詞和歸類相關問題?