自然語言處理的問題應該回歸到哪裡?

隱含馬爾可夫模型是一個並不複雜的數學模型,到目前為止,它一直被認為是解決大多數自然語言處理問題最為快速、有效的方法。它成功解決了複雜的語音識別、機器翻譯等問題。

之前我們介紹了,人類資訊交流的發展貫穿了人類的進化和文明的全過程。而自然語言是人類交流資訊的工具,語言和通訊的聯絡是天然的,通訊的本質就是一個編解碼和傳輸的過程。但是自然語言處理早期的努力都集中在語法、語義和知識表述上,離通訊的原理越走越遠,而這樣離答案也就越走越遠。當自然語言處理的問題迴歸到通訊系統中的解碼問題時,很多難題都迎刃而解了。

先來看一個典型的通訊系統:傳送者(人或者機器)傳送資訊時,需要採用一種能在媒體中(比如空氣、電線)傳播的訊號,比如語音或者電話線的調製訊號,這個過程是廣義上的編碼。然後透過媒體傳播到接收方,這個過程是通道傳輸。在接收方,接受者(人或者機器)根據事先約定好的方法,將這些訊號還原成傳送者的資訊,這個過程是廣義上的解碼。

所謂語音識別,就是聽著去猜測說話者要表達的意思,這其實就像通訊中,接收端根據收到的訊號去分析、理解、還原發送端穿送過來的資訊。我們平常在說話時,腦子就是一個資訊源,我們的喉嚨(聲帶)、空氣,就是如電線和光纜班的通道。聽眾的耳朵就是接收器,而聽到的聲音就是傳送過來的訊號。根據聲學訊號來推測說話者的意思,就是語音識別。如果接收端是一臺計算機,那麼就要做語音的自動識別。

同樣,很多自然語言處理的應用也可以這樣理解。在從漢語到英語的翻譯中,說話者講的是漢語,但是通道傳播編碼的方式是英語,如果利用計算機,根據接收到的英語資訊,推測說話者的漢語意思,就是機器翻譯。同樣,如果要根據帶有拼音錯誤的語句推測說話者想表達的正確意思,那就是自動糾結。這樣,幾乎所有的自然語言處理問題都可以等價成通訊的解碼問題。

在通訊中,如何根據接收端的觀測訊號o1,o2,o3。。。來推測訊號源傳送的資訊s1,s2,s3。。。呢?只需要從所有的源資訊中找到最可能產生出觀測訊號的那一個資訊。用機率論的語言來描述,就是在已知o1,o2,o3。。。的情況下,求得令條件機率P(s1,s2,s3。。。|o1,o2,o3。。。)達到最大值的那個資訊串s1,s2,s3。。。,機率不容易直接求出,不過可以間接的計算它。利用貝葉斯公式可以把上述等價變換成P(s1,s2,s3。。。|o1,o2,o3。。。)*P(s1,s2,s3。。。)/P(o1,o2,o3。。。),其中P(s1,s2,s3。。。|o1,o2,o3。。。)表示資訊s1,s2,s3。。。在傳播後變成接收的訊號o1,o2,o3。。。的可能性;而P(s1,s2,s3。。。)表示s1,s2,s3。。。本身是一個在接收端合乎情理的訊號(比如一個合乎情理的句子)的可能性;最後P(o1,o2,o3。。。)表示在傳送端(比如說話的人)產生資訊o1,o2,o3。。。的可能性。

也許你現在感覺是把問題變得更復雜了,因為公式越來越長,其實我們可以來簡化這個問題的,首先,一旦資訊o1,o2,o3。。。產生了,它就不會改變了,這時P(o1,o2,o3。。。)就是一個可以忽略的常數,因此,可以等價於P(s1,s2,s3。。。|o1,o2,o3。。。)*P(s1,s2,s3。。。),這個公式完全可以用隱含馬爾可夫模型來估計。

下次重點分析隱含馬爾可夫模型,摘自吳軍《數學之美》,邊學習邊分享,如有不足,懇請指正!

自然語言處理的問題應該回歸到哪裡?

TAG: O1O2o3S1S2