人語機器
人語機器
原創作者:法狗狗 NLP 數據科學家 - 邦德
有人說2017年是人工智慧的元年,因為 DeepMind 的 AlphaGo 在人類自認為最複雜的棋類遊戲上完勝,所以許多人認為計算機的智慧將會從這一年起在各方面逐步超越人類。的確,隨著晶元計算能力的增加,計算機在下棋、統計、識別等一些任務上已經能夠大幅度地超越了人類。但是,我們看得到的,在對於文字、語言的理解上,目前的計算機仍然比不上一個小孩,甚至我們對計算機是否能夠產生哪怕一丁點對於人類語言的「理解」都會爭論不休。
所以,隨著人工智慧、深度學習等技術的快速發展,我們到底能不能構造出能夠真正理解語言的機器?
1 什麼是語言
在討論機器是否「理解」語言之前,我們可以內省一下自己是如何學習和理解自己的母語的?「大漠孤煙直,長河落日圓」 簡單的一句話,描繪了一幅蒼茫的大漠晚霞,卻引起了人們對社會、國家、民族的無限瑕想,語言到底是什麼,為何能簡短地表達出如此多的內容?
1.1 語言是生物交流認知的一種方式
許多生物都會使用身體語言(行為、聲音、光)來向第三方表達自己的認知狀態。一頭狼在發現獵物時,會用嚎叫的方式呼喚同伴;一條狗在看到主人歸來的時候,會歡快地搖擺尾巴表達內心的興奮。螞蟻與蜜蜂會有一套極其精密溝通方式,來相互獲知食物的所在; 一些近似於人類的動物如青猴[1],也可以使用與人類類似的方式——喊叫來發聲提醒同伴區分到底是老鷹還是獅子來襲。
這些動物似乎都在一定程度上擁有自己的交流能力,但人類的語言卻是有別於這些動物的,因為人類的語言能夠更高效、更靈活、更精確地表達認知。人類的語言能夠自由地組合,精確地描述某一種狀態,如「門前的大橋的橋洞下有十隻鴨子」,表示的就是門前的大橋下的橋洞下游過鴨子的景象。這種語言能力是目前其他動物難以具備,也難以理解的。
2 誰能理解人類的語言?
如果說我們看不到現在有哪台機器可以真正地理解人的語言,那麼其他的擁有完美大腦的生物是否能理解人類的語言呢?
2.1 不講人話的狼孩
羅馬廣場上有一座著名的雕像,描述的是一個傳說。兩個孿生兄弟被殘暴的國王叔叔下令僕人把他們扔到河裡殺死,僕人把他們掛在河邊的樹上想要把他們淹死,但卻被一隻母狼救下,用自己的奶餵養他們長大,最後被一位牧人發現並帶回了家。最後兄弟倆成長之後,復仇並建立起了自己的國家——羅馬。
這兩兄弟是幸運的,在與狼生活了一段時間以後,仍然能夠回歸人類文明。但並非所有的狼孩都能像這兩位孩子那般幸運,許多狼孩從小與狼生活在一起,長大以後卻無法再習得人類的語言,也無法理解人類的社會。同樣,曾經有一位名叫吉妮的美國兒童出生後的第20個月起,即被父親單獨囚禁起來,與世隔絕。吉妮於13歲半被人解救出來以後重新學習語言(英語),但至今尚未完全習得。
這說明了,即使是擁有完全一樣的生理條件,但是缺少後天的學習和不能適時地學習語言,都會導致「狼孩們」失去習得人類語言的機會。所以,人類的基因中只有學習語言的能力,但本身並不附帶任何具體語言的內容。所以每個人從生下來都一樣,需要重新去學習語言。但反過來思考,只要具備合適的條件和恰當的學習,那麼理解語言是存在可能的。
2.2 通人語的寵物狗
作為人類最好的朋友,狗一直以有靈性著稱。特別是從小與主人一起長大的小狗,更是聰明靈俐,對於主人的命令、動作都能理解得非常到位。但這是不是真實的呢?因為心理學史上有一匹著名的很聰明的馬,叫做漢斯,它經過訓練,可以計算十以內的加減法。但後續的研究表明,漢斯並不是真的會算術,而是通過觀察主人的反應,知道跺腳到第幾下停止。
同樣也有一條小狗 Rico 懂得200多個名詞,包括各種物品的名稱,也包括顏色、形狀等等辭彙。但實驗表明小狗Rico 是真的能夠聽懂那些詞並且可以通過推斷來學習新詞。例如,把一個新的黃球和它已經認識的紅球和橘色球放在一起,對它說:「把黃球拿過來。」Rico雖然不懂黃球是什麼,但它發現,這堆東西中混入了個奇怪的從沒見過的東西,因此它推斷出,這個大概就是黃球了,於是把它撿了出來,並且在新單詞和物品之間建立起聯繫[4]。
這是因為狗是最早(大概在14000年到16000年前)被人類進行馴化的動物,所以在被馴養期間,它們的生存環境、飲食情況都與人類有非常相近的地方,而且狗從小就會與人進行交互,所以狗的認知體系會與人類有很大部分的重合。在這種情況下,狗做出的一些行為也更容易被人理解,人的一些行為也有可能會被狗理解。
狗的語言學習能力是在眾多的動物中獨特存在的,它們與人類學習單詞時的方式極為相似,即使是人類的近親—— 猿、猩猩等靈長類,雖然也可以學會很多單詞,但它們的學習方式卻與人類相差很遠,無法用一種被稱為「快速映射」的方法進行學習。
所以以上狗的例子說明了,動物如果要理解人類的語言,有了強大的腦子,還不能光在田裡奔跑,它需要融入到人類的社會,與人類有直接、強烈的交互,最後才有可能產生像人類一樣理解事物、理解語言的認知結構。
2.3 天外飛星
2017年上映的電影《降臨》講的是一群外星生物來到地球,想要給可愛的人類送一份來自未來的禮物,但發現無法與人類溝通,所以一不小心把「禮物」表達成了「武器」,與人類產生了極大誤會,最後差點毀掉了人類未來。
但電影的最後還是給出了一個好的結局,兩個物種之間實現了文化互通,最後相互拯救。但我覺得電影還是表達得太過於樂觀了,在現實中我覺得兩個星球之間交流應該會比電影里描述得要更加複雜,因為兩種生物在不同的物理條件之下,會有極大的初始條件和發展路徑的不同,這種情況下演變出來的社會和文化,會與地球上有極大的不同。這其中的差距恐怕比人與狗之間的差距還要大得多得多吧。
但也不是完全沒有可能,我們要在溝通時抓住一些宇宙間的共識。比如宇宙中的生命都需要能量,生命都需要生存,雙方都有身體的存在必要性等。基於共識的基礎去溝通和交流,才有可能產生理解。
這就像來自不同地區的人類,想要相互理解對方,也要從各自的認知體系進行入手。比如對於一個施行天葬的藏族同胞來說,他看到文字「老王拿著鋤頭要埋葬他的寵物」,就會感覺到奇怪,埋葬一具動物的屍體為什麼要拿著鋤頭。而你需要告訴他的是,土葬也是一種處理死亡屍體的方法,而這種方法需要把屍體放在地下,所以需要拿著鋤頭去挖出坑來。
只有通過對方之前就能理解的事實來去解釋另外一個事實,才能讓不同文化的人去真正地理解一個他們之前從來沒有遇到過的事實。
所以這也表明了,理解人類的一句話是需要調用自己大量之前學習到的生活常識的。有共同的常識基礎,可以幫助人更快地理解語言表達的場景。一旦缺乏更多的上下文輔助、缺乏常識,會使得這個場景很迷糊,只有通過攝入足夠多的輔助性事實才可以幫助人越來越精確地理解場景。
3 那計算機呢?
以上說了各種人、狗、獸、外星人,那麼計算機到底能不能理解語言呢?
3.1 什麼是理解
我認為「理解」是指兩個或兩個以上的人對同一事物形成了共識。比如有一張被許多人認為上面是小貓的照片,而另外一個人 A 也認為這是一張小貓的照片。那麼我們可以說,A 理解了這張照片的內容。
如果要從一個更具體的角度來講就是,幾個人看了同一個東西,能激活相類似的大腦區域就算是理解了。
對於人,我們可以用腦部 fMRI 圖來進行理解,那麼對於其他物種我們怎麼去理解「共識」?當人與狗同時看到一隻球的時候,我們怎麼定義它們都知道的是同一個東西?
上圖中人腦、狗腦、電腦,三種腦看到一隻籃球後,產生的大腦激活圖像和映射成的一串數字,他們之間到底是否可能存在著等價關係?這也就是說,狗和電腦是否能在看到籃球之後,真正地與人類一樣理解眼前圓乎乎的是一個什麼東西,是否能理解它是一隻用牛皮製作的拍打能跳起來的物體?
但我只能說這三樣東西都跟目前的神經網路一樣,是一個不折不扣的黑箱。沒有人知道其中一個部位亮起來會怎麼樣,也沒有人知道其中的一段數字10010101意味著什麼。所以很遺憾,我們無法直接比較他們之間的等價關係,無法判斷兩者之間是否真的產生了共識。
3.2 如何校驗與產生理解?
如果我們無法從兩個系統的內部狀態來推知其等價性,那麼只有可能從外部探究系統的等價性了。
DeepMind 的文章[5]中提出了使用認知科學的方法來探究神經網路黑箱的方法。對於一個已有的物體識別神經網路,作者設計了許多圖形探測物(Probe),用於測試神經網路在圖像識別上的偏好。
如上圖所示,數據包含三列,第一列是顏色匹配(Colour Matching)圖像,第二列是形狀匹配(Shape Matching)圖像,第三列是探測物圖像(Probe)。通過計算探針圖像被神經網路識別成哪一類,我們可以用來測算神經網路在識別時,對於圖像特徵的識別偏好。根據測試,當神經網路被測試了10-20萬次之後,會有大約80%的幾率會將探測物圖像分類到「形狀匹配」這一列中。
從這個測試中,我們可以看到,訓練好的神經網路更傾向於使用形狀這個維度去識別物體,而不是傾向於使用紋理及顏色。
所以圖像識別的黑箱可以被圖像的探測物來探究系統內部識別物體的原理,當然我們也有可能使用語言問題作為探測物去探究系統內部的樣子。
在一篇文章[6]中,作者建立了一個虛擬的遊戲環境(Task & Talk)和訓練了一個神經網路系統用於識別物體和產生語言(訓練、測試、可視化的代碼可以在作者的 Github 上看到 )。在這個虛擬環境中,有一個問問題的機器人 Q 和一個回答問題的機器人 A,機器人 A 能夠看到由各種顏色、形狀和風格組成的物體,而機器人 Q 什麼也看不見,Q 只能問機器人 A 問題,然後通過 A 的回答中猜測 A 看到的到底是什麼東西。
如上圖所示,機器人 A 可以看到的可能的物體(Instance)屬性——形狀、顏色、風格,總共4x4x4=64種。而機器人 B 可以執行的任務(Task)每次只能詢問兩個屬性,比如「顏色和形狀是什麼?」,「形狀和風格是什麼」等。
每個回合中,機器人 Q 都會帶著一個詢問任務去詢問 A,但對於這個詢問任務 Q 與 A 都不知道是什麼意思。然後 A 必須要回復一個信息給 B。A 與 B 交流時,只能使用一個特定數量的的辭彙表。
機器人 Q 可以與機器人 A 交流兩輪,並在最後一輪的時候猜測實際物體到底是什麼。如果猜對了,那麼 A 與 B 都會獲得獎勵;如果猜錯了,那麼 A 與 B 都會受到懲罰。
每個機器人都包含著許多的非線性神經網路,可以將外部的輸入轉變成內部狀態,同時也可以將內部狀態轉變成外部的表現(聲音等),其配置如下圖所示。
這個交流的輪迴(看物體、交流2輪、最後猜測)會進行50-200次,使得最後猜測的準確率不斷增加。最後當系統的準確率穩定之後,系統就生成了一套特定的交流溝通語言。
這個場景可以想像成是原古時候的兩個人,都還沒有自己的語言。但是有一個原始人 Q 掉在了一個很深的洞里出不來,而另一個原始人 A 在洞外面,外面有許多食物。這時候原始人 Q 想吃洞外的東西,比如說 Q 想吃一根香蕉,就會發出嗚嗚的聲音嘗試與 A 交流,而 A 在聽到聲音之後,會去猜想 Q 想要吃什麼,但一開始猜不透,於是拿了一個紅蘋果給 Q 看,Q 一看,發現不對於是大哭。A 於是知道自己拿錯了,於是又回去拿別的水果來給 Q,終於在拿對了香蕉之後,Q 大聲歡呼,露出高興的樣子。這樣久而久之,兩隻原始人就產生了對於這幾種水果的描述語言,比如短嗚一聲就是香蕉,長嗚一聲就是蘋果等等。
但是文章中也指出,僅有當需要被描述的物體種類很多,而我們能發出的聲音種類(辭彙表)有限時,機器人就會傾向於產生組合性的語言,比如產生如「紅蘋果」,「綠蘋果」,「黃蘋果」,「黃香蕉」,「綠香蕉」等組合性的詞語。
類似的一篇文章[7]中也介紹了另一種場景下,機器與機器之間還可以產生指代性的詞語,和指令式的動詞(如下圖)。更複雜的三隻機器人之間產生的交互,會使得語言的生成比兩隻機器人的 Talk&Task 任務中生成的更具有組合性、更多樣化。
如圖8所示,此圖中有4個離散的時間點,每個時間點,每個機器人都會發出自己語言,語言用於描述給對方的任務。例如第一行中,綠色的機器人(大綠圈)在 t=1 時刻說了 GOTO,t=2 時刻說了 GREEN,兩個時間點連在一起就是「GOTO GREEN」(讓另一個機器人去綠色的目標點處)。後面三行中因為機器人個數的增加,描述任務的機器人產生了指代詞語(RED-AGENT,指定讓紅色機器人執行任務)
我們可以看到,以上兩篇用機器之間的交互來形成語言系統的文章,說明了兩個或兩個以上的機器人在同一認知環境中存在一種協同進化的可能,而語言就是協同進化後的最終結果,用於統一雙方的認知。而且還有很重要的一點就是,形成的語言具有「組合性」,因為只有具有組合性才符合人類語言的特性,才有可能進一步進化出更複雜的語言系統。
我們可以看到,機器之間的交互最後形成語言系統的文章,說明了兩個或兩個以上的機器人在同一認知環境中存在一種協同進化的可能,而語言就是協同進化後的最終結果,用於統一雙方的認知。而且還有很重要的一點就是,形成的語言具有「組合性」,因為只有具有組合性才符合人類語言的特性,才有可能進一步進化出更複雜的語言系統。3.3 人與機器
機器與機器之間可以通過交互試錯來形成語言並達成共識,那麼人與機器之間應該如何形成共識呢。ACL2016 的一篇文章中[9]設計了一個名叫 SHRDLURN的遊戲(Demo/Paper/Code請訪問這裡)。在這個遊戲中,機器並不懂人類語言,在語言不通的情況下,要人類使用自然語言,讓計算機完成特定的任務——挪方塊。只有人類這方可以知道方塊需要達到的狀態,機器是不知道的。
所以每當機器看到人類的語言時,它都會做出一些它覺得「最正確」的反應(但一開始往往有很大概率是錯的),然後人類可以通過交互去教它做出正確的行為。最後機器會越來越理解人類的語言,甚至也能理解人類語言中「組合性」的存在。
4 未來的理解之路
4.1 構建虛擬的認知世界
從上面的說明中,我們可以看到不管是人還是機器,學習語言都會是一個不斷嘗試、共同進化的過程,語言因為交流而存在。但這要建立在雙方能夠有相互理解的認知世界的基礎上,例如 Q、A 機器人必須要理解什麼是「藍方塊」,「紅圈圈」,從而能夠從認知中修正語言,最後準確地傳遞認知;又比如說,SHRDLURN 遊戲中的機器人和交互的人都需要通過同一個認知世界來理解什麼是「將黃方塊加在藍方塊之上」的行為和結果。
當然,一些實體、行為在機器的認知世界中能夠容易地創造出來,而且以上的事實也證明了計算機有理解和表達這些實體、行為的能力,但是難點是對於一些虛擬的概念,比如「家庭」、 「社會」、「拉肚子」、「思考」,這些概念就很難在虛擬世界中構造出來,再有就是一些包含了時間這個維度的詞語,「以前」、「將來」等等,如何構造一個環境能夠讓機器去理解它們,可能是未來需要研究的點。或許未來能夠真正理解自然語言的程序會是像《模擬人生》這麼一款遊戲。
再有就是,機器人如何能在其認知世界中,形成推理。比如方位推理——「紅色的方塊在藍色方塊的上面,那麼什麼顏色的方塊在紅色方塊的下面?」,時間推理——「這一周我都在公司上班,請問我周一在幹什麼」,這都需要認知世界的存在與基於認知世界的推理才有可能。
回頭看看目前的主流自然語言處理方法中,主要使用了統計方法來形成了語言模型(Language Model)。在語言模型中,我們認為一個字的出現是與其上下文有關係的。比如用戶說「我要上洗手__」,最後一個字的出現就可以被唯一確定為「間」字,因為通過統計發現99%的「上洗手」後面都會跟著一個「間」字。這被稱為序列語言模型。
又比如,科大訊飛在公開聲明中公布其閱讀模型已經在醫學實務考試中超越人類的平均分數。但是其真的與人一樣具備了閱讀、理解甚至推理的能力了嗎?其實並沒有,它只是一個使用了語言模型的概率選擇填空遊戲而已。
又比如,在我們法狗狗所在的法律推理領域,有些時候並不一定需要使用一個完全的認知世界模型,因為在法律中的概念都是一些聯繫著大量社會、文化概念的,我們無法立即模擬出來。雖然無法做到對虛擬概念的真正映射,但對於虛擬概念的推理,卻有著大量的法律法規可以來去做一些法理邏輯上的推演,最後可以計算是否存在邏輯上的合理或不合理。所以對於一些狹窄的語言推理應用,並不一定需要一個龐大的 Grounded World(映射到真實的世界中)來去實現推理,可以把真實世界的模型精簡再精簡,最後精簡成一個足夠完善的符號推理世界(知識圖譜)可能就能完成一部分的需求。
但最終,人類的理解都是落在人類對於世界的理解之上的,所以只有通過對人類文明、物理世界不斷地建模,才有可能使得機器真正地理解語言。
參考
[1] 人類簡史 P23-P24
[2] [子非魚,安知魚之樂?——我們如何知道動物在想什麼](https://zhuanlan.zhihu.com/p/33552157)
[3] [Dog Emotion and Cognition — Coursera](https://www.coursera.org/learn/dog-emotion-and-cognition/home/info)
[4] [狗能聽懂人說話嗎?—— 像幼兒一樣學話](https://zhuanlan.zhihu.com/p/33678959)
[5] [Cognitive Psychology for Deep Neural Networks: A Shape Bias Case Study](http://cn.arxiv.org/pdf/1706.08606v2)
[6] [Natural Language Does Not Emerge 『Naturally』 in Multi-Agent Dialog](http://cn.arxiv.org/pdf/1706.08502v3)
[7] [Emergence of Grounded Compositional Language in Multi-Agent Populations](http://cn.arxiv.org/pdf/1703.04908v1)
[8] [Learning Cooperative Visual Dialog Agents with Deep Reinforcement Learning](http://cn.arxiv.org/pdf/1703.06585v2)
[9] [Learning Language Games through Interaction](http://cn.arxiv.org/pdf/1606.02447)
推薦閱讀:
※016【NLP】word2vec新手項目
※機器學習中的數學基礎(簡介)
※第三章 自然語言理解的技術分類及比較
※下半年寫作計劃
※爬取bilibili彈幕製作詞雲