語言學家重出江湖!從「發音」開始學:這次AI模型要自己教自己
?試圖讓計算機理解人類的語言一直是人工智能領域邁不過的難關。
早期的自然語言處理模型通常采用人工設計特征,需要專門的語言學家手工編寫pattern,但最終效果卻并不理想,甚至AI研究一度陷入寒冬。?
每當我開除一個語言學家,語音識別系統就更準確了。
Every time I fire a linguist, the performance of the speech recognizer goes up.
——Frederick Jelinek
有了統計模型、大規模預訓練模型以后,特征抽取是不用做了,但仍然需要對指定任務進行數據標注,而且最關鍵的問題在于:訓練得到的模型還是不懂人類的語言。
所以,我們是不是該從語言最初的形態開始重新研究:人類到底是怎么獲得語言能力的?
最近來自康奈爾大學、麻省理工學院和麥吉爾大學的研究人員在Nature Communications上發表了一篇論文,提出一個算法合成模型的框架,在人類語言的最基礎部分,即詞法音位學(morpho-phonology)上開始教AI學習語言,直接從聲音中構建語言的詞法。
論文鏈接:https://www.nature.com/articles/s41467-022-32012-w
詞法音位學是語言學分支之一,主要關注語素(即最小的意義單位)在組合成詞時發生的音變,試圖給出一系列規則,以預判語言中音素的規律變聲。
比如說英語中的復數語素寫作-s或是-es,但讀音卻有三種[s]、[z] 及 [?z],比如cats的發音為/k?ts/, dogs的發音為/dagz/, horses的發音為/h?rs?z/。
人類在學習復數發音轉換時,首先根據詞法學(morphology),意識到復數后綴實際上是/z/;然后根據音位學(phonlogy),將后綴基于詞干中的聲韻,如清輔音等轉換成/s/或/?z/
其他語言也有同樣的音位詞法規律,研究人員從58種語言的音位教科書上收集得到了70個數據集,每個數據集只包含幾十到幾百個單詞,并且只包含少數語法現象,實驗表明在自然語言中尋找語法結構的方法也可以模擬嬰兒學習語言的過程。
通過對這些語言數據集執行分層貝葉斯推理(hierarchical Bayesian inference),研究人員發現該模型僅從一個或幾個樣例中就可以獲取新的詞法音位規則,并且能夠提取出通用的跨語言模式,并以緊湊的、人類可理解的形式表達出來。
讓AI模型做「語言學家」
人類的智能主要體現在建立認知世界理論的能力,比如自然語言形成后,語言學家總結了一套規則來幫助兒童更快速地學習特定語言,而當下的AI模型卻無法總結規則,形成一套其他人可理解的理論框架。
在建立模型之前要解決一個核心問題:「如何描述一個詞」,比如說一個詞的學習過程包括了解詞的概念、意圖、用法、發音以及含義等。
在構建詞表時,研究人員把每個詞表示為一個<音標,語義集合>對,例如open表示為</opεn/, [stem: OPEN]>, 過去式表示為</d/, [tense: PAST]>,組合得到的opened表示為</opεnd/, [stem: OPEN, [tense: PAST]]>
有了數據集以后,研究人員建立了一個模型,通過最大后驗概率推理來解釋在一組pair集合上生成語法規則,對詞的變化進行解釋。
在聲音的表示上,音素(原子音)被表示為二元特征的向量,比如/m/,/n/,是鼻音,然后基于該特征空間定義語音規則。
研究人員采用經典的規則表述方式,即情境相關記憶(context-dependent),有時也稱之為SPE-style規則,其廣泛應用于英語的音型(Sound Pattern of English)表示。
每個規則的寫法是
(focus)→(structural_change)/(left_trigger)_(right_trigger),意思是只要左/右觸發環境緊靠focus的左/右,焦點音素就會根據結構變化進行轉換。
觸發環境指定了特征的連接(表征音素的集合),例如在英語中,只要左邊的音素是[-sonorant],在詞末的發音就會從/d/變成/t/,寫成規則就是[-sonorant] → [-voice]/[-voice -sonorant]_#,比如說walked應用這一規則后,發音就從/w?kd/轉化為/w?kt/。
當這種規則被限制為不能循環應用于自己的輸出時,規則和詞法學就對應于雙向有理函數(2-way rational functions),又對應于有窮狀態轉換器(finite-state transductions)。有人認為有窮狀態轉換器的空間有足夠的表現力來涵蓋形態語音學中已知的經驗現象,并代表了對語音學理論實際使用的描述能力的限制。
為了學習這種語法,研究人員采用了貝葉斯程序學習(Bayesian Program Learning, BPL)的方法。將每個語法規則T建模為一種編程語言中的程序,這種語言捕捉了問題空間的特定領域的約束。所有語言共同的語言結構被稱為通用語法(universal grammar)。該方法可以被看作是語言學中一個長期存在的方法的現代實例,并采用人類可理解的生成性代表來正式確定通用語法。
在定義好BPL需要解決的問題后,在所有程序的搜索空間都是無窮大,不給出如何解決這個問題的任何指導方向,且缺乏像梯度下降或馬爾科夫鏈蒙特卡洛這樣局部優化算法所利用的局部平穩性的情況下,研究人員采用了一種基于約束的程序合成的策略,將優化問題轉化為組合約束滿足問題,并使用布爾可滿足性(SAT)求解器來解決。
這些求解器實現了詳盡但相對有效地搜索,并保證在有足夠時間的情況下,會找到一個最優解。使用Sketch程序合成器可以解決與某些數據一致的最小的語法,但必須符合語法大小的上限。
但在實踐中,SAT求解器所采用的窮舉搜索技術無法擴展到解釋大型語料庫所需的海量規則。
為了將求解器擴展到大型和復雜的理論,研究人員從兒童獲得語言能力和科學家建立理論的一個基本特征中得到了啟發。
兒童并不是一蹴而就地學習語言,而是通過語言發展的中間階段,逐步豐富他們對語法和詞匯的掌握。同樣地,一個復雜的科學理論可能從一個簡單的概念內核開始,然后逐漸發展到涵蓋越來越多的語言現象。
基于上述想法,研究人員又設計了一種程序合成算法,從一個小程序開始,然后反復使用SAT求解器來尋找小的修改點,使其能夠解釋越來越多的數據。具體來說,就是找到一個對當前理論的反例,然后使用求解器詳盡地探索可以容納這個反例的理論的所有小修改的空間。
但這種啟發式的方法缺乏SAT求解的完整性保證:盡管重復調用一個完整的、精確的SAT求解器,但它并不能保證找到一個最優解,不過每一次重復調用都比直接對整個數據進行優化要難得多。因為約束每個新的理論在理論空間中接近其前一個理論會導致約束滿足問題的多項式縮小,從而使搜索時間呈指數級增長,而SAT求解器在最壞的情況下是以指數級增長的。
在實驗評估階段,研究人員從語言學教科書中搜集了70個問題,每個問題都要求對一些自然語言中的一些形式的理論進行綜合分析。這些問題的難度范圍很廣,涵蓋了多種多樣的自然語言現象。
自然語言也多種多樣,包括音調語言,例如,在Kerewe語(坦桑尼亞的一種班圖語)中,to count是/kubala/,但to count it是/kukíbála/,其中重音標記高音調。
也有元音和諧(vowel harmony)的語言,例如土耳其有/el/,/t∫an/,分別表示手,鐘,以及/el-ler/,/t∫an-lar/,分別表示手和鐘的復數;還有許多其他語言現象,如同化和外延式。
在評估上,首先衡量該模型發現正確的詞表的能力。與ground-truth詞表相比,該模型在60%的基準中發現了與問題的全部詞庫正確匹配的語法,并在79%的問題中正確解釋了大部分的詞庫。
通常情況下,每個問題的正確詞庫比正確的規則更明確,任何從正確的詞庫中產生完整數據的規則必須與模型可能提出的任何基礎規則具有觀察上的等效性。因此,與基礎真理詞庫的一致性應該作為一個指標來衡量同步化的規則在數據上是否有正確的行為,該評估與規則的質量相關。
為了測試這個假設,研究人員隨機抽取了15個問題,并與一位專業語言學家協商,對發現的規則進行評分。同時測量召回率(正確恢復的實際語音規則的比例)和精確度(恢復的規則中實際出現的比例)。在精度和召回率的指標下,可以發現規則的準確性與詞庫的準確性呈正相關。
當系統得到所有詞庫的正確性時,它很少引入無關的規則(高精度),而且幾乎總是得到所有正確的規則(高召回率)。?