今日頭條AI實驗室主任李航:自然語言的現狀和發展 | 北大AI公開課筆記

量子位發表於2018-04-22
主講人:李航 | 今日頭條人工智慧實驗室主任
整理:張康 俞晶翔
量子位 出品 | 公眾號 QbitAI

4月18日週三晚,北京大學“人工智慧前沿與產業趨勢”第八講,本期今日頭條人工智慧實驗室主任李航的授課主題為“自然語言處理的現狀和發展”,分享了自然語言的發展歷史、人腦如何實現人工智慧以及計算機如何實現自然語言處理等相關內容。

講解內容深入淺出,量子位作為獨家合作媒體,為大家帶來詳細課程筆記一份。

課程導師:雷鳴,天使投資人,百度創始七劍客之一,酷我音樂創始人,北京大學信科人工智慧創新中心主任,2000年獲得北京大學計算機碩士學位,2005年獲得史丹佛商學院MBA學位,同時也是“千人計劃”特聘專家。

主講嘉賓:李航,今日頭條人工智慧實驗室主任。北京大學、南京大學客座教授,IEEE 會士,同時也是ACM 傑出科學家,CCF高階會員。他的研究方向包括資訊檢索,自然語言處理,統計機器學習,及資料探勘。

640?wx_fmt=jpeg

合理行動的智慧機器

首先看自然語言對話的發展歷史。2011年蘋果Siri面世,這是第一個比較有名的對話系統,後來有微軟小冰、亞馬遜的Alex等,我當時在華為也有幸和同事一起研究華為mate10的語音助手,包括語音識別,對話等。

這些對話系統,越來越實用,同時也能看到這些系統的侷限性。重點想和大家一起看一下,到底我們是否能建立和人一樣,自如地對話的自然語言系統,以及自然語言的挑戰和根源在什麼地方。

討論一個概念:合理行動的智慧機器。

640?wx_fmt=jpeg

這本書比較有名了,人工智慧的經典教科書。這本書對人工智慧這個領域給了一個定義:人工智慧是研究智慧機器或者智慧計算機的科學和工程領域。但是智慧計算機有4種可能的定義:像人一樣思考的機器,像人一樣行動的機器,合理思考的機器,合理行動的機器。

這四個概念相關但也不完全一樣,他其實代表了對人工智慧不同的認識和定位。這些不同的智慧機器我們要實現的話也需要一定的不同的基礎和方法論。我們構建他們的動機也是去更好地理解人的思維或者行為。基於這個目的去做像人一樣思考和行動的機器就比較合理。

合理思考和合理行動有什麼關係呢?合理行動肯定需要合理思考,這兩者密切相關,合理行動的機器更多強調行為,思考的側重點則不一樣。我們現在已有的人工智慧系統,90%以上都是合理行動的智慧機器。

它有五個共同特點:

1、有一個智慧系統,與環境做互動;

2、有明確的目標;

3、有評價標準來評價他行為的好壞;

4、從功能的角度,就是給了一個輸入,系統能給出一個輸出,能夠達到我們要完成任務的目的。

我們不在意他怎麼實現的,只在意他能否實現。我們把它叫做智慧系統,是一個合理行動的智慧機器,是希望它在完成某一任務的時候要達到人的水平或者超過人的水平。絕大多數的人工智慧系統,基本都是沿著這樣的目的在做,希望構建更好的服務我們的工具。

在某一個領域超過了人,也未必代表就已經超過了人類,自然界的某動物,人造界的工具,在完成某些任務的方面,已經能超過人很多,但我們並不認為那些動物或者那些工具比人還強,比人更加智慧,而是說在某些任務上面比人強。

我們做大部分的人工智慧都是希望在某些任務上面比人強,超過人,或者和人做的差不多。為什麼合理行動的智慧機器在現在的人工智慧領域發展得最好呢?因為我們對人的智慧思維,行為,理解非常有限,要做一個像人一樣思考或者行動的智慧機器,非常困難。

合理思考的智慧機器,在現實當中可能也比較有用,但是也是很難構建的。更多我們看到的則是在一個環境裡面完成某一個任務,效能超過人,這是相對比較容易做的。現實中我們看到有機器學習的方法,通過資料的驅動,使我們智慧機器在具體任務上能夠做的更好。所以合理行動的智慧機器,進步非常大,機器學習在這裡面起了非常重要的作用。

640?wx_fmt=jpeg

順便說一下圖靈測試。圖靈測試是在房間裡放一個智慧機器,人在另外一個房間裡,人和機器通過文字互動,如果隔壁房間裡的人判斷不了房間裡是人還是機器,我們就認為機器有人的智慧。

