從認(rèn)知和邏輯思維的角度談?wù)勛匀徽Z言理解
自然語言理解(NLU)是很難的問題, 從幾十年前AI誕生到現(xiàn)在, 語言理解一直都是AI一座無法攻克的冰山。一方面, 語言是對(duì)我們所感知到的客觀世界的符號(hào)化, 就如同畫在原始人洞穴里那些似是而非的象形文字, 連接著每一個(gè)真實(shí)世界經(jīng)常出現(xiàn)的事物。 另一方面, 語言是人類思維的載體, 它就像是自然產(chǎn)生的計(jì)算機(jī)程序,描述邏輯,因果, 事物運(yùn)行的方式 。
人類引以為傲的認(rèn)知能力, 都是以語言為載體進(jìn)行的。 這種能力包含與感知能力相對(duì)的對(duì)世界進(jìn)行概念化,結(jié)構(gòu)化, 預(yù)測(cè)推理等不同能力的總和, 通常以符號(hào)相互連接的某種圖結(jié)構(gòu)表達(dá)。從這里看自然語言的理解, 其實(shí)就是要學(xué)習(xí)到單詞背后所指代的真實(shí)世界的概念,以及符號(hào)和符號(hào)之間所隱藏的人類認(rèn)知的思維過程。
那么相應(yīng)的要構(gòu)建一個(gè)完全理解自然語言的模型, 顯然做到兩件事, 1, 它需要知道每個(gè)單詞背后概念的感知概念 (把“貓”的符號(hào)與背后的視覺概念做對(duì)齊, 類似多模態(tài)感知), 2 它需要真正掌握自然語言背后所蘊(yùn)含的人類認(rèn)知能力。 我們就先來關(guān)注一下后者。
假定一個(gè)完全沒有見過客觀世界的人, 在純粹文本的空間里翱翔,它是否可以學(xué)習(xí)到語言背后的所有人類認(rèn)知呢?我們可以想象這樣一個(gè)具有無限記憶力, 可以在網(wǎng)絡(luò)空間任意窺視的爬蟲, 它可以不停的反復(fù)窺視和推敲文字的前后銜接, 來理解人是怎么思考這個(gè)世界的。它可能最終可以完美的猜測(cè)你說了一句話, 下一句你想說什么 , 這就是當(dāng)下自然語言生成模型(如GPT)在做的事情了, 它是否具備了人類的認(rèn)知能力呢?邏輯是人類認(rèn)知最具有標(biāo)志性的思維方式, 那么我們就先把認(rèn)知等同于邏輯, 思考這樣的自然語言模型是否掌握邏輯認(rèn)知。
我們可以根據(jù)知乎 甄景賢 的文章BERT 的邏輯化, 我對(duì)這個(gè)問題進(jìn)行了梳理。 一個(gè)能夠在人類文本里肆意窺視并預(yù)測(cè)的爬蟲, 到底掌握了什么樣的能力呢?
這只生活在自然語言空間的爬蟲, 表面上在根據(jù)上下文回答問題, 但是其實(shí)質(zhì), 是對(duì)文章背后所反應(yīng)的事實(shí)進(jìn)行解釋和重構(gòu)的過程。這點(diǎn)上, 語言作為一個(gè)符號(hào)和符號(hào)組成的結(jié)構(gòu), 本質(zhì)上與一個(gè)概念圖對(duì)應(yīng), 而概念圖又對(duì)應(yīng)真實(shí)世界的物理過程和社會(huì)事件。
如果把單詞看作是語言的單元, 那么單詞無非是被命名的概念(但不是一一映射的,某個(gè)單詞可以是多義的),而句子則是若干概念組成的事件圖。通常情況下句子都符合一定的語法, 語法的本質(zhì)就是通常情況下概念和概念連接的方式。比如主謂賓形式對(duì)應(yīng)一個(gè)三元組(某個(gè)主體產(chǎn)生一個(gè)動(dòng)作于一個(gè)客體上, 例如小明吃蘋果),也就是兩個(gè)節(jié)點(diǎn)被一個(gè)邊相連的情況。 一個(gè)自然段落就是多個(gè)三元組一個(gè)個(gè)相繼出現(xiàn)的過程, 這些三元組描述的事件構(gòu)成一個(gè)真實(shí)發(fā)生的過程,這些事件不是簡單的堆疊, 而是被上帝的針線精密的連接起來, 它就是邏輯。
邏輯的本質(zhì)是結(jié)構(gòu)化的思維過程。邏輯的古希臘語原型logos就是言語 。邏輯和因果關(guān)系緊密, 甚至有人認(rèn)為二者幾乎一致, 我認(rèn)為兩者的區(qū)別在于因果更關(guān)注真實(shí)性,是一種真實(shí)世界里的邏輯, 而邏輯在思維和符號(hào)的世界里, 只要具備自洽的結(jié)構(gòu), 不至于產(chǎn)生悖論,就可以成立,因此范圍更大。邏輯能夠匹配真實(shí)世界, 一定是因?yàn)樗慕Y(jié)構(gòu)構(gòu)成符合某種自然造物的規(guī)律(想象一些世界就是一個(gè)由各種基本作用力構(gòu)成的巨大網(wǎng)絡(luò))。
邏輯的推演過程一般分為indution(歸納), deduction(演繹)和abduction(溯因)。這三種分別負(fù)責(zé)連接結(jié)構(gòu)的產(chǎn)生, 和基于這種結(jié)構(gòu)的演化。Induction會(huì)從特例里建立一般的聯(lián)系。而deduction, 則根據(jù)現(xiàn)有的命題, 和已知的結(jié)構(gòu), 推出新的命題 。對(duì)這些推理步驟的反復(fù)應(yīng)用 ,可以通過簡單的規(guī)則把非常遙遠(yuǎn)的事實(shí)連接起來。
這樣來看, 這只自然語言世界的爬蟲至少掌握了兩件事 1, 語法構(gòu)建 2, 事物和事物之間,事件和事件之間通過邏輯的連接關(guān)系。語言的生成過程本質(zhì)就是一句話生成下一句話的過程,它體現(xiàn)語言背后的概念(事件圖結(jié)構(gòu))的相互作用, 而產(chǎn)生新的節(jié)點(diǎn)和邊的過程,這對(duì)應(yīng)的就是邏輯推導(dǎo)。一個(gè)完美的生成自然語言的模型, 某種程度上確實(shí)具備了這樣的邏輯。
我們?cè)谡f每句話的時(shí)候都在自覺不自覺的反應(yīng)背后的邏輯思考過程, 比如”動(dòng)物死了,深埋入土, 肉體分解,尸骨保留。“ 對(duì)著一連串的事件,幾乎前面一句都是后面一句的起因, 后一句都是前一句的導(dǎo)出結(jié)果。如果沒有這種前因后果的邏輯, 那就會(huì)讓人感到無法理解。
但是相比計(jì)算機(jī)程序,其實(shí)自然語言背后的邏輯更加難以理解和掌握。因?yàn)樗袃蓚€(gè)缺點(diǎn),一個(gè)是中間的大量結(jié)構(gòu)化信息經(jīng)常被省略(類似蘇格拉底 (是人, 人都會(huì)死)會(huì)死), 這也就是我們經(jīng)常說的常識(shí), 二是它的結(jié)構(gòu)不一定是嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)邏輯。
比如“我老婆覺得她的老板不夠聰明, 她要換工作了, 我很為她擔(dān)心“,這體現(xiàn)一個(gè)事件到事件根據(jù)基本規(guī)律進(jìn)行推演的過程, 老板不聰明 - (老板不聰明 , 則公司沒有前途。公司沒有前途,則員工沒有前途) - 老婆(員工)換工作- (老婆換工作, 則面臨人生不確定性) - 我擔(dān)心她 。這是一個(gè)典型的deduction的過程, 但隱藏了大量的約定俗稱的常識(shí), 表露在語言中的只是部分命題, 而大部分背后的推理結(jié)構(gòu)是隱藏的,這也是自然語言難以理解的原因 ,我們需要不停的從只言片語里進(jìn)行溯因, 從我們的記憶里找尋暗信息來解釋。
同時(shí), 我們通常說某人說話沒有邏輯, 有人說話有邏輯, 這反應(yīng)了語言本身并非精確的公理化的邏輯, 而且每個(gè)人背后的公理系統(tǒng)也不盡相同(雖然同處一個(gè)時(shí)代和文化的人應(yīng)該大部分是相同的), 這是它和我們狹義理解的數(shù)學(xué)邏輯的一個(gè)區(qū)別, 更加接近一種非公理化的模糊邏輯。
因此, 這個(gè)能夠不停預(yù)測(cè)腦補(bǔ)下文的自然語言爬蟲并不簡單, 它不僅僅發(fā)現(xiàn)了一段文字背后隱藏的結(jié)構(gòu), 而且還需要不停的把文字里表露出的實(shí)體不停的和腦中常識(shí)結(jié)構(gòu)進(jìn)行綁定, 來處理這種模糊的邏輯。我們先說前者,這里面就包含了三種基本的運(yùn)算, 一個(gè)是entity dection(實(shí)體概念提?。?, 一個(gè)是structure selection(結(jié)構(gòu)選擇和匹配),一個(gè)是variable binding(將實(shí)體與結(jié)構(gòu)綁定)。
entity detection可以從語言里根據(jù)語法得到主謂賓這樣的基礎(chǔ)結(jié)構(gòu), 從而發(fā)掘出單詞背后實(shí)際表達(dá)的概念(以經(jīng)典的三段論蘇格拉底會(huì)死為例, 首先挖掘出蘇格拉底是人)。而variable binding可以把名詞和其背后的本體結(jié)構(gòu)相綁定(人是一種會(huì)死的動(dòng)物),從而進(jìn)入演繹推理(蘇格拉底是人,所以會(huì)死),這就完成了理解, 當(dāng)然也會(huì)關(guān)聯(lián)到一些新的命題(比如蘇格拉底要吃飯, 要喝水, 有七情六欲)。
這樣能夠完美預(yù)測(cè)下文的模型到底存在與否?答案是否定的, 但是我們的確在不停逼近這個(gè)答案, 而且走了一大步, 這一大步,就是transformer。我們用之前分析的觀點(diǎn)看看transformer模型結(jié)構(gòu), 會(huì)發(fā)現(xiàn)它的確是為理解自然語言而生的。我猜測(cè)self attention就像是為這幾個(gè)功能而生的。一個(gè)句子進(jìn)來, 它首先被離散化成一個(gè)個(gè)單詞token的集合,然后 Q,K,V就像是指針一樣, 將這些單詞實(shí)體映射到背后的概念,實(shí)現(xiàn)實(shí)體的識(shí)別和概念的綁定, 而
則通過累加和乘積的形式,實(shí)現(xiàn)文中概念和概念的一個(gè)全連接圖, 它代表了所有可能的命題結(jié)構(gòu)(主謂賓), 并最終得到新的一組可能的命題結(jié)構(gòu), 通過后面的全連接層(類似一個(gè)命題結(jié)構(gòu)的詞典),得到新的命題(句子)。 通過層數(shù)的增加, transformer可以組合得到從簡單到復(fù)雜邏輯的嵌套結(jié)構(gòu),也就是實(shí)現(xiàn)全文級(jí)別的推理。
Attention is all you need
Transformer Feed-Forward Layers Are Key-Value Memories Attention is all you need
GPT-3 在文本的生成上已經(jīng)越來越以假亂真,但是有些時(shí)候卻依然像是兒童的臆語,而非嚴(yán)謹(jǐn)?shù)某扇苏Z言, 這個(gè)關(guān)鍵差距在哪里呢?就是剛剛講的單純的人類語料往往是一種模糊的邏輯, 中間欠缺大量信息, 推理也不嚴(yán)格。 如 果要讓它在掌握人類的認(rèn)知上再進(jìn)一步, 就需要把這種嚴(yán)格的常識(shí)邏輯補(bǔ)回來, 而不能僅僅是語言概率建模。
事實(shí)上常識(shí)邏輯這條線AI系統(tǒng)早已為之,從經(jīng)典的圖算法到GNN這類的深度學(xué)習(xí)算法。從一開始依賴于規(guī)則做問答到后面用GNN在知識(shí)圖譜上學(xué)習(xí)規(guī)則。從AI產(chǎn)生的初始階段,人們的目標(biāo)就是制造一個(gè)通用解決問題的具有邏輯的系統(tǒng), 也就是當(dāng)下我們說的AGI。
由于無法解決最一般的問題, 這一分支的努力很快便成了細(xì)分領(lǐng)域的專家系統(tǒng)。它們采用符號(hào)來描述專家知識(shí),并以三元組,類似知識(shí)圖譜的形式存儲(chǔ), 并根據(jù)一定的條件執(zhí)行推理。它們的弱點(diǎn)是學(xué)習(xí)不容易, 靈活性較差, 維護(hù)成本高,而且, 就像剛剛討論的, 人所使用更多的是一種模糊邏輯而非嚴(yán)格的數(shù)學(xué)公理邏輯。當(dāng)然, 也有一些另類的努力, 做的就兼容了這些特性。比如王培教授的NARS系統(tǒng)。它是一套可以學(xué)習(xí)演化的非公理化的邏輯機(jī)器, 可以執(zhí)行一般性的命題推理。 并且通過模擬人腦認(rèn)知的不同特點(diǎn), 比如事件認(rèn)知, 目標(biāo)行動(dòng)認(rèn)知,情緒自我認(rèn)知,實(shí)現(xiàn)推理基礎(chǔ)上的行為控制。
NARS系統(tǒng)的特點(diǎn)是任何一個(gè)自然語言的句子, 都被理解為一個(gè)主謂賓的命題結(jié)構(gòu), 并且作為一個(gè)證據(jù)進(jìn)行歸納, 增加公理系統(tǒng)的一條新的邊, 或?qū)σ延械倪呥M(jìn)行更新。比如說企鵝會(huì)游泳, 它會(huì)自動(dòng)的推演南極的企鵝會(huì)游泳,但也會(huì)推倒出鳥類會(huì)游泳,只是前者的置信度高,后者的置信度低。因此它在接受一個(gè)自然語言的證據(jù)后,會(huì)同時(shí)使用induction, deduction和abduction形成新的命題,某種程度類似人類的類比和聯(lián)想能力。
我們來看如何借鑒這條路線的工作加強(qiáng)NLU自然語言理解:
(1) NLP與常識(shí)圖的結(jié)合
我們知道大規(guī)模預(yù)訓(xùn)練自然語言模型如bert和gpt已經(jīng)蘊(yùn)含了大量的語言結(jié)構(gòu)信息, 如語法, 和蘊(yùn)藏在語言里的概念和概念間的關(guān)聯(lián)。既然純粹自然語言包含大量隱含常識(shí),我們自然會(huì)想到以某種方式補(bǔ)充,比如知識(shí)圖譜。這就如同我們的大腦會(huì)用長期記憶里的概念常識(shí)去詮釋語言文字,從而將文字的概念與記憶中的模型對(duì)齊來實(shí)現(xiàn)理解。通過知識(shí)圖譜來增加語言文字的信息也就成為一個(gè)NLU很重要的方向, 在這個(gè)過程里, 每個(gè)單詞被選擇讀取, 它背后關(guān)聯(lián)的概念常識(shí)也可以同時(shí)進(jìn)行展開, 一種最簡單直接的方法,當(dāng)然是直接將kg和自然語言模型融合, 如K-Bert
K-BERT: Enabling Language Representation with Knowledge Graph
有些則需要加入融合的embedding。將知識(shí)圖譜的內(nèi)容通過預(yù)訓(xùn)練形成其隱式編碼, 在進(jìn)入到自然語言模型的text decoder 。這些知識(shí)圖譜里的知識(shí)就像外掛一樣可以被加載和讀取。
KG-BART: Knowledge Graph-Augmented BART for Generative Commonsense Reasoning
也有一些則更融合的更為徹底, 把對(duì)文本的encoding和對(duì)圖的encoding先分別執(zhí)行, 再融合, 使語言序列可以時(shí)刻關(guān)系到其背后的概念網(wǎng)絡(luò):
Knowledge-Aware Procedural Text Understanding withMulti-Stage Training
(2) NLP與邏輯規(guī)則的結(jié)合
那么除了規(guī)則, 現(xiàn)實(shí)的induction, deduction, abduction 的邏輯法則能否幫助NLP的文章理解呢?當(dāng)然可以。很多面向任務(wù)扽對(duì)話系統(tǒng)就是這樣的例子。
首先通過意圖識(shí)別找到人類語言背后的真實(shí)原因, 然后通過一個(gè)belief tracker不停的在對(duì)話中尋找用戶可能的狀態(tài), 并選擇需要執(zhí)行的干預(yù), 最終通過generation network啊這種干預(yù)轉(zhuǎn)化為自然的語言和用戶進(jìn)行交互,引導(dǎo)客戶完成目標(biāo)。這就很靈活的把邏輯結(jié)構(gòu)放入到了自然語言生成中。
最后總結(jié)下:
NLP理解問題的本質(zhì)是( 1)概念定位 (2)合理的潛入某個(gè)符合邏輯的內(nèi)部結(jié)構(gòu)(3)讓這種結(jié)構(gòu)最自洽的解釋文本中出現(xiàn)的所有單詞。
NLP生成問題背后的本質(zhì)是 (1)概念定位 (2)挑選合理的邏輯規(guī)則和結(jié)構(gòu) (3)進(jìn)行推理進(jìn)行生成新的邏輯statement (4)翻譯成表象的語言形式 。
這兩者其實(shí)需要的結(jié)構(gòu)類似,一個(gè)好的生成模型應(yīng)該也具備好的理解力。
當(dāng)然這些角度依然是拋磚引玉, 如何把兩者真正融合, 讓自然語言模型的靈活性補(bǔ)其之前的邏輯系統(tǒng), 而邏輯系統(tǒng)的嚴(yán)格性,常識(shí)的穩(wěn)定性控制自然語言模型, 是一條意義極為深遠(yuǎn)的道路。