天天看點

北大AI第八講 李航 自然語言處理的現實與挑戰

視訊位址

課程介紹

“人工智能前沿與産業趨勢”課程由北京大學開設,并面向公衆開放。課程由人工智能創新中心主任雷鳴老師主持,共14節,每節課邀請一位人工智能領域頂級專家和行業大咖作為主講嘉賓,就人工智能和一個具體行業的結合深度探讨,分析相應技術的發展,如何影響産業,現狀及未來趨勢、對應挑戰和與機遇。所有課程相關資訊、通知都會在下方的公衆号釋出(在視訊中有)。

對于自然語言了解,有兩種定義。第一種是計算機能夠将所說的語言映射到計算機内部表示;另一種是基于行為的,你說了一句話,計算機做出了相應行為,就認為計算機了解了自然語言。後者的定義,更廣為采用。

為什麼自然語言了解很難?其本質原因是語言是一種複雜的現象。自然語言有5個重要特點,使得計算機實作自然語言處理很困難:

  • 語言是不完全有規律的,規律是錯綜複雜的。有一定的規律,也有很多例外。因為語言是經過上萬年的時間發明的,這一過程類似于建立維基百科。是以,一定會出現功能備援、邏輯不一緻等現象。但是語言依舊有一定的規律,若不遵循一定的規範,交流會比較困難;
  • 語言是可以組合的。語言的重要特點是能夠将詞語組合起來形成句子,能夠組成複雜的語言表達;
  • 語言是一個開放的集合。我們可以任意地發明創造一些新的表達。比如,微信中“潛水”的表達就是一種比喻。一旦形成之後,大家都會使用,形成固定說法。語言本質的發明創造就是通過比喻擴充出來的;
  • 語言需要聯系到實踐知識;
  • 語言的使用要基于環境。在人與人之間的互動中被使用。如果在外語的語言環境裡去學習外語,人們就會學習得非常快,了解得非常深。

這些現象都說明,在計算機裡去實作與人一樣的語言使用能力是一件非常具有挑戰性的事情。首先,語言的不完全規律性群組合性,就意味着如果在目前的計算機上去實作,會産生組合爆炸;還有,如果需要語言做比喻,去聯系到實踐環境,就意味着要做全局的、窮舉的計算。如果通過現代計算機來做,非常複雜,幾乎不太可能。是以,如果想讓計算機像人一樣使用語言,原理上需要完全不同的、與人腦更接近的計算機體系架構。

其本質原因是,目前在計算機上去實作東西一定需要數學模型。換句話說,計算機能夠做的事情要通過數學形式化。但是,到目前為止,語言的使用還不清楚是否能夠用數學模型去刻畫。人工智能的終極挑戰就是自然語言了解。現實當中,不能因為自然語言了解非常困難就放棄。我們還是希望能夠使計算機越來越智能化,能夠部分使用語言。是以,就形成了所謂自然語言處理這一領域。我們叫自然語言處理,而不是自然語言了解,因為真正的了解是太難了。

自然語言處理做的第一件事情就是把問題簡化。比如,知識問答中,問姚明身高是多少?朋友告訴你是2米26。這是人與人之間的知識問答。那麼,這其中有哪些步驟呢?首先是聽,然後去了解問題,然後去做一定的推理,然後再去做資訊檢索,最後判斷怎麼去做回答,整個過程相當複雜。我們現在做自然語言處理時,也做這種知識問答,包括有名的IBM的Watson,其整個步驟也是簡化了自然語言處理的過程。一般而言,就是這幾個步驟,先分析一下問句,接着去檢索相關的知識或者資訊,然後産生答案。

