自然語言不等於英語,為什麼NLPer應當認識到這個問題,以及該怎麼做?
編者按:自然語言並不等於英語。然而,目前NLP的研究中,大家潛意識裡卻認為英語是一種具有足夠代表性的語言。而除英語以外的其他語言研究則通常被認為是“特殊語言”,在審稿人的眼中同等情況下對它們的研究則不如英語研究重要。這本質上是對語言的“以偏概全”。近日華盛頓大學語言學家Emily M. Bender為此撰寫了一篇文章《The Bender Rule: On Naming the Languages We Study and Why It Matters》,指出其中存在的問題,以及提出對學習語言進行命名和標記的方案。AI科技評論對其文章做如下不改變原意的編譯。
一、高資源語言與低資源語言
自然語言處理(NLP)領域的進展取決於語言資源的存在。通常這些資源需要有帶黃金標準(gold standard)的標籤或註解來反映NLP系統對當前任務的預期輸出。無監督、弱監督、半監督或遠端監督等機器學習技術降低了對標記資料的依賴性,但即使是使用這些方法,也同樣需要足夠多的標記資料來評估系統的效能,此外對於資料需求量極大的機器學習技術,通常也需要大量未標記資料的支撐。
這樣的需求導致了在NLP領域中出現了高資源語言和低資源語言的數字鴻溝。
高資源的語言種類只有幾種,包括英語、漢語、阿拉伯語和法語,或許還可以將德語、葡萄牙語、西班牙語、芬蘭語包括進去。這些語言具有大量可訪問的文字和語音資源,以及一些註釋資源如樹圖資料庫(treebank)和評估集。
截止到2019年8月,LRE Map列出了961項英語資源,此外還有美式英語資源121項、德語資源216項、法語資源180項、西班牙語資源130項、漢語資源103項、日語資源103項。其他超過50項資源的語言只有葡萄牙語、義大利語、荷蘭語、標準阿拉伯語和捷克語。世界上另外大約7000種其他的語言則只有極少的資源或沒有。
同樣值得強調的是,世界各地的研究人員在主要的NLP會議上發表的大部分研究工作都集中在高資源語言上,且不成比例地集中在英語上。Robert Munro,SebastianMielke和我對NLP領域的幾個主要會議中的語言進行了一個調查,其結果如下:
儘管英語和漢語廣泛被作為第一語言或第二語言使用,但顯然NLP的研究不應當只是去做這兩種語言的研究。
但很不幸,NLP陷入了一種惡性迴圈:除英語以外的其他語言研究通常被認為是“特殊語言”,因此被認為同等情況下不如英語研究重要。
NLP會議的審稿人經常會有這樣一種錯誤的理解: 將某一任務上的最先進水平等同於該任務在英語上取得的最先進水平;如果一篇論文不能與之進行比較,那他們就無法判斷這個研究是否是“有價值的”。
這裡一個重要的因素是人們潛意識裡認為英語是一種具有足夠代表性的語言。當學習的資源是英語時,人們往往不會在名字中顯示“英語”,這更助長了這種誤解。
但英語既不是自然語言的代名詞,也不是自然語言的代表。
二、英語不能代表全部
我最近在Widening NLP 2019大會的演講中做了一個比喻,將NLP比作是一扇濺滿了雨水的窗戶。
我們知道NLP是一個跨學科的領域,不同領域的人所關注的視角也不相同。從事資訊提取工作的人對用數字化語言編碼的資訊感興趣,這就像是人在屋內凝視窗外的場景。而從事語言學工作的人則對語言的結構和模式以及它們與交際意圖的關係很感興趣,這就類似於想要探究雨滴下來的模式以及它們是如何影響我們看窗外的景色。
把這個比喻再延伸一點,每一種語言(包括英語)都只是一扇有特定雨滴模式的窗戶,各自都有它自己特有的風格。
以下我羅列了一些英語不能代表所有語言的原因,這些原因即使是在四姐上使用最廣泛的語言中也沒有得到廣泛的共享:
1、 它是一種口頭語言,而不是符號語言。如果我們只做英語的研究,我們就錯失了一類重要的語言。
2、 它有一個完善的、長期使用的、大致是基於發音拼寫系統(phone-based orthographic system)。
“Phone-based”的意思是字母對應於單獨的發音。英語拼寫法僅近似於這個原理。西班牙語等其他語言,具有基於發音的拼寫法系統更加透明化,還有一些語言僅代表子音(例如傳統的希伯來語和阿拉伯語)或具有代表音節而不是單一聲音的符號(例如馬拉雅拉姆語,韓語或日語假名),或者使用邏輯系統(例如中文,或者借鑑漢字形成的日文;參見Handel 2019)。 當然,世界上還有許多語言沒有書面語,或者書面語的歷史較短還沒有發展出標準的拼寫法。英語拼寫的標準化事實上在很大程度上簡化了NLP的任務,而我們常常沒有意識到這個問題。
3、 英語的標準化拼寫法提供了一個成為“word”的概念,不同“word”之間會有一個空格留白。
然而並不是所有語言都有這個特點,例如漢語、日語、泰語等,對於這些語言,它們的NLP任務都必須從分詞開始。
4、 大部分的英語寫作通常只使用在每臺計算機上都能找到的低位ASCII字元。
在大多數情況下,當使用英語時我們都不用擔心不常見的字元編碼、不支援的Unicode符號等等。
5、 英語的屈折形態(inflectionalmorphology)相對較少,因此每個單詞的形式比較少。
許多NLP領域的技術都存在資料稀疏的問題,只有當同一個詞以多種不同的形式出現在高度變化的語言中時,這種問題才會顯得更加嚴重。(基於字元n-gram的深度學習模型在一定程度上解決了這個問題,但它仍然是英語和世界上許多語言之間的一個重要區別。)
6、英語有相對固定的語序。
與世界上許多語言相比,英語在詞序上比較死板,在大多數情況下都保持主謂賓、形容詞在名詞前面、關係從句在後等等。如果不對更靈活的詞序語言進行測試,我們怎麼會知道哪些系統在多大程度上依賴英語的這種特性?
7、 英文表單可能會“意外”匹配資料庫欄位名、本體條目等。
許多語言技術通過將輸入語言中的字串對映到外部知識庫或者將這些字串轉換為語法或語義表示從而實現特定任務的目標。當輸入的字串和知識庫中的欄位名或條目使用同一種語言時,處理快捷方式就可用了。但是這又能適用於多少種語言呢?
8、 英語有大量可用的訓練資料(比如用來訓練BERT的3.3B語言符號)(Devlin et.al,2019)。
如果我們將全部的精力都集中在依賴大量的訓練資料這種方法上,而這些資料卻無法適用於世界上大多數的語言,我們將如何構建適用於其他語言的系統?同樣,如果我們只重視使用這些技術的工作(例如在會議論文評審中),那麼我們怎麼可能期待在跨語言NLP上取得進展呢?
三、Bender Rule
2009年,Tim Baldwin和ValiaKordoni在EACL上組織了一個研討會,主題為“語言學與計算語言學之間的互動:良性的、惡性的還是空洞的?”(The Interaction between Linguistics andComputational Linguistics: Virtuous, Vicious or Vacuous?)當時,機器學習(深度學習之前)對NLP來說非常重要。很多人都在討論圍繞NLP的機器學習方法如何能夠更經濟,因為它們比以前基於規則的正規化需要投入的語言專家更少。這在當時很流行。
在這次會議上有人指出(出現在當時部分論文中),不對任何特定語言知識進行編碼的NLP系統都是與“語言無關的”。
我反對這種觀點。我在其中的一個研討會上也發表了一篇論文,題為《語言幼稚!=語言獨立:為什麼NLP需要語言型別學》(Linguistically Naïve != Language Independent: Why NLP NeedsLinguistic Typology)。我認為如果我們只使用英語(或英語加上一小部分其他語言),我們無法判斷所構建的系統是否真正適合於所有語言。僅僅因為沒有直接編碼有關英語的特定語言知識並不意味著該模型適用於所有的語言。
此外,如果目標是語言獨立或跨語言應用系統,那我們最好充分利用語言知識。特別是,我們應該利用語言型別學領域的研究成果,該領域研究世界上各種語言的變化範圍以及這種變化還存在的侷限性。
在Bender 2011(《關於實現和評估在NLP領域中的語言獨立性》,“On Achieving and Evaluating Language-Independence in NLP”)中,我列出了語言無關NLP的“dos and don' ts”。它包括了後來被稱為Bender Rule的早期宣告(雷鋒網):
Do – 指明正在學習的語言型別,即使它是英語。要明確一點,我們正在研究的是一種特定的語言,這意味著由此開發的技術可能只適用於特定的語言。相反,如果不去宣告正在使用的資料的語言型別,就會給工作帶來是語言獨立的假象。(Bender 2011:18)
然而,直到2019年,這段話才真正流行起來。2018年11月,當我在編撰計算語義學和語用學的語言資源時,再次遇到這樣頭疼的事情:那些使用英語語料的論文往往沒有說明所討論的語言是英語。於是我發了如下的推文:
2019年3月到5月,Nathan Schneider、Yuval Pinter、Robert Munro、Andrew Caines等人分別提出了“Bender Rule”或“Bender Clauses”。他們的不同之處在於命名所研究語言的方式,作為論文評審人員應該詢問研究者研究的是哪種/些語言,或者當僅使用一種語言時應當對所研究系統的語言獨立性持懷疑態度。最終,BenderRule的宣告合併為簡單的一句話: 始終註明你正在使用的語言。
在NAACL 2019和ACL 2019及其研討會上,有幾張poster在命名其語言時直接提到了Bender Rule。
這樣的原則似乎是顯而易見的,且很瑣碎。但我很榮幸能以我的名字來命名這個原則。因為我強烈地感覺到NLP領域必須擴大範圍,超越英語和少數幾種精心研究的語言。我相信,除非我們不再把英語當作預設語言,不再假裝學習英語(且只學習英語)不是“language-specific”,否則我們永遠無法做到這一點。
四、命名語言只是第一步
NLP領域開始考慮“為語言命名”使我深受振奮,即便大部分工作使用的顯然還是英語。
但是,隨著NLP領域的人們開始解決NLP技術所帶來的道德影響以及語言技術對使用者和旁觀者產生的負面影響(參見Hovy&Spruit 2016,Speer2017,Grissom II 2019),我們應當清晰地認識到:關於訓練和測試模型所使用的資料,我們應該提供更多資訊。
首先是語言之間的差異性:所有語言都在不斷地變化;除了那些使用人數極少的語言外,一種語言的不同變體之間總是存在著很大的差異。(參見Labov 1966,Eckert和Rickford2001)。這包括不同地域之間的差異,以及不同社會群體和社會身份相關的差異。針對某一特定人群的語音/文字/標誌進行訓練的模型不一定適用於其他人群,即使是在使用相同語言的人群中也是如此。
第二,模型會汲取訓練文字中所包含的偏見,而這些偏見則來源於生產文字的人如何認識和談論這個世界。(參見Bolukbasi et.al 2016,Speer2017)。
為了避免以上兩個問題所帶來的潛在問題,Batya Friedman和我在 ( Bender & Friedman2018) 中提出了“資料宣告”的概念,這是一種清晰記錄NLP系統中使用資料集的做法。我們建議所有NLP系統都應該附帶關於訓練資料的詳細資訊,包括所涉及的特定語言種類,選擇資料的原理(如何選擇資料以及為什麼選擇該資料),有關說話者和註釋者的人口統計資訊等等。當然,僅憑這些資訊並不能解決偏見的問題,但它為解決這些問題提供了可能性。
頭圖來源(雷鋒網): http://images.wired.it/wp-content/uploads/2014/01/1390576102_language.jpg
原文連結: https://thegradient.pub/the-benderrule-on-naming-the-languages-we-study-and-why-it-matters/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2659014/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼Julia語言這麼棒?
- Python語言怎麼樣?為什麼學Python?Python
- 為什麼 Go 語言能在中國這麼火?Go
- 為什麼會有這麼多的程式語言?
- 乾貨!什麼是自然語言分析(NLA)
- 自然語言處理怎麼最快入門?自然語言處理
- 第一門程式語言應該學什麼? – thenewstack
- 什麼是NLP,NLP主要有什麼用,為什麼要學自然語言處理?自然語言處理
- 何為程式語言?為什麼要學C語言?C語言
- 當代前端應該怎麼寫這個hello world?前端
- 為什麼JavaScript是你應當學習的下一個(或第一個)程式語言JavaScript
- 到底該學習什麼程式語言
- 程式語言這麼多,為什麼建議選擇Python?Python
- 你為什麼不應該過度關注go語言的逃逸分析Go
- 為什麼那麼多人要學習go語言?go語言有什麼特點?Go
- 什麼是自然語言分析NLA,它是如何工作的?
- 什麼是程式語言?程式語言都有哪些?以及主要用途
- 為什麼很多公司都轉型go語言開發?Go語言能做什麼Go
- 【譯】你的程式語言能做到這個嗎?(為什麼要學函數語言程式設計)函數程式設計
- Python是什麼語言?Python底層語言是什麼?Python
- 什麼是Go語言?Go語言有什麼特點?Go
- 程式設計師為什麼討厭這些語言程式設計師
- 學習Python有什麼好處?Python語言為什麼這麼受歡迎?Python
- Python是什麼型別語言?為何Python這麼多人學習?Python型別
- 當面試官問你這個問題的時候,他想聽到什麼?面試
- 職場人員該學什麼程式語言
- 為什麼Web前端語言只有JavaScript?Web前端JavaScript
- go與其他語言有什麼區別?學習go語言怎麼樣Go
- 分享一個自然語言漢語時間語義識別的工具類
- 0.1 + 0.2不等於0.3?為什麼JavaScript有這種“騷”操作?JavaScript
- 為什麼自制指令碼語言是程式語言的最高境界?指令碼
- 自然語言處理之序列標註問題自然語言處理
- Python 集合是什麼,為什麼應該使用以及如何使用?Python
- Python為啥這麼牛?跟其他語言相比究竟有什麼優勢?Python
- 常見的程式語言python怎麼樣?各程式語言有什麼區別?Python
- 為什麼Python語言那麼受歡迎呢?Python
- 六星教育:Python為什麼這麼火?未來它將會被什麼語言取代?Python
- 當模型不起作用的時候應該怎麼做?模型