圖靈測試是說如何定義像人一樣的行為。“像人一樣”,這個標準,很難定義,但是合理行動,可以在一個具體任務中定義。

比如說詬病圖靈測試的人會說,如果是算術題,機器1秒鐘回答,那麼馬上能判斷出來這是機器。圖靈測試必然有這樣的缺陷。這種“像人一樣”的標準很難定義。

現在又有一些人去定義新的圖靈測試,基本上是基於任務的。具體的任務裡面,當任務確定了之後,問題轉化了;在具體任務裡去測試,去定義。

640?wx_fmt=jpeg

我再提一個概念,腦科學和計算視覺裡面有一個先驅,David Marr,他說計算分三個層面,功能的層面,演算法和表示的層面,還有實現和物理的層面。不同的層面,如果一個系統在做計算,在功能和物理的層面是不同的。給定一個輸入,得到一個輸出,這是功能,那麼具體的演算法可能不同的系統有不同的演算法去實現同樣的功能,在物理層面可能有不同的實現。

比如,兩個系統,一個人腦,一個計算機,我們只要看他們兩個做出來的功能是一樣的。但是我們並不在意它內部的演算法是什麼,比如可能是平行計算也可能是序列計算,可能是進行數字計算也可能是模擬的計算。內部演算法我們不管,只要他們在功能上行為一致,那就是有同樣的功能。

對話系統,更多的也是從功能上看,我們認為人腦就是一種計算機,在做一些計算。一個想法是人腦的思維就是一種計算,人腦就可以當做一種特殊的計算機;那麼人工智慧就是在電子計算機上模擬人腦的計算,實現和人一樣的功能。我們現在考慮就是功能,也就是不去在意具體的演算法怎麼樣,不去在意具體的實現。

但是更多的從功能角度看的話,究竟現有的智慧語音對話是怎麼樣的一個狀態?我最近寫了一篇文章還沒有發表,就是談論“合理行動的智慧機器”這個概念,它非常重要,比較典型的工科的定義。在工科的角度,如果說有一個明確的目標,有一個評價指標,那麼我們就知道怎麼樣去做,就是滿足了工程層面的去做的先決條件。

人腦如何做語言理解

首先看一下自然語言理解,它有兩種不同的定義:一種基於表示,一種基於行為。

基於表示與基於行為

640?wx_fmt=jpeg

基於表示,是把人的語言對應到系統中的一個具體的表示,這就是系統理解人的語言。人有時候也是這樣,聽到別人說了一句話,會對應到我們自己大腦裡的一些概念。

另外一種是基於行為,比如有人說,給我拿一杯茶,機器人做了這個行為,我們就認為它是基於行為地理解了人的語言。這兩個定義在一定程度上有一些互補,前者更多的是語義處理,後者更多的是語用處理。

從功能的角度來看,人腦如何做語言理解。現在大部分自然語言理解的教科書,裡面大概描述成這樣一個過程:詞彙處理,句法處理,語義處理和語用處理。詞彙處理要用詞典,句法處理要用句法,語義處理要用世界知識,語用處理要用上下文資訊。

原則上這是一個自下而上的處理,經過一個從詞彙到句法到語義到語用的一個過程。其實也有一個自上而下的一個預測,不僅僅是從左到右的處理,也有從右到左的預測。

我們在人工智慧中常常用到一個概念叫“注意力”,本質也是從上到下的機制,其實處理語言的話,一般的觀點都認為結合了自下而上的處理和自上而下的預測。

詞彙

640?wx_fmt=jpeg

首先說詞彙,詞彙其實是一個非常複雜的現象。一個語言裡面常用的詞彙,成年人一般能夠掌握5w到10w的詞彙量。學外語的時候會有這樣的體會:知道一個單詞的語義,並不意味著知道了所有的使用方法。

為什麼高中畢業學了不少單詞但還是沒有很高的英語水平,因為只是大概知道了單詞的意思和使用場景,但是沒有真正理解這個詞的靈活的使用方法。為什麼用母語的交流就覺得非常順暢,因為掌握了5-10萬的單詞,而且完全掌握了它的使用方法,這些詞怎麼用掌握得非常清楚。

句法

640?wx_fmt=jpeg

句法的內容非常豐富,它的一個重要特點是一個句法既有規定的使用方法,但也有例外。這個句法,語法的發明和演進不是一個人規定的,可能是成千上萬人蔘與制定,大家通過很長的時間或者上萬年一起發明的,所以它是自下而上生成,就像維基百科生成的過程一樣。

句法本身就是很難用一系列的規則去刻畫。

