常識推理和組合泛化 (commonsense & compositionality)
(PS. 本文首發於知乎~ 地址在這)
在開始正文之前,我們先來想象一下這樣的場景:有個人問你說,“你的辦公室能不能養一只長頸鹿?”你會怎么回答?
你可能會馬上回答道,“當然不行”。
即使你很可能從來沒有想象過有只長頸鹿住在你的辦公室里默默啃榕樹的樣子,但也能很快地給出反應。
這說明了你不僅了解這個世界,並且還知道如何快速地運用自己對於世界的認知來處理以前沒遇到過的事情。
要是再細究為什么這行不通呢,你可能會分析道:長頸鹿是一種很高的動物、辦公室是一個室內的屋子,里面裝不下這么高的動物……這些都是人盡皆知的事實,早已存在於你我的腦海中。可見,人們之間的溝通其實伴隨着大量的假設背景。我們假設每個人都對世界有一定的了解,這些共識構成了溝通的基礎,才使得人類能夠快速、高效、有深意地溝通。
反觀如今的深度學習模型,幾乎都不具有人類這樣的推理能力,而主要靠數據驅動。一般的訓練過程可能是這樣的幾個步驟:首先獲取一堆訓練數據,定義好輸入和輸出,通過損失函數梯度下降優化權重使得模型的輸出和ground truth盡量一致,最終在訓練集上收斂。這樣的結果導向就可能造成模型偷懶走捷徑,在訓練中去擬合一些無關緊要的數據構成,無論得出答案是依據是什么,只要使得輸出正確就好了,而沒有學到真正的知識。這就導致了深度學習模型缺乏泛化性,不能適應新的情況,出現類似“黑天鵝”事件(因為只見過白天鵝就所以認為所有的天鵝都是白色的,不認識黑色的天鵝)。正因為缺乏成熟的推理機制,汽車自動駕駛等AI系統在面對新事物時就可能會做出一些難以預料的反應。
由於現實世界中概念的組合是無窮無盡的,缺訓練數據就補訓練數據的方法只是杯水車薪。而人類的推理能力是及其復雜的,它依賴於概念化(conceptualization) 和 組合性(compositionality)。概念是人類心理上對於對象和類別的抽象表征,正如Murphy的說法:“概念是把心理世界聯系在一起的粘合劑 - Concepts are the glue that holds our mental world together”,它能幫助我們理解和處理在已認知的類別中出現的新實體。組合性是人類具備概括能力的關鍵,它指的是從已認知的成分中理解和產生新的組合的能力 - “understand and produce novel combinations from known components”。
認識“黑天鵝”的本質就需要模型具備組合泛化能力:在知道了“顏色”這一概念、並且知道了“動物”這一概念以及“天鵝”這個子群歸屬於“動物”之后,即使曾經從未見過這種組合,也應該能夠把這二者聯系起來。因此,我們期望一個好的人工智能系統是能夠獲得概念解耦(concept disentanglement) 和 組成推理(compositional inference)的能力的。
由於組合空間是巨大的,如何保證組合推理的可靠性就顯得至關重要了,而這就直接依賴於常識(common sense)。
常識可以通過閱讀文字來獲得。例如當讀到這樣的一個句子:“上周二有個廚師和他的兒子一起在公園里煎牛排。”我們可以從中提取到如下內容:“事件=(廚師,煎,牛排),時間=周二,地點=公園,附加說明=和他兒子一起”。這一句話中就包含了許多常識,比如:"廚師是一個人"、"廚師會做飯"、"牛排可以被煎"、"廚師有一個兒子"、"做飯可以發生在公園里"等等。而且,如果我們讀的句子足夠多,就可以得到一些統計數據(例如,廚師在公園做飯和在廚房做飯的比率是多少)。
在構建常識庫方面的工作有很多,著名的包括有:Doug Lenat借助人類專家的標注創建了龐大的知識庫Cyc和OpenCyc;麻省理工學院媒體實驗室的團隊建立了“Open Mind Common Sense”項目(ConceptNet)來收集在線數據並導入知識網絡;以及一些爬取網絡數據並提取關鍵詞得到的知識庫如dbpedia、YAGO等;此外還有Ernest Davis和Gary Marcus等人采用一種分治的方法用於空間推理、物理推理等子領域的研究。
常識推理(commonsense reasoning)領域就是在致力於解決上述提到的問題。我們想找到某種方法能夠收集這些對於世界的共識和假設並教給計算機,使之能夠更自然地理解語言並與人互動。
那么,怎么才能評估一個人工智能系統是否具有常識推理能力呢?
比如有一個著名的challenge叫作Winograd Schema Challenge (WSC)就是為了作為常識推理的圖靈測試而設計的。它的輸入是一對包含兩個名詞的句子,且其中有一個指代不明的代詞。這兩個句子之間只相差一個字,卻形成了完全不同的指代關系。我們期望的是模型能夠正確地指出這個代詞指代的是兩個名詞中的哪一個。
舉個栗子:
- The trophy doesn't fit in the suitcase because it is too small.
- The trophy doesn't fit in the suitcase because it is too big.
Answers Candidates: A) the trophy B) the suitcase
在這個例子中,句中的兩個名詞分別是“the trophy(戰利品)”和“the suitcase(行李箱)”,歧義代詞是“it(它)”。可見,將形容詞由“太小”改為“太大”之后直接改變了“it”的指代關系,這就是這個任務的難處所在。解決這個問題的關鍵需要將兩個名詞間的關系“fitting”、物品“the trophy”以及容器“the suitcase”概念化。只要理解了概念,各種組合的問題就能得到解決,比如以后用其他容器來代替“手提箱”,深度學習模型也能得到同樣的結論。
然而,自John McCarthy在50年代提出“commonsense in AI”的概念至今,整個AI領域中除了機器學習取得了較大的進展之外,真正的常識推理能力卻並沒有什么改變。但隨着近年來NLP的發展,這一任務的重要性越來越顯著,因此這個話題又重新獲得了關注。
目前的研究已有許多旨在解決常識推理的方法,大致可以分為三類:
基於規則和知識的方法 (Rule and knowledge-based approaches)
通用的人工智能方法 (Generic AI approaches)
語言模型方法 (AI language model approaches)
將在下篇文章中分別進行詳細闡述。
參考文獻:
Common Sense — Still not Common in AI
Artificial Common Sense Reasoning | by Jeff Schneider | Medium
Who’s Doing Common-Sense Reasoning And Why It Matters | TechCrunch