如何合理地表示語言的內在意義?這是自然語言處理業界中長久以來懸而未決的一個命題。
在2013年分布式詞向量表示(Distributed Representation)出現之前,one-hot是最常用的字詞數值表示形式。在這樣的詞袋模型下,語言被表示為極其稀疏的向量形式,詞之間的相互關係完全獨立,語言深刻的內在含義被簡化成0-1關係。
而之後出現的一系列預訓練詞向量(如Word2Vec、Glove等),在一定程度上解決了詞袋模型的稀疏性,對大部分NLP任務的表現都帶來了一定程度的提升,但其仍無法對如組合性,多義性、照應性、依賴性等複雜語言現象進行合理的表示。到了2018年,隨著一系列在大規模語料上訓練的深度語言模型的出現,以閱讀理解為代表的一大批NLP任務的榜單屢被刷新,人工智慧在語言上的理解能力超過人類的言論一度甚囂塵上。但當我們回過頭來仔細思考,在真實的「自然語言理解」業務場景中,這一輪「技術革新」帶來的利好似乎乏善可陳。
那麼,對大規模語料的暴力擬合是不是真的能讓模型理解語言的語義呢?2019年出現的GTP2模型參數數量達到了驚人的15億之巨,由它生成的新聞甚至能騙過專業的記者。但值得玩味的是,今年早些時候臺灣成功大學的幾位研究者發現,BERT更多地學到了語言中的統計線索,而不是理解文本當中的真正邏輯。當我們用同樣的模型對武俠小說進行學習之後,在其生成的文本中我們看到「三柄長劍斷作兩截」這樣的「statistically impeccable but logically wrong」的句子,讓我們進一步驗證基於人工神經網絡的大規模語言模型對語言的深度理解仍然有限。
其實,對於語言表示的問題,在統計學派興起之前的20世紀初期,以索緒爾為代表的一批符號學派語言學家就開始系統地研究了。到了六十年代末期,隨著邏輯學家和語言學家之間的屏障開始被打破,一批理論語言學家們著手為自然語言尋求一套完整的語義理論模式,來對語義進行完整的表示。美國邏輯學家理察·蒙塔古是其中的佼佼者,他認為自然語言與形式語言在基本文法邏輯上是一致的,他提出的「蒙太古語法」也為之後的語義表示研究奠定了基礎。
> There is in my opinion no important theoretical difference between natural languages the artificial languages of logicians; indeed I consider it possible to comprehend the syntax semantics of both kinds of languages with a single natural mathematically precise theory. (Montague 1970c, 222)
在語義解析這個領域,語義表示早期的工作幾乎都是符號學派為主的,例如一階邏輯表達式和lambda計算式。舉個例子,對於:
這樣一個自然語言,利用一階邏輯表達式可以簡單地表達為:
但這些早期的邏輯表達式有一些限制條件,例如,在一階邏輯中,量詞只能用於個體變元,取消這一限制條件,允許量詞也可用於命題變元和謂詞變元,由此構造起來的謂詞邏輯就是高階邏輯。FMR(Functional Meaning Representation) 就是利用高階函數來做意義表達,將語義(函數聲明的調用)和語用(函數具體實現邏輯,函數體)的實現解耦合,讓模塊的復用性和實用性更好。
也有一些研究者希望用有向無環圖來更完備地表達語義,例如由帕爾默等人提出的AMR(Abstract Meaning Representation)。近年來,一些工業界機構也根據自己的業務場景提出了滿足各自需求的多種語義表示方法,例如亞馬遜的Alexa語音助手就採用了同樣基於有向無環圖的AMRL(Alexa Meaning Representation Language)來表示以對話為主的自然語言。
還有一些研究者傾向於把自然語言直接轉化為像python、SQL一樣的程序語言,使之能夠直接被執行。由於程序語言天然地傾向於消除歧義,這樣的方法在某些特定領域有著很強的實用性。
在一覽群智的業務落地過程中,我們一直在探索一種實用性強、擴展性好的落地方案。面對實際業務問題,能夠基于堅實的基礎研發產品進行快速的行業適配,擺脫傳統方法對數據標註的依賴。同時,又能無縫銜接先進通用模型帶給我們的技術利好,有機地把行業內的專家知識與自然語言學界的前沿成果結合起來。基於Go語言的開源庫FMR (Functional Meaning Representation)就是我們朝這個方向踏出的堅實一步。在我們的實際業務場景種,基於FMR框架,僅需要少量的工程師就能將有行業特殊性的語言邏輯快速轉化為FMR框架可讀的文法,快速滿足行業定製化需求。另外,FMR相比於傳統的框架,可解釋性強,誤差可控,在部署便利程性和技術的延展性上,都有著獨特的優越性。
註:FMR開源庫地址連結https://github.com/liuzl/fmr
在傳統自然語言的應用中,業界傾向於用一種pipeline的方式,包括分詞、特徵工程、建模等流程。這樣的方式中的任何一個子流程的誤差在整個過程中都會被傳播甚至放大。與傳統流程不同的是,語義解析把自然語⾔的歧義性儘量當成特性⽽不是問題來進行處理,儘量保留所有符合語義的解析樹,並結合上下文語境進行歧義消解。例如,在FMR中,對語句詞的切分是依據UnicodeStandardAnnex#29,並在此基礎上根據文法進⾏解析,這極大程度規避了分詞模型誤差在pipeline中逐級傳播。另外,對於大部分自然語言模型框架,外部依賴繁雜,在業務部署過程中非常繁瑣。相比之下,基於Go語言的FMR在部署時能夠被編譯成一個可以直接執行的二進位文件,給部署帶來了極大的便利。
語言的歧義性與其解析難度是正相關的。正如剛才所說,大部分程式語言在設計的時候就把「消除歧義」作為設計原則之一,因此,大部分程序語言的解析複雜度都是O(n)的。對於自然語言,由於其內在的歧義性,所用到的解析算法的複雜度(例如CKY和Earley)都是O(N^3)的。與程式語言相似的是,在金融、公安、法律等領域,文書的文法和詞法在一定程度上會刻意避免歧義,以求準確表達。這正好大大降低了語言的歧義性,讓語義解析在這些場景下能夠發揮效用。
金融行業的票據審核正是這樣一個和語義解析耦合性很強的場景。在這個場景下,語言的歧義性一定程度上被人為的避免,降低了語義解析的難度。票據中的語言表述精煉,幾乎沒有「上下文語境」,而這是大多深度學習模型所依賴的,所以這些屠榜的利器在這個場景下幾乎沒有用武之地。另外,金融行業對模型的可解釋性和可控性要求極高,這也是語義解析能在這個行業落地的重要因素。一覽群智為金融行業打造的智能審單專家系統中,不論是對票據信息的抽取還是對條款語義的理解,語義解析扮演著舉足輕重的角色。這個審單系統已經在多個銀行的票據審核中投入使用,不僅給銀行客戶帶來了業務效率的提示,也節省了銀行大量的人力成本。
與金融行業類似,公安行業也存在著大量的零碎數據,分布在不同部門資料庫中。在過去,面對這樣的海量數據,很多業務需求,例如案件線索追蹤和串併案發現,都極度依賴於專家的個人經驗和大量人力比對。另外,公安行業的數據由於其行業特殊性,數據很難流通,這給數據標註也帶來了很大的困擾。一覽群智針對公安行業的數據現狀,研發了融合海量警情分析和案件關聯分析的警情案情分析預警系統,在多地的公安系統中得到應用和一致好評。
正因為這些行業的文本數據分布與開放領域文本的分別存在偏移,導致很多通用的模型無法快速地適配到應用場景中。同時,這些模型算法中大多數依賴於短期內無法得到的大批量標註數據,面對沒有標註數據的場景幾乎無法冷啟動。著名學者楊樂村曾說過:如果把人工智慧比作蛋糕,那監督學習和強化學習只是蛋糕上的點綴,只有非監督學習是蛋糕本體。在我們面臨的大多數沒有標註數據的場景中,也許語義解析就是楊樂村的那塊蛋糕。自然語言處理和文本分析針對的場景往往是多個任務的集合,而語義解析與深度學習模型的綜合使用,能夠讓自然語言處理和文本分析中的各項任務,按照最適合其特性的解決方法,得到綜合的處理。
語義解析所依賴的所有語義解析語法是不是都需要人工編寫呢?在特定領域中,由於語法規則的制定帶有很多人工的先驗知識,需要人為的來制定。例如在數字解析中,「一打」的指的是「12」,這樣的規則就是機器學不來的。但對於大部分語法規則來說,我們是可以通過統計和機器學習等數據驅動方法,從語⾔數據中學習,從而獲得規律。在極端的數據驅動⽅方法中,甚至可以完全不使用⼈工手寫語法,所有規則都是從數據中學習⽽而獲得的。
語義解析是否就是正則表達式匹配或者槽位填充呢?⾃然語言具有語義組合性和遞歸性的特點,槽位填充實現了部分的組合性。而對於語義的遞歸性,不論是正則表達式匹配還是槽位填充都無法體現。
在標註數據充足的情況下,符號化語義解析是否仍有優勢呢?基於神經網絡的一些模型在很多特定的任務上取得了鼓舞人心的評測結果,但與語義解析框架不同的是,這些模型算法更像是太上老君的丹爐,模型的優劣是實驗規律總結得到,很難得到理論上的解釋性。正如張鈸院士所說:「現在的人工智慧沒有自知之明」。數據驅動的方法做出來的人工智慧系統,是很危險的。即使對於SOTA模型,我們只知道在很大概率上,模型的結果是正確的,但我們無法確定很小概率的那部分在哪裡。舉例來說,對於一個簡單的自然語言描述數字轉換成阿拉伯數字問題,即使模型精度達到了99%,但在例如票據審核這樣容錯率極低的場景下,即使是1%的錯誤率,但模型無法確定性的直接給出到底是哪1%是錯誤的,這樣也會帶來無法接受的後果。
總而言之,我們當然對真正的強人工智慧喜聞樂見,但受限於當前的技術發展,「全心全意」地相信深度學習模型並不是一種負責任的選擇,更不用說在很多場景下,由於標註數據的匱乏,可選模型乏善可陳。相比之下,語義解析似乎是我們在這個階段上的一個局部最優解。若干年後,假使真的出現對語言理解勝於人類的智能產物,人們也不會忘記語義解析在人工智慧發展的長河中濃墨重彩的一筆。
(一覽群智 劉佔亮)
作者簡介: 劉佔亮 一覽群智技術副總裁
2007年畢業於天津大學計算機系,
曾先後供職於微軟亞洲研究院網際網路搜索與挖掘組、騰訊搜索、搜狗號碼通和百度國際化,歷任研究軟體工程師、研究員、資深研究員/研發負責人、
資深架構師/高級技術經理,負責基礎研究、產品研發、研發管理、業務推廣、商業變現等方面的工作。此外,他還曾作為產品技術負責人參與創辦Hitchsters.com(named one of Time Magazine’s 50 Best Websites for 2007)和Initialview.com。
未經允許不得轉載:DOIT » 語義解析:人工神經網絡之外不容忽視的自然語言處理利器