語義

640?wx_fmt=jpeg

語義也是非常複雜的現象。語義分析,就是把語言的這些符號,也可以是語音,也可以是文字,去對映到我們的大腦裡。

語義處理,就是對映到大腦中的表示上面去,對應到腦中的概念上,這樣我們才能去理解語言的意思。語義分析只是在語言表面意思上去理解。

這裡面還有一個重要的點,我們理解一個語言的意思,還需要上下文,只有在上下文裡才能真正理解語義。所以語義處理,語義分析可以認為是這樣的處理:聽到一段話或者看到一段文字,就是語音的符號和文字的符號,我們要把它對映到大腦的一個表示上面去,這個對映是一個多對多的對映,是一個非常複雜的事情,造成了多義性和多樣性。

語用

語用也是非常複雜的,同樣說一句話,比如這個房間很熱,語義上就是這個意思,但是也可能是我想說希望你把窗戶開啟,這可能是我在語用上想表達的東西,只有在上下文裡面才能夠體會到句子的意思。

語用裡面有這個speak active,語言內部包含的意思,語言外面包含的意思,語言這個行動執行了之後包含的意思,等等。

大腦處理和理解自然語言

640?wx_fmt=jpeg

人腦在處理和理解自然語言的時候,整個大腦都在參與。比如人在參與聽speech的時候,人的整個大腦都參與其中,這比起光讓人去看一個東西,或者光讓人去做一個動作,就不一樣,看和做動作,大腦反應的東西還是有限的。但是語言理解的過程中,整個大腦都在參與。

有幾個重要的腦區是和語言密切相關的:布洛卡區域和維尼科區,發現這兩個區域也有上百年了,當時都是從失語症的病人診斷的過程中發現的,大腦有一些腦區專門負責語言的一些功能。

比如維尼科區負責詞彙,布洛卡區負責句法。患有失語症的病人的特點是:如果他們的布洛卡區受損,這些人說話就沒有語法,會蹦詞,但說的話基本都是一個一個詞,不能形成句子。而如果是維尼科區受損,他們說話聽起來是一個句子,但那些用詞都很怪,不能形成完整的語義。

整個大腦都參與了語義和語用的處理,這裡也有一定的研究成果。最近10年有一些研究成果。比如有一個假說,人語義的理解,其實是做大腦中simiuation。

舉一個例子,大猩猩有沒有鼻子,這個問題要怎麼回答?我們需要先想象大猩猩長什麼樣,然後才能回答,問的時候你要先想一下。有一個假說是,我們在回答之前,大腦裡先有這樣的一個表象,大量的Image,再做這個Image的處理。

語言理解就是把這些表象,這些Image聯絡到一起,每一個具體的概念,都有能夠聯絡到的壓縮好的表象,可能你也不能完整的記得大猩猩長什麼樣的了,但是不管怎麼樣,都會聯想到它的Image,所以語言的理解更多是在做表象的Simutation。

我們其實理解抽象的概念比如說“時間”,是非常難理解的,不好直接去理解時間的概念,都是把它對映到空間來幫助理解,形成一種固定的思維。比如說用時間軸來理解時間,把時間對映到一個實實在在的可以認知的概念上去。大量的心理學研究也表明,我們理解抽象的概念都是把它對映到一個客觀存在的實際的概念上去。

語義理解,是做一種模擬。舉個例子,Flying Pig,會飛的豬,這個現實當中沒有,就會去想,這種東西長什麼樣,這是根據每個人的經歷不同理解不同,如果你接觸的視覺上的刺激更多的是像小飛象那樣,大家會想到像一個豬長了兩個翅膀。語義的理解本質上是personal的,每個人的理解都不一樣。但是,我們語義的理解是要有共性的,因為要有交流。

總的來說,大腦的語言處理過程都是比較複雜,沒有定論。非常複雜的現象,本質是從符號對映到內部的表示,這裡面牽扯到詞彙,句法,世界知識和上下文。這裡重要的挑戰就是語言的多義性和多樣性。

語言的符號,對映到大腦的表示,其實是多對多的對映,比如有很多多義詞,不同的表達也可能是同一個意思,有同義詞,近義詞。所以語言和符號是多對多的表示,導致了語言的多義性,歧義性,這是語言處理中最有挑戰的問題。

人的大腦中語言的語義的理解,是一個非常複雜的事情,他有表象相關的,結合記憶中的Image,但是有一個觀點是:我們在大腦裡面不同的語義,一定是有這樣的表象來對映的。

640?wx_fmt=jpeg

