基於Go的語義解析開源庫FMR,“屠榜”模型外的NLP利器

AIBigbull2050發表於2019-09-30
2019-09-24 21:02:14
基於Go的語義解析開源庫FMR,“屠榜”模型外的NLP利器

(由AI科技大本營付費 下載自視覺中國)

作者 | 劉佔亮 一覽群智技術副總裁

編輯 | Jane

出品 | AI科技大本營( ID:rgznai100)

如何合理地表示語言的內在意義?這是自然語言處理業界中長久以來懸而未決的一個命題。

在  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 and the artificial languages of logicians; indeed I consider it possible to comprehend the syntax and semantics of both kinds of languages with a single natural and mathematically precise theory. (Montague 1970c, 222)

基於Go的語義解析開源庫FMR,“屠榜”模型外的NLP利器

在語義解析這個領域,語義表示早期的工作幾乎都是符號學派為主的,例如一階邏輯表示式和lambda計算式。舉個例子,對於:

基於Go的語義解析開源庫FMR,“屠榜”模型外的NLP利器

這樣一個自然語言,利用一階邏輯表示式可以簡單地表達為:

基於Go的語義解析開源庫FMR,“屠榜”模型外的NLP利器

但這些早期的邏輯表示式有一些限制條件。例如,在一階邏輯中,量詞只能用於個體變元,取消這一限制條件,允許量詞也可用於命題變元和謂詞變元,由此構造起來的謂詞邏輯就是高階邏輯。 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

基於Go的語義解析開源庫FMR,“屠榜”模型外的NLP利器

在傳統自然語言的應用中,業界傾向於用一種 pipeline 的方式,包括分詞、特徵工程、建模等流程。這樣的方式中的任何一個子流程的誤差在整個過程中都會被傳播甚至放大。

與傳統流程不同的是,語義解析把自然語⾔的歧義性儘量當成特性⽽不是問題來進行處理,儘量保留所有符合語義的解析樹,並 結合上下文語境進行歧義消解。例如,在 FMR 中,對語句詞的切分是依據 UnicodeStandardAnnex#29,並在此基礎上根據文法進⾏解析,這極大程度規避了分詞模型誤差在 pipeline 中逐級傳播。

另外,對於大部分自然語言模型框架,外部依賴繁雜,在業務部署過程中非常繁瑣。相比之下,基於 Go 語言的 FMR 在部署時能夠被編譯成一個可以直接執行的二進位制檔案,給部署帶來了極大的便利。

語言的歧義性與其解析難度是正相關的。正如剛才所說,大部分程式語言在設計的時候就把“消除歧義”作為設計原則之一,因此,大部分程式語言的解析複雜度都是 O(n)的。對於自然語言,由於其內在的歧義性,所用到的解析演算法的複雜度(例如 CKY 和 Earley)都是O(N^3) 的。與程式語言相似的是,在金融、公安、法律等領域,文書的文法和詞法在一定程度上會刻意避免歧義,以求準確表達。這正好 大大降低了語言的歧義性,讓語義解析在這些場景下能夠發揮效用。

金融行業的票 據稽核正是這樣一個和語義解析耦合性很強的場景。在這個場景下,語言的歧義性一定程度上被人為的避免,降低了語義解析的難度。票 據中的語言表述精煉,幾乎沒有“上下文語境”,而這是大多深度學習模型所依賴的,所以這些屠榜的利器在這個場景下幾乎沒有用武之地。另外,金融行業對模型的可解釋性和可控性要求極高,這也是語義解析能在這個行業落地的重要因素。在一覽群智為金融行業打造的智慧審單專家系統中,不論是對票 據資訊的抽取還是對條款語義的理解,語義解析扮演著舉足輕重的角色。這個審單系統已經在多個銀行的票 據稽核中投入使用,不僅給銀行客戶帶來了業務效率的提升,也節省了銀行大量的人力成本。

基於Go的語義解析開源庫FMR,“屠榜”模型外的NLP利器