目前,所有的自然語言處理的問題都可以分類成為五大統計自然語言處理的方法或者模型,即分類、比對、翻譯、結構預測,馬爾可夫決策過程。各種各樣的自然語言處理的應用,都可以模型化為這五大基本問題,基本能夠涵蓋自然語言處理相當一部分或者大部分的技術。主要采用統計機器學習的方法來解決。第一是分類,就是你給我一個字元串,我給你一個标簽,這個字元串可以是一個文本,一句話或者其他的自然語言單元;其次是比對,兩個字元串,兩句話或者兩段文章去做一個比對,判斷這兩個字元串的相關度是多少;第三就是翻譯,即更廣義的翻譯或者轉換,把一個字元串轉換成另外一個字元串;第四是結構預測,即找到字元串裡面的一定結構;第五是馬可夫決策過程,在處理一些事情的時候有很多狀态,基于現在的狀态,來決定采取什麼樣的行動,然後去判斷下一個狀态。我們也可以采用這樣的模型,去刻畫自然語言處理的一些任務。

  • 分類主要有文本分類和情感分類,比對主要有搜尋、問題回答、對話(主要是單輪對話);翻譯主要有機器翻譯,語音識别,手寫識别,單輪對話;結構預測主要有專門識别,詞性标注,句法分析,文本的語義分析;馬可夫決策過程可以用于多輪對話。我們可以看到,自然語言處理裡面有很多任務,在現實中我們已經開始使用最基本這五種最基本的模型它都去可以去刻畫的。
  • 語言處理,在一定程度上需要考慮技術上界和性能下界的關系。現在的自然語言處理,最本質是用資料驅動的方法去模拟人,通過人工智能閉環去逼近人的語言使用能力。但是,這種技術并沒有真正實作人的語言了解機制。可能會有這樣的情況,這個技術的準确率(綠線)畫了一個上界。比如,語音識别的上屆是95%,我們希望不斷把這個技術做好,比如通過人工智能閉環,更好的深度學習方法,進而使得上界不斷提高。但是,不可能一下子達到百分之百對,或者達到完全與人一樣的水準。每個應用,對于下界的要求是不一樣的。比如,在葡萄牙問路,對方也不會英語,我也不會葡萄牙語,交流非常困難,在這種環境下我其實就是聽懂幾個單詞,讓機器翻譯給我翻譯幾個單詞就行了,對性能的要求其實是比較低的,不需要去翻譯一大段話。我們可以看到,不同的應用,使用者對使用性能的要求不同,如果下界達到這個水準,使用者就用了。再比如網際網路搜尋中排序第一的準确率不高,60%多-70%多,大家往往覺得,網際網路搜尋引擎已經達到要求了。當然因為搜尋的時候,通過排序展示給使用者多個結果,使用者可以去逐個去看,一定程度上解決一些問題,這時候對性能要求下界相對就比較低。如果,現在的技術上屆達到了使用者要求的下界,就能夠使用。是以,哪些自然語言處理的技術未來能夠起飛,能夠真正實用化,就可以通過這種關系來看。還是要看具體的應用的場景。在一些特定場景下,準确率達到99%都不行。我們相信,自然語言處理的技術會不斷提高,但是是不是都能夠達到我們每一個應用要求的性能的下界,就不好說了,要看未來的發展了。這是自然語言處理技術整個發展情況。

下面,給大家一起看一下我們自然語言處理領域裡面都有哪些技術,有代表性的技術都大概達到什麼樣的水準,都是什麼樣的一些基礎。假設大家對深度學習有一定的了解,如果這方面的知識還不夠也沒關系,過後你可以去再去看書看論文,去了解一些相關的技術情況。

剛才,我介紹到站在一個很抽象的角度來看,自然語言處理就是五個問題。如果用各種方法包括深度學習把這五個問題做好了,就能夠把自然語言做得很好。現實當中,我們就是通過深度學習,達到自然語言處理技術比較好的水準。

首先,問答系統有很多,包括 IBM 的 Watson 也是一個問答系統,有大量的知識或者資訊放在知識庫。典型的辦法就是把問答用FAQ索引起來,與搜尋引擎相似,如果來了一個新問題,有一大堆已經索引好的FAQ,然後去做一個檢索(字元上的比對),之後逐個去做比對,判斷問句與回答的比對如何。往往比對的模型有多個,再去将候補做一個排序,把最有可能的答案排在前面,往往就取第一個作為答案傳回給使用者。