舉個例子:I saw a girl in the telescope。這句話有兩種解釋:一個是用望遠鏡看到一個女孩;或者是看到一個帶望遠鏡的女孩,具體是哪個解釋我們也不知道,需要有上下文。最終解決歧義的問題,需要有上下文的。

一般來說大家不會意識到歧義,但是修飾的部分不一樣,就產生了很多歧義,人在理解句子的意思的時候,消除歧義的能力非常強,人都是很容易都會選擇同一個意思去理解,這說明我們現在人和計算機在處理上還有一定的不同。

語言理解是非常複雜的,大腦一共有1011 到1015 個神經元,這樣複雜的計算系統還是並行處理,我們每個人在做這樣複雜的處理。對話,是要去完成一個任務,特別是站在工程的角度來說,一定是要有一個任務的。

對話都是有目的的,比如聊天,聽起來好像沒有動機但是其實是希望交流,而且是動態變化的,話題會跳轉。為什麼計算機做這個比較難,因為計算機難以理解動態的目標變化。

所有的任務用我們現在的計算機都可以模型化這個任務,對話的目的就變成一個有限狀態積的形式,狀態就是表示對話到了某一個階段,到目前為止,它的所有的事情,這是非常重要的,表示起來非常複雜。

深度學習能做到什麼樣

對話至少有三大挑戰:歧義,多義,多樣,還有複雜性。那麼計算機能做成什麼樣呢?深度學習能做什麼樣?

單輪對話

首先,單輪對話。

單輪對話有三種形式:基於分析、基於檢索、基於生成。

基於分析是比如一個單輪對話針對一個分類問題,或者是一個結構預測的問題,那麼檢索就是一個匹配問題,生成就是一個翻譯的問題。這三種不同的方法它背後的區別就是這個有沒有顯式的語義表達。

基於分析的方法它是有顯式的內部表達,基於檢索和生成,就是部分有或者沒有顯性的這個內部的表示,這是這三個不同的方法的特點。

基於檢索的方法在聊天機器人中用的多,而問答系統中也是如此,只是將對話侷限在問答中。

還有基於生成的方法。在深度學習出來之前,這是有難度的,現在有深度學習基於生成對話的技術,其原理上是把問句,轉化成內部表示,再把內部表示為答句。在生成器和分析器中用了大量的訓練語料,基於神經網路來訓練表示實現。

多人對話

還有多人對話的技術,對現在的技術來說,刻畫多人對話是一個複雜的任務,用到了手寫有限狀態機。用機器學習的方法來做,對應是用強化學習來學習馬爾科夫的決策過程,以此實現對話系統。

因為有些任務很複雜,所以有時候單人完成任務比較難。比如要描述從北京到上海的航班要了解,起飛時間等等,一句話說不清楚,這時候就可以通過多人對話。

多人對話表示的過程需要藉助有限狀態機,具體的下一步動作需要動作選擇模組去執行,整體合起來對話管理是用馬爾科夫過程來表示,其實最後得到的也是內部的表示。比如先說要去上海,是否坐飛機,合適出發,目前所在地等等,通過多輪的對話確定對話內容的大概,再將內容表示送到知識庫對比,找到相應答案。這就是目前現在對話的技術。

自然語言對話

最近,自然語言對話也有一些進步,大概2015年,深度學習開始運用到自然語言處理,對自然語言的研究產生巨大變化,比如機器翻譯領域的進步很大,對話也是如此,很多基於分析,檢索,生成的方法,都用到了深度學習。多人對話中也是,現在用的最多的是深度強化學習,深度學習給自然語言對話帶了很大的變化,現在已經變成主流技術。

最近幾個例子,谷歌提出的Neural Symbolic Machines模型,特點結合符號處理和神經處理,其框架也是基於分析的模型,還有華為方舟提出的類似模型(Neural Responding Machine)。

在多人中,微軟提出層次化的深度強化學習Hierarchical Deep Reinforcement Learning。對話目標可以分層,展開和複述,將有限狀態機變成層次化。學習就可以用層次化甚至強化學習來做這樣的東西。

近段時間並沒有看到新的巨大的突破,但是還有很多地方可以進一步研究。

自然語言對話中的重要課題

接下來,我列舉一些圍繞著自然語言對話中比較重要的研究課題,比如語義落地,自然語言對映到內部的表示,這塊需要更深入的研究,還有就是對話的多樣性,不唯一。

很多知識以符號的形式儲存在計算機中,那麼該如何將符號處理和深度學習結合起來呢?這是一個重要的問題,其中的深度強化學習本身也有很多研究點,還有語言對話系統中包含的分層次和模組的,那麼怎樣用層次化和模組化的開發這種系統呢? 最後是我們學習的資料往往是不夠的,這使得端對端訓練一個對話系統是很困難的,那麼如何去解決這個難題呢?這些都是很有趣的問題。