與金融行業類似,公安行業也存在著大量的零碎資料,分佈在不同部門資料庫中。以前,面對海量資料,很多業務需求,例如案件線索追蹤和串併案發現,都極度依賴於專家的個人經驗和大量人力比對。另外,由於公安行業的特殊性,其資料很難流通,這就給資料標註也帶來了很大的困擾。針對公安行業的資料現狀,我們研發了融合海量警情分析和案件關聯分析的警情案情分析預警系統,在多地的公安系統中得到應用與好評。

基於Go的語義解析開源庫FMR,“屠榜”模型外的NLP利器

正因為這些行業的文字資料分佈與開放領域文字的分別存在偏移,導致很多通用的模型無法快速地適配到應用場景中。同時,這些模型演算法中大多數依賴於短期內無法得到的大批量標註資料,面對沒有標註資料的場景幾乎無法冷啟動。

著名學者楊樂村曾說過:如果把人工智慧比作蛋糕,那監督學習和強化學習只是蛋糕上的點綴,只有非監督學習是蛋糕本體。在我們面臨的大多數沒有標註資料的場景中,也許語義解析就是那塊蛋糕。自然語言處理和文字分析針對的場景往往是多個任務的集合,而語義解析與深度學習模型的綜合使用,能夠讓自然語言處理和文字分析中的各項任務,按照最適合其特性的解決方法,得到綜合的處理。

語義解析所依賴的所有語義解析語法是不是都需要人工編寫呢?

在特定領域中,由於語法規則的制定帶有很多人工的先驗知識,需要人為的來制定。例如在數字解析中,“一打”的指的是“12”,這樣的規則就是機器學不來的。但對於大部分語法規則來說,我們是可以通過統計和機器學習等資料驅動方法,從語⾔資料中學習,從而獲得規律。在極端的資料驅動⽅方法中,甚至可以完全不使用⼈工手寫語法,所有規則都是從資料中學習⽽而獲得的。

語義解析是否就是正規表示式匹配或者槽位填充呢?⾃然語言具有語義組合性和遞迴性的特點,槽位填充實現了部分的組合性。而對於語義的遞迴性,不論是正規表示式匹配還是槽位填充都無法體現。

在標註資料充足的情況下,符號化語義解析是否仍有優勢呢?基於神經網路的一些模型在很多特定的任務上取得了鼓舞人心的評測結果,但與語義解析框架不同的是,這些模型演算法更像是太上老君的丹爐,模型的優劣是實驗規律總結得到,很難得到理論上的解釋性。正如張鈸院士所說:“現在的人工智慧沒有自知之明”。

資料驅動的方法做出來的人工智慧系統,是很危險的。即使對於SOTA模型,我們只知道在很大概率上,模型的結果是正確的,但我們無法確定很小概率的那部分在哪裡。舉例來說,對於一個簡單的自然語言描述數字轉換成阿拉伯數字問題,即使模型精度達到了99%,但在如票 據稽核這樣容錯率極低的場景下,即使是1%的錯誤率,但模型無法確定性的直接給出到底是哪 1% 是錯誤的,這樣也會帶來無法接受的後果。

總而言之,我們當然對真正的強人工智慧喜聞樂見,但受限於當前的技術發展,“全心全意”地相信深度學習模型並不是一種負責任的選擇,更不用說在很多場景下,由於標註資料的匱乏,可選模型乏善可陳。相比之下,語義解析似乎是我們在這個階段上的一個區域性最優解。若干年後,假使真的出現對語言理解勝於人類的智慧產物,人們也不會忘記語義解析在人工智慧發展的長河中濃墨重彩的一筆。

作者介紹: 劉佔亮 一覽群智技術副總裁

基於Go的語義解析開源庫FMR,“屠榜”模型外的NLP利器

2007年畢業於天津大學計算機系,曾先後供職於微軟亞洲研究院網際網路 搜尋與挖掘組、騰訊 搜尋、搜狗號碼通和百度國際化,歷任研究軟體工程師、研究員、資深研究員/研發負責人、資深架構師/高階技術經理,負責基礎研究、產品研發、研發管理、業務推廣、商業變現等方面的工作。此外,他還曾作為產品技術負責人蔘與創辦 Hitchsters .com(named one of Time Magazine’s 50 Best Websites for 2007)和 Initialview .com



https://www.toutiao.com/i6740221603793076747/




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2658839/,如需轉載,請註明出處,否則將追究法律責任。

相關文章