這裡面牽扯到幾個技術,我們在線上的時候要做比對和排序,現在最先進的技術都是用機器學習,用深度學習技術。就是把問句和回答的可能的候選,用向量來表示,問句的每一個單詞都可以用向量來表示。每一個詞的語義都可以用一個實數值向量賴表示,問句和候補都是實數值向量的序列。然後,用一個二維的卷積神經網絡來判斷兩句話在語義上是不是相關,候選是否是很好的答案。通過二維卷積神經網絡,可以判斷兩句話裡面哪一些詞語、詞組是可以互相對應,最後可以做一個判斷這兩句話是不是相關的。整個模型的學習通過大量的資料、句對,去訓練。如果卷積神經網絡的參數學好,就可以判斷任何給定的兩句話是不是能夠構成一輪問答。

這樣的模型不僅僅可以用到文本問答(知識問答)上,也可以用到圖像檢索上面。給大家示範一個demo。

這種模型,可以跨模态的把文本和圖檔聯系起來。在深度學習技術出現之前的話,這件事情是不可能的。因為他們是不同的模态。一個是符号表示的資訊,一個是像素表示的資訊,那麼我們可以用深度學習的模型去做這種跨模态的比對。比如,左邊有一個卷積神經網絡,他能夠抽出左邊圖檔的語意表示,表示成一個向量;右邊也是一個卷積神經網絡,能夠把一段文字的内容抽取出來,表示成為一個向量,還有一個網絡判斷這兩個向量在語義上是否能夠比對。這個模型可以通過大量的資料去訓練。假設每一個照片有3到5個人給出描述。我們用大量這樣的資料就可以學這樣的神經網絡,神經網絡可以幫助我們,就是說任何給定的一句話,要去查找一個圖檔的内容,它就可以在這個圖檔庫裡幫你去比對到最相關的圖檔,給你傳回來。這個技術也是在深度學習出現之前應用的,因為我們不知道怎樣把圖檔和文字比對到一起。有了深度學習技術,我們可以做這樣的事情。

自然語言對話是用另外一種技術,用生成式的模型去做自然語言對話。大量的聊天系統是這麼做的,輸入一句話,裡面準備了大量的FAQ,搜尋到一個最相關的回答,回報給你。這叫做基于檢索的自然語言問答系統。

我們這裡看到是一種産生式,經過大量資料訓練之後,輸入一句話系統自動的産生一個回複,理論上産生出無窮多的不同的回複。下面先看一個實際系統的錄像。

這個系統,我們在微網誌上爬了四百萬的微網誌資料,微網誌資料可以看作是一種簡單的單輪對話。我們用400萬資料訓練了這樣一個系統能夠去自動産生對話。(系統示範)

理論上它可以回答任何你輸入的對話。用400萬的微網誌資料就可以訓練這樣一個模型。系統産生一句話的比例是96%,真正形成一個有意義的單輪對話的比例是76%左右。這個系統的一大特點是,可以回答沒有見過的一句話。

第二個特點是能夠記住訓練資料。發現深度網絡有一個共同的特點就是能夠記住訓練資料,同時也有去泛化的能力,能針對未知的新見到的東西去自動組織出一句話,并傳回給你。這種能力很令人驚歎,是否實用并不清楚。在一個很固定的場景裡,比如話務中心,如果話務員跟客戶之間的互動都是簡單的重複,大量的類似資料可以建構一個産生自動的回複系統,而且跟人的回複非常接近。

大家如果熟悉深度學習的話,剛才說自然語言處理有很多問題都是翻譯的問題,即把一個文字的字元翻譯成另外一個文字字元,那麼單輪對話的産生也可以看成是機器翻譯。序列對序列學習,sequenceto sequence learning,可以用到這種單輪對話中。每個單詞其實是用一個實數值向量表示,就是編碼,之後用實數值向量分解成一個回複的一句,叫做解碼。通過這種編碼、解碼這兩個過程的話,我們把原始的資料轉化成中間表示,再把中間表示,轉換成為應該回複的話,可以産生對話系統。

谷歌的神經機器翻譯系統是一個非常強大的系統,需要很多訓練資料和強大計算資源。這個seqto seq模型有八層的編碼器和八層的解碼器,整個網絡非常深。它還用了各種這個新的技術,比如注意力技術,并行處理技術,還有模型分割和資料分割等。目前,翻譯的準确率已經超過了傳統的統計機器翻譯。