構建一個像人一樣的計算機對話系統為何這麼難?如果有場景限定以及特定的任務,我們的對話系統會越來越好。但這裡的核心挑戰是,語言學習非常難,它是一個對映,對映有多異性和多樣性,其本質是我們不清楚人處理和理解語言的方式。

無法理解人腦的實際的機制,所以這個過程用計算機模擬是困難的。人腦和計算機都有計算功能,如果掌握了人的機制,那麼在原理上是有可能在計算機上實現人一樣的功能,在功能上實現人的對話功能。

總結

從功能角度,人工智慧的短期未來是聚焦在“合理行動的智慧機器”,人腦也算是一種計算機,所以從功能要去逼近人腦的處理,但這裡有多異性,多樣性,複雜度等等一些挑戰。

現在的技術,對於單人對話,還是基於檢索,分析,生成這樣的方法,而多人就是馬爾科夫決策這樣的過程。近3、4年,深度學習改變了自然語言對話,那些基本的對話都應用了深度學習,有時還會加上強化學習,但這些還遠遠沒有達到人的水平。可是我們也應該看到在未來的生活當中,會有越來越多的智慧對話系統,被使用,服務於人類。

雷鳴對話李航

深度學習現在再往上提升比較困難,那跟傳統的方法相比,提升會非常高嗎?未來深度學習會不會成為一個主要的方法?在自然語言處理上會有這種趨勢嗎?

深度學習強大的地方在於:1、近似大函式地學習,比傳統的簡單的機器學習模型更強大;2、有很多地方非常像人腦,像人腦在處理資訊。

但深度學習侷限的地方在於:1、使用時耗費的功耗、資料量超出人很多,跟人腦機制有很大差別。2、現在的深度神經網路,卷積神經網路,需要在各個層面:演算法層面,實現層面等等層面上進行研究。

其實很期待新的模型、新的演算法,在實現層面上,更好地去模擬人腦,去做處理。計算時低功耗,使用較少的資料,比現在做得更好,仍然是未來重點突破的方向,同時類腦計算是一個非常重要的方向。

基於深度學習運算的學習方式,和傳統方法,比如知識圖譜等等,有什麼有機的結合點嗎?有可能呈現出比單技術更好的研究效果嗎?

神經方法處理,一定程度上在做這些事情,有一定的挑戰,還沒有看到一些好的結果。我覺得這是很重要的研究課題。知識圖譜,是知識在腦中的表示,不夠豐富,對應是非常簡單的,歧義多義都會出現,知識需要更好地刻畫,讓計算機自己去學習,這是未來的方向。

機器學習在翻譯上最近做得很好,但都是靜態翻譯,像科大訊飛、搜狗翻譯機這種實時翻譯你怎麼看,在實時翻譯上會有哪些挑戰?

我雖然沒有直接做這塊工作,但我覺得是能夠完成的。同聲傳譯是有延遲的,計算機完全可以做好,人說完之後再去翻譯,主要的問題還是資料。

深度學習在自然語言處理裡,最大的突破就是sequence to sequence,把一個序列換成另外一個序列,不管是哪種序列和序列之間的轉換,只要有足夠多的資料,甚至是語言之間的轉換,這些都能做得還不錯。

現實當中還做得不太理想,是因為資料不夠多,怎麼去解決資料的問題,也是一個研究課題。

機器實時翻譯的時間差能夠壓縮到多少?

目前來看同步做翻譯,是非常難的。

在智慧音響在國內很火,現在也是音響大戰,從自然語言處理的技術來看,商業、使用者體驗的角度來說怎麼看?

從商業上說,智慧音響是智慧家居的控制點,大家都願意參與,所以智慧手機、智慧音響,還是蠻重要的;技術也是這樣,使用者資料、資金、人才投入很多,就能發展得更快。

下期預告

4/25下週三晚18:40,北京大學“人工智慧前沿與產業趨勢”第八講,將由奇虎360公司集團副總裁、首席科學家及人工智慧研究院院長為大家授課。

感興趣的小夥伴可以新增量子位小助手6:qbitbot6,備註“北大”,通過後可進入課程活動群,獲取每期課程資訊,與其他小夥伴互動交流。

祝大家聽課愉快~

學習資料

在量子位微信公眾號(QbitAI)介面回覆:“北大AI公開課”,可獲取前七講的相關學習資料~

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。

640?wx_fmt=jpeg

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態


相關文章