摘要:本文采用“以小人之心度君子之腹”的套路,主要基於高中所學知識,對語言學的基礎知識,即語言文字的出現和發展、特點和變化進行了總結,並提取了一些自然語言處理的背景知識,以加深對NLP的理解。
1. 引言
自然語言處理(Natural Laguage Processing, NLP)是人工智能領域最火熱的方向之一,大家在裡面投入了大量的人財物,完成了不少有意義的工作,比如效果良好的翻譯工具、實用的智能個人助理、越來越善解人意的推薦系統等等。作為這方面的工程師,我似乎在算法的汪洋大海中迷失了。
為什麼這麼說呢?NLP這門學科的目標是實現機器和人的無障礙交流,併為此融合了語言學、計算機科學、數學等學科的理論和方法——而我,咔咔學了這幾年,幾乎沒有語言學方面的積累,幾乎沒有意識到語言學和NLP中的聯繫。
最近,我仔細看了葉蜚聲和徐通鏘的《語言學綱要》,並基於本人在NLP方面(不多的)積累進行了簡單思考,最後以博客的形式記錄下來。
2. 從自然、意識、語言、口語到書面語——這是歷史的進程
我們常說提升生產力是歷史進程的最終方向。這個不僅適用於我們的經濟社會發展,也適用於語言的出現和發展。
2.1. 意識是自然的主觀映像
自然,可以粗暴地理解為整個宇宙,文雅的叫法是客觀世界。我們人類有一定的能力,可以觀察、記憶甚至解釋一些事物——結果就是我們的大腦中存儲了這些事物的外貌、溫度等等信息,就是我們的意識,也叫做主觀映像。當然,我們還有利用事物的意識、改造事物的意識等等。比如說,我們的祖先遭遇如圖2-1所示的巨大物體後,一定會害怕、擔心被幹掉,這時候祖先就得記住這個東西、下次遇到要快速響應。
2.2. 語言是表達意識的工具
很久很久以前,動物們用聲音、圖形、動態圖像等等原始信號來表示主觀映像。聽著聲音,祖先們就可以判斷腳下的樹枝是不是要被壓斷了;看看同伴的眼神,就知道他是不是要給你撓頭;聞聞氣味,就知道小寶寶是不是又拉了。從上帝視角來看,這種方案有一個重大缺陷:可以支持個體思考,但是無法支持同伴之間的快速交流。如果同伴之間不能傳遞信息,就無法傳遞歷經艱險得到的知識。
不知道的自然選擇的結果,還是祖先們有意識決定的,後來,祖先們開始主要用嘴、喉嚨發出的聲音來傳遞信息,比如(扯淡)用一個音素“wen”代表蜜蜂、同伴說這個就得趕緊跑。聲音這種信息載體有一個特點,就是解放了四肢,允許大家一邊跑一邊叫。使用聲音溝通時,祖先們可以進行帶有“即時戰略”特點的活動,比如在不影響逃跑速度的情況下告訴同伴們逃跑隊形和集合地點。事後諸葛亮一下:使用聲音溝通,提升了生產力,是生物挑選信息交流方式進程的最佳結果。
不知道是自然選擇的導致的,還是祖先們勤加練習的結果,後來,祖先們可以發出越來越多的聲音,以滿足越來越強的認知能力所帶來的越來越大的表達需求。這一時期,祖先們還發現,一段聲音和另一段聲音可以組合,形成一段更長的聲音、表示另一種意思——這樣,他們就可以用非常少的聲音素材,描述非常多的事物。舉例來說,如果我們可以發N種聲音,一段包含K個音素的聲音,可以表示種事物(要是加上我們現在使用的音調機制,那就更多了)。用於表示一個事物的音素組合,就是後人稱為“詞語”的東西。
不知道是自然選擇的導致的,還是祖先們有約定的結果,後來,祖先們把詞語搭配的形式和規則固定下來,形成了我們現在稱為語法的東西。語法的存在,讓語言更有規律,編碼、解碼和學習的成本更低,更有利於大家的交流,也就能進一步提升祖先們的生產力。到這個時候,祖先們稱得上是文武雙全、天下無敵,可以用複雜的隊形和策略去狩獵,如圖2-2。
在自然選擇的作用下、在祖先們的個人奮鬥下,語言和我們的意識相互依存、相互促進,發展成了今天這個樣子。
2.3. 口語是語言的天然存在形式
如前所述,聲音這種信息載體,由於相對於圖像等有著巨大的優勢,最終成為我們交流信息的主要形式。對應地,我們的主要通過口語來進行溝通活動。因此,口語成為語言的天然存在形式。
2.4. 書面語是提升意識、語言傳播能力的工具
當然,相比聲音,圖像形式的信息也有獨特的優勢:可以跨越時間和空間進行傳播。石頭上的刻痕、木棍上的繩結,可以把信息傳遞給子子孫孫或者遠在天邊的另外一個部落。單憑聲音,祖先們無法做到這一點——聲音轉瞬即逝,編碼、解碼容易出錯,個體壽命有限等等,都限制了以口語形式存在的信息。於是,祖先們利用各種方案表示語言,包括在石頭上畫畫、繩子打結、種樹等等。在使用這些方案的過程中,圖形這種形式,由於生成和理解比較便捷,逐漸勝出、成為主流的語言表示方案,並逐漸發展成象形文字。文字的出現,很好的解決了社群規模越來越大的情況下,信息交流的迫切需求,進一步提升了祖先們的生存和生產能力。
3. 語言和文字的若干特點
對現代人來說,語言和文字是密不可分的,二者都是用來對客觀世界進行編碼的符號體系。語言用聲音來編碼意識,而文字通過編碼語言來編碼意識。
3.1. 語言是一套離散的編碼系統
語言是一套離散的系統,我們用以對客觀世界進行儘量近似的刻畫。聲音、圖像等原始信號是連續的,可以非常精準地反映實際情況,而語言只能用“幫”“真棒”這樣的離散取值來描述世界。
另外,由於能力所限,我們只能用語言描述客觀世界的一小部分。因此,語言所記錄的,是對客觀世界原始特徵進行採樣和編碼的結果。理論上,句子是可以無限長的,因此可以表達非常非常精確的意思。因此,語言與現實世界的關係,有點像我們對函數的多項式展開操作時,多項式與函數的關係。
3.2. 語言符號的層級性
“我是中國人”這句話,有多個層級。兩個或者多個詞語構成詞組;多個詞組構成短語;多個短語又構成了句子。因此,句子的結構具有層次性。
我們在做文本理解或信息抽取的時候,可以根據場景的特點選擇合適的粒度。
3.3. 規則可以描述大部分語言現象
詞語的搭配、短語的組合等等,大部分可以用類似“主+謂+賓”的規則來描述。我們寫一些正則表達式就可以解析或者生成合法的句子。但是,總有一些語言現象不符合主流規則,比如“我們要自衛”這句話,按照現在主流的語序應該是“我們要衛自”。“自X”這種句式是古漢語的語法在現代漢語中的留存。現代漢語中不符合主流句法的現象還有很多。
語法和語義共同決定了一個句子的形態。因此,我們在解析句子或者生成句子的時候,既要考慮句法的合理性,又要考慮語義的合理性。比如說,“十獒創世紀”這句話,語法上沒啥毛病,不過因為不符合事實(我就不展開來批判了),仍然是一個非法的句子。因此,我們在對語言建模的時候,實際上需要把客觀世界的相關知識融合進來,才能更好地刻畫語言。
語法和語義共同制約的存在,決定了句子中所有的元素兩兩之間,多多少少存在一定的聯繫。注意力機制特別適合用來刻畫這種複雜關係,也催生了Transformer、BERT、GPT等經典的語言模型。
3.4. 語言和文字的關係
文字是語言的編碼,可以看做是語言的圖形化版本。
我們使用文字對語言編碼,進而實現對意識的編碼,最終實現意識跨越時間和空間的傳播。老子、孫子等人的意識片段,通過文字一直流傳到了今天,不斷地在後人的腦海裡活躍著。
當然,文字在發展的過程中,逐漸出現了相對語言的獨立性,比如中國人創造了書法這種藝術形式。古人在傳承和學習文化典籍的時候,為了讓後人也能看懂,規定書面語的語法不能變。結果隨著時間的推移,人們的口語與書面語區別越來越大、學習古文的代價也越來越高。到了鴉片戰爭以後,人們終於不得不求變,廢掉古文、提倡白話文。這時候,書面語又跟上了口語的腳步。
通常來說,NLP任務的直接處理對象是包含了文字的文本片段,毫無疑問,裡面蘊含了人們的意圖、情感等等。我們用詞袋模型、詞嵌入向量等等,刻畫的不是那個字符串,而是文字所代表的意圖和情感。
3.5. 表意文字和表音文字的關係
祖先們把圖畫發展成了象形文字,比如我國商朝時期的甲骨文、古蘇美爾人創造的楔形文字等兩河流域並傳到今天、形成各種表意文字,比如成熟期的漢字、楔形文字。
由於漢語文化圈後來在所在地區一直是文化、生產力等方面的先進代表,文化的載體——漢語和漢字受到了統治者們的推崇,並被秦始皇等人定為國家標準語言,傳承至今。
隨著詞彙規模的擴大,人們逐漸發現掌握語言變得越來越困難。一些民族為了減少或控制文字符號的數量,採用了一種新的策略,即用文字符號表示讀音。這類語言的文字被成為表音文字,代表是英語。表音文字的特點是字符數量較少、易於學習,有利於語言的推廣。
我們曾經試圖將漢字拉丁化,以降低漢語的學習難度、儘快提升廣大人民的文化水平。不過呢,共產黨比較給力,通過推廣簡體字,很好的完成了掃盲任務。以王選為代表的科學家們,也用科學技術維護了漢字的生存空間。而拉丁版的中文就成了我們現在的拼音,用來記錄和表達漢字的標準讀音。
表意文字和表音文字各有所長,可見的未來裡,都將繼續存在。
4. 語言會變化
語言的變化是持續發生的,因此,我們的NLP系統需要經常進行相應的更新。
4.1. 語言變化的動力
語言出現和發展的根本動力,是我們為了獲得生存優勢,在一定成本下儘量多地傳遞信息的本能和意識。這也是我們提升生產力的需要。
語言發生變化的動力或者說原因非常多:
(1)先人們在生存和生產的過程中,不可避免會與其他群體發生接觸,或多或少會進行交流(當然交流友好程度的取值範圍是[和平,戰爭])。交流就意味著思維方式、表達方式等等方面的相互學習,就會導致語言的變化。我在邊疆重鎮哈爾濱呆過幾年,為了更好地和當地人交流,平時說話的用詞、口音多多少少會學當地人,比如“幹啥”一般讀作“gan[四聲]ha[二聲]”——離開哈爾濱也沒改過來,我的語言系統被改變了。
(2)我們對世界的認識越來越深入、越來越全面,語言需要適應這種變化。當我們發現新的物質,就需要造一個新字。
(3)我們在使用語言的過程中,會發現並接受一些更高效的語言形式。英語裡的一些表達習慣,有利於讓讀者快速定位主謂賓進而理解含義,可以借鑑。
(4)我們會主動地規劃語言的發展方向,以適應生活和生產的需要。中央政府會制定必要的語言文字規範。
(5) 語言在傳播和傳承的過程中,不可避免出現一定的誤差。舉例來說,我從父母哪裡學到的神木方言,肯定不是原汁原味的,總有一些詞句沒學到。
4.2. 語言會變成什麼樣?
在我們的生命週期裡,語言不會發生特別大的改變,因此不需要擔心聽不懂子孫的話。語言說到底是我們的工具,不需要追求永恆的標準,提升生產力才是終極方向。
目測我們的語言編碼效率會越來越高、表達力會越來越強。《三體》所描述的中英文混合體,有可能出現呀。一些學者可以定性的預測語言變化趨勢;貌似還沒有人用數學模型描述語言的變化。我們暫時無法預知今後語言的樣子,只能在科幻作品中看看啦。
4.3. NLP從業者需要做些什麼
用統計方法做NLP的人,喜歡用統計語言模型來描述語言現象的規律,以概率來衡量一個句子合法性的高低,比如一階馬爾科夫模型:
當人們製造了新的字詞、廢棄一些字詞、引入了新的語法等等時,語言模型裡的條件概率就會發生變化。我們的NLP系統,需要一定的機制來適應人們口語和書面語的變化,以維持良好的性能。微博、Twitter這樣類平臺的文本,相比常見的書面語,更帶有更多的口語特點,因此表達方式的變遷也更快,這要求我們以更高的頻率更新語言模型。
當然,我們不能只是一個被動接受的角色,而應該加入到語言發展的進程中來。我們在科研和工程實踐中,經常能發現和遇到一些語言規律,有助於大家增進對語言的瞭解;另方面,帶頭大哥們可以參與到語言規範的制定中來,讓自然語言語言成為機器的有力工具,最終讓機器成為人類的有力工具。
5. 結語
忘了是從哪裡看到的一個牛X名詞,叫“記憶宮殿”,意思是用生活中你最熟悉的一個場景中的事物,把需要記憶的內容編碼起來,然後記住而形成的記憶綜合體。對應的方法可以叫做“記憶宮殿記憶法”。在需要提取記憶的時候,我們可以首先想到那個場景,然後把當時使用的事物一個個想起來,最後以它們為提示、回憶真正要記憶的內容。“記憶宮殿”是一種非常有用的記憶方法,可以幫我們實現快速、有效的記憶。
當然,記憶宮殿是不可持續的——我們熟悉的場景沒那麼多,用一個就少一個。
記憶宮殿其實是一種索引機制,即用容易記憶的事物作為知識內容的索引或者說目錄、大綱、框架。從直覺、常識的角度解釋算法和模型,就是一種典型的知識索引機制應用。比如說在本文中,我使用比較熟悉的高中所學進化論、簡單的哲學知識、簡單的語言學知識和生活常識,把語言和文字的的發展史給組織起來了,回憶這段歷史的時候就會輕鬆一些。
我看,索引機制,也是“把書讀薄”的一種有效策略。
注意:本文為李鵬宇(知乎個人主頁https://www.zhihu.com/people/py-li-34)原創作品,受到著作權相關法規的保護。如需引用、轉載,請註明來源信息:(1)作者名,即“李鵬宇”;(2)原始網頁鏈接,即當前頁面地址。如有疑問,可發郵件至我的郵箱:[email protected]。