下面,再看一下未來自然語言處理技術發展的前景和趨勢。剛才我們看到技術上界和使用者對于性能要求的下界,碰到一起就看到技術的使用化。那麼,就預測一下未來自然語言處理技術的發展。目前,幾個最基本的應用,包括語音識别,就是一個序列對序列學習的問題,就是翻譯的問題,目前準确率是95%左右,那麼已經比較實用了。單輪對話往往可以變成一個分類問題,或者結構預測問題,就是通過手寫一些規則或者建一些分類器,可以做的比較準。很多手機上應用或者是語音助手像siri,就是用這樣的技術;多輪對話還很不成熟,準确率還遠遠達不到一般期待的要求,隻有在特定場景下能做的比較好。單輪問答已經開始實用化,準确率一般來百分之七十八十,自動問答系統沒有超過80%的這個準确率的情況。去年,我有一個報告就講魯棒的自動問答或者知識問答,并不要求準确率是百分之百。單輪自動問答會馬上越來越實用化,因為我們看到很多成功的例子包括Alexa往往都是用單輪對話技術來做的。文本的機器翻譯水準在不斷提高,深度學習在不斷進步,越來越接近人的專業水準,但隻是在一些特定場景下。完全去替代人,還是不太可能。人的語言了解是一個非常複雜的過程,序列對序列實際上是一種近似,現在這種技術能夠去無窮盡的逼近人,但是本質上還是跟人的做法不一樣的。即使是這樣,準确率可以達到百分之七八十。在某些場景下,使用者對性能要求并不是特别高。

總而言之,語音識别、機器翻譯已經起飛,大家現在開始慢慢在用,但是真正對話的翻譯還很困難,還有很長的路要走,但是也說不定能夠做得很好。并不是說序列對序列就沒有問題需要解決了,還有細緻的問題。一個典型的問題就是長尾現象。不常用的單詞、語音識别、翻譯還是做得不是很好。比如用中文語音輸入,人名、地名這種專有名詞識别率一下就下降,特殊的專業術語識也不好,講中文中間夾雜一些英文單詞也是一種長尾現象。因為現在機器學習的方法是基于統計的,原則上就是看到資料裡面的規律,掌握資料的規律。需要看到甚至多次重複看到一些東西,才能夠掌握這些規律。這塊相信有很多技術能幫助解決一些問題,使得機器翻譯或語音識别技術不斷提高,但是完全徹底的解決還是比較困難,因為這是這種方法帶來的一個局限性。

單輪的問答,特别是場景驅動的單輪的問答,可能慢慢會開始使用。但是多輪對話技術還是比較難。馬爾可夫決策過程實際上是還是個統計學習模型,本質特點就是需要有大量的資料去學習。其實我們人在做多輪對話的時候,并不需要重複才能掌握這種天生能力。這些是否能夠用馬爾科夫決策過程去模拟或者近似還不是很清楚。還有一個重要的問題就是多輪對話的資料不夠,不能夠很好地去學習這樣的模型,去研究這些問題。即使是特定任務,多輪對話還比較困難,如果是任務不特定,比如聊天機器人就更難了,我們都不知道該怎麼去做,馬爾科夫決策過程都用不上。現實當中的一些聊天機器人就是用單輪技術堆起來,但是形成不了一個很自然合理的多輪對話,變成大家用起來覺得很奇怪的東西。總結起來就是多輪對話,在任務驅動的簡單場景,有了更多的資料,我們是有可能做的越來越好。

給今天的講座大概做一個總結,自然語言了解很難,自然語言處理現在用資料驅動的辦法去做,有五個最基本的問題,即分類、比對、翻譯、結構預測和馬爾可夫決策過程。在具體的問題上,有了資料就可以跑AI的閉環,就可以不斷提高系統的性能、算法的能力。深度學習在我剛說的五個大任務裡的前四個都能做得很好,特别是運用seq toseq的翻譯和語音識别。單論對話也能做的越來越好,但是多輪對話需要去研究和解決。

自然語言概括的那部分其實我也寫過一些文章,大家感興趣的話也可以去看一看,網上也能搜得到,然後還有就是我們相關的工作論文,包括谷歌的工作論文,我在這裡列出來了。

最後,歡迎大家加入我們的實驗室。方向有語音、語言處理、推薦搜尋、大資料分析、智能通訊網絡、計算機視覺、物聯網、智能城市、智能終端。謝謝大家。

繼續閱讀