自然語言處理
計算機與人工智慧的重要方向
自然語言處理(NaturalLanguageProcessing,NLP)是計算機科學領域與人工智慧領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言,所以它與語言學的研究有著密切的聯繫,但又有重要的區別。自然語言處理並不是一般地研究自然語言,而在於研製能有效地實現自然語言通信的計算機系統,特別是其中的軟體系統。因而它是計算機科學的一部分。
自然語言處理主要應用於機器翻譯、輿情監測、自動摘要、觀點提取、文本分類、問題回答、文本語義對比、語音識別、中文OCR等方面。
語言是人類區別其他動物的本質特性。在所有生物中,只有人類才具有語言能力。人類的多種智能都與語言有著密切的關係。人類的邏輯思維以語言為形式,人類的絕大部分知識也是以語言文字的形式記載和流傳下來的。因而,它也是人工智慧的一個重要,甚至核心部分。
用自然語言與計算機進行通信,這是人們長期以來所追求的。因為它既有明顯的實際意義,同時也有重要的理論意義:人們可以用自己最習慣的語言來使用計算機,而無需再花大量的時間和精力去學習不很自然和習慣的各種計算機語言;人們也可通過它進一步了解人類的語言能力和智能的機制。
自然語言處理是指利用人類交流所使用的自然語言與機器進行交互通訊的技術。通過人為的對自然語言的處理,使得計算機對其能夠可讀並理解。自然語言處理的相關研究始於人類對機器翻譯的探索。雖然自然語言處理涉及語音、語法、語義、語用等多維度的操作,但簡單而言,自然語言處理的基本任務是基於本體詞典、詞頻統計、上下文語義分析等方式對待處理語料進行分詞,形成以最小詞性為單位,且富含語義的詞項單元。
自然語言處理(NaturalLanguageProcessing,NLP)以語言為對象,利用計算機技術來分析、理解和處理自然語言的一門學科,即把計算機作為語言研究的強大工具,在計算機的支持下對語言信息進行定量化的研究,並提供可供人與計算機之間能共同使用的語言描寫。包括自然語言理解(NaturalLanguageUnderstanding,NLU)和自然語言生成(NaturalLanguageGeneration,NLG)兩部分。它是典型邊緣交叉學科,涉及到語言科學、計算機科學、數學、認知學、邏輯學等,關注計算機和人類(自然)語言之間的相互作用的領域。人們把用計算機處理自然語言的過程在不同時期或側重點不同時又稱為自然語言理解(NaturalLanguageUnderstanding,NLU)、人類語言技術(HumanLanguageTechnology,HLT)、計算語言學Hl(ComputationalLinguistics)、計量語言學(QuantitativeLinguistics)、數理語言學(MathematicalLinguistics)。
實現人機間自然語言通信意味著要使計算機既能理解自然語言文本的意義,也能以自然語言文本來表達給定的意圖、思想等。前者稱為自然語言理解,後者稱為自然語言生成。因此,自然語言處理大體包括了自然語言理解和自然語言生成兩個部分。歷史上對自然語言理解研究得較多,而對自然語言生成研究得較少。但這種狀況已有所改變。
無論實現自然語言理解,還是自然語言生成,都遠不如人們原來想象的那麼簡單,而是十分困難的。從現有的理論和技術現狀看,通用的、高質量的自然語言處理系統,仍然是較長期的努力目標,但是針對一定應用,具有相當自然語言處理能力的實用系統已經出現,有些已商品化,甚至開始產業化。典型的例子有:多語種資料庫和專家系統的自然語言介面、各種機器翻譯系統、全文信息檢索系統、自動文摘系統等。
自然語言處理,即實現人機間自然語言通信,或實現自然語言理解和自然語言生成是十分困難的。造成困難的根本原因是自然語言文本和對話的各個層次上廣泛存在的各種各樣的歧義性或多義性(ambiguity)。
自然語言的形式(字元串)與其意義之間是一種多對多的關係。其實這也正是自然語言的魅力所在。但從計算機處理的角度看,我們必須消除歧義,而且有人認為它正是自然語言理解中的中心問題,即要把帶有潛在歧義的自然語言輸入轉換成某種無歧義的計算機內部表示。
歧義現象的廣泛存在使得消除它們需要大量的知識和推理,這就給基於語言學的方法、基於知識的方法帶來了巨大的困難,因而以這些方法為主流的自然語言處理研究幾十年來一方面在理論和方法方面取得了很多成就,但在能處理大規模真實文本的系統研製方面,成績並不顯著。研製的一些系統大多數是小規模的、研究性的演示系統。
目前存在的問題有兩個方面:一方面,迄今為止的語法都限於分析一個孤立的句子,上下文關係和談話環境對本句的約束和影響還缺乏系統的研究,因此分析歧義、詞語省略、代詞所指、同一句話在不同場合或由不同的人說出來所具有的不同含義等問題,尚無明確規律可循,需要加強語用學的研究才能逐步解決。另一方面,人理解一個句子不是單憑語法,還運用了大量的有關知識,包括生活知識和專門知識,這些知識無法全部貯存在計算機里。因此一個書面理解系統只能建立在有限的辭彙、句型和特定的主題範圍內;計算機的貯存量和運轉速度大大提高之後,才有可能適當擴大範圍.
以上存在的問題成為自然語言理解在機器翻譯應用中的主要難題,這也就是當今機器翻譯系統的譯文質量離理想目標仍相差甚遠的原因之一;而譯文質量是機譯系統成敗的關鍵。中國數學家、語言學家周海中教授曾在經典論文《機器翻譯五十年》中指出:要提高機譯的質量,首先要解決的是語言本身問題而不是程序設計問題;單靠若干程序來做機譯系統,肯定是無法提高機譯質量的;另外在人類尚未明了大腦是如何進行語言的模糊識別和邏輯判斷的情況下,機譯要想達到“信、達、雅”的程度是不可能的。
最早的自然語言理解方面的研究工作是機器翻譯。1949年,美國人威弗首先提出了機器翻譯設計方案。其發展主要分為三個階段。
早期自然語言處理
第一階段(60~80年代):基於規則來建立辭彙、句法語義分析、問答、聊天和機器翻譯系統。好處是規則可以利用人類的內省知識,不依賴數據,可以快速起步;問題是覆蓋面不足,像個玩具系統,規則管理和可擴展一直沒有解決。
統計自然語言處理
第二階段(90年代開始):基於統計的機器學習(ML)開始流行,很多NLP開始用基於統計的方法來做。主要思路是利用帶標註的數據,基於人工定義的特徵建立機器學習系統,並利用數據經過學習確定機器學習系統的參數。運行時利用這些學習得到的參數,對輸入數據進行解碼,得到輸出。機器翻譯、搜索引擎都是利用統計方法獲得了成功。
神經網路自然語言處理
第三階段(2008年之後):深度學習開始在語音和圖像發揮威力。隨之,NLP研究者開始把目光轉向深度學習。先是把深度學慣用於特徵計算或者建立一個新的特徵,然後在原有的統計學習框架下體驗效果。比如,搜索引擎加入了深度學習的檢索詞和文檔的相似度計算,以提升搜索的相關度。自2014年以來,人們嘗試直接通過深度學習建模,進行端對端的訓練。目前已在機器翻譯、問答、閱讀理解等領域取得了進展,出現了深度學習的熱潮。
信息抽取(IE)
信息抽取是將嵌入在文本中的非結構化信息提取並轉換為結構化數據的過程,從自然語言構成的語料中提取出命名實體之間的關係,是一種基於命名實體識別更深層次的研究。信息抽取的主要過程有三步:首先對非結構化的數據進行自動化處理,其次是針對性的抽取文本信息,最後對抽取的信息進行結構化表示。信息抽取最基本的工作是命名實體識別,而核心在於對實體關係的抽取。
自動文摘
自動文摘是利用計算機按照某一規則自動地對文本信息進行提取、集合成簡短摘要的一種信息壓縮技術,旨在實現兩個目標:首先使語言的簡短,其次要保留重要信息。
語音識別技術就是讓機器通過識別和理解過程把語音信號轉變為相應的文本或命令的技術,也就是讓機器聽懂人類的語音,其目標是將人類語音中的辭彙內容轉化為計算機可讀的數據。要做到這些,首先必須將連續的講話分解為詞、音素等單位,還需要建立一套理解語義的規則。語音識別技術從流程上講有前端降噪、語音切割分幀、特徵提取、狀態匹配幾個部分。而其框架可分成聲學模型、語言模型和解碼三個部分。
Transformer模型
Transformer模型在2017年,由Google團隊中首次提出。Transformer是一種基於注意力機制來加速深度學習演演算法的模型,模型由一組編碼器和一組解碼器組成,編碼器負責處理任意長度的輸入並生成其表達,解碼器負責把新表達轉換為目的詞。Transformer模型利用注意力機制獲取所有其他單詞之間的關係,生成每個單詞的新表示。Transformer的優點是注意力機制能夠在不考慮單詞位置的情況下,直接捕捉句子中所有單詞之間的關係。模型拋棄之前傳統的encoder-decoder模型必須結合RNN或者CNN(ConvolutionalNeuralNetworks,CNN)的固有模式,使用全Attention的結構代替了LSTM,減少計算量和提高并行效率的同時不損害最終的實驗結果。但是此模型也存在缺陷。首先此模型計算量太大,其次還存在位置信息利用不明顯的問題,無法捕獲長距離的信息。
基於傳統機器學習的自然語言處理技術
Markov(馬爾科夫模型)、CRF(條件隨機場模型)等方法對自然語言中多個子任務進行處理,進一步提高處理結果的精度。但是,從實際應用效果上來看,仍存在著以下不足:(1)傳統機器學習訓練模型的性能過於依賴訓練集的質量,需要人工標註訓練集,降低了訓練效率。(2)傳統機器學習模型中的訓練集在不同領域應用會出現差異較大的應用效果,削弱了訓練的適用性,暴露出學習方法單一的弊端。若想讓訓練數據集適用於多個不同領域,則要耗費大量人力資源進行人工標註。(3)在處理更高階、更抽象的自然語言時,機器學習無法人工標註出來這些自然語言特徵,使得傳統機器學習只能學習預先制定的規則,而不能學規則之外的複雜語言特徵。
基於深度學習的自然語言處理技術
深度學習是機器學習的一大分支,在自然語言處理中需應用深度學習模型,如卷積神經網路、循環神經網路等,通過對生成的詞向量進行學習,以完成自然語言分類、理解的過程。與傳統的機器學習相比,基於深度學習的自然語言處理技術具備以下優勢:(1)深度學習能夠以詞或句子的向量化為前提,不斷學習語言特徵,掌握更高層次、更加抽象的語言特徵,滿足大量特徵工程的自然語言處理要求。(2)深度學習無需專家人工定義訓練集,可通過神經網路自動學習高層次特徵。
內容的有效界定
日常生活中句子間的辭彙通常是不會孤立存在的,需要將話語中的所有詞語進行相互關聯才能夠表達出相應的含義,一旦形成特定的句子,詞語間就會形成相應的界定關係。如果缺少有效的界定,內容就會變得模稜兩可,無法進行有效的理解。例如他背著母親和姐姐悄悄的出去玩了。這句話中如果不對介詞“和”作出界定,就很容易形成母親和姐姐兩個人不知道他出去玩,或者是母親不知道他和姐姐出去玩。
消歧和模糊性
詞語和句子在不同情況下的運用往往具備多個含義,很容易產生模糊的概念或者是不同的想法,例如高山流水這個詞具備多重含義,既可以表示自然環境,也能表達兩者間的關係,甚至是形容樂曲的美妙,所以自然語言處理需要根據前後的內容進行界定,從中消除歧義和模糊性,表達出真正的意義。
有瑕疵的或不規範的輸入
例如語音處理時遇到外國口音或地方口音,或者在文本的處理中處理拼寫,語法或者光學字元識別(OCR)的錯誤。
語言行為與計劃
句子常常並不只是字面上的意思;例如,“你能把鹽遞過來嗎”,一個好的回答應當是把鹽遞過去;在大多數上下文環境中,“能”將是糟糕的回答,雖說回答“不”或者“太遠了我拿不到”也是可以接受的。再者,如果一門課程上一年沒開設,對於提問“這門課程去年有多少學生沒通過?”回答“去年沒開這門課”要比回答“沒人沒通過”好。
計算機科學
自然語言處理的最初目的就是實現人和計算機的自然語言對話,計算機作為對話的一個主體是自然語言處理這個概念提出的先決條件。長久以來人們對於機器人應用於生活,成為重要生產力推動社會發展,尤其是使機器人擁有“人的智能”就充滿了憧憬,自然語言處理作為人工智慧領域的一個重要組成部分,對於推動機器人的真正智能化有標誌性作用。近年來計算機性能在數據存儲能力、處理速度等方面的大幅提升,為海量數據的處理、概率統計,為發現語言的規律、獲得內在聯繫成為可能。
網際網路技術
網際網路的出現使信息的傳播更加便捷,依託於網際網路技術出現的各種新媒體是信息已成為信息傳播的主要途徑,各種網路聊天軟體增加了人們溝通交流的途徑,這些以文字形式出現具有保存一定時間要求的信息帶來了數據的爆炸式增長,為利用基於統計的自然語言處理提供了海量資源。依託於網際網路技術,出現的開源平台,也是研究者們獲取研究資源的重要途徑。
機器學習方法
機器學習是利用數據和經驗改進計算機演演算法、優化計算機性能的多領域交叉學科,可以追溯到17世紀的最小二乘法、馬爾科夫鏈,但是其真正發展起來應該從20世紀50年代算起,經歷了“有無知識的學習”的執行、基於圖結構及邏輯結構進行系統描述、結合各種應用拓展到對多個概念學習三個階段的發展,自20世紀80年代重要進入更新的、能夠真正使計算機智能化的第四階段。
深度學習是一種計算機自動學習演演算法,包括輸入層、隱含層、輸出層三部分,其中輸入層是研究人員提供的大量數據,是演演算法的處理對象,隱含層的層數由實驗人員確定,是演演算法對數據進行特徵標記、發現其中規律、建立特徵點間聯繫的過程,輸出層則是研究人員可以得到的結果,一般來說輸入層得到的數據越多,隱含層的層數越多,對數據的區分結果也就越好,但是帶來的問題是計算量的加大、計算難度的提升,所幸計算機硬體在近年來取得飛躍。作為推動自然語言處理的最新動力,機器學習展現出了前所未有的優勢:
(一)克服了語言特徵人工標記的稀疏性的缺點,深度學習可以利用分散式向量對詞做分類,詞類標籤、詞義標籤、依存關係等可以得到有效標記;
(二)克服了語言特徵人工標記不完整的問題,人工的語言標記由於工作量的繁重,被遺漏的可能性很大,而高效率的計算機進行此項工作可以大大減少這種失誤;
(三)克服了傳統機器學習演演算法計算量大、計算時間長的問題,深度學習利用矩陣進行計算將計算量大幅壓縮。
StanfordNLP:學界常用的NLP演演算法庫。
中文NLP工具:THULAC、哈工大LTP、jieba分詞。
預訓練技術
預訓練思想的本質是模型參數不再隨機初始化,而是通過語言模型進行訓練。目前NLP各項任務的解決思路是預訓練加微調。預訓練對於NLP任務有著巨大的提升幫助,而預訓練語言模型也越來越多,從最初的Word2vec]、Glove到通用語言文本分類模型ULMFiT以及EMLo等。而當前最優秀的預訓練語言模型是基於Transformer模型構建。該模型是由Vaswani等人提出的,其是一種完全基於Self-Attention所構建的,是目前NLP領域最優秀的特徵提取器,不但可以并行運算而且可以捕獲長距離特徵依賴。
當前影響最大的預訓練語言模型是基於Transformer的雙向深度語言模型—BERT。BERT是由多層雙向Transformer解碼器構成,主要包括2個不同大小的版本:基礎版本有12層Transformer,每個Transformer中的多頭注意力層是12個,隱藏層大小為768;加強版有24層Transformer,每個Transformer中的多頭注意力層是24個,隱藏層大小為1024。由此可見深而窄的模型效果要優於淺而寬的模型。目前BERT在機器翻譯、文本分類、文本相似性、閱讀理解等多個任務中都有優異的表現。BERT模型的訓練方式包括2種:(1)採用遮蓋單詞的方式。(2)採用預測句子下一句的方式。
通過上述2種方式訓練得到通用語言模型,然後利用微調的方法進行下游任務,如文本分類、機器翻譯等任務。較比以前的預訓練模型,BERT可以捕獲真正意義上的雙向上下文語義。但BERT也有一定的缺點,既在訓練模型時,使用大量的[MASK]會影響模型效果,而且每個批次只有15%的標記被預測,因此BERT在訓練時的收斂速度較慢。此外由於在預訓練過程和生成過程不一致,導致在自然語言生成任務表現不佳,而且BERT無法完成文檔級別的NLP任務,只適合於句子和段落級別的任務。
XLNet是一種廣義自回歸的語言模型,是基於Transformer-XL而構建的。Transformer的缺點:(1)字元之間的最大依賴距離受輸入長度的限制。(2)對於輸入文本長度超過512個字元時,每個段都是從頭開始單獨訓練,因此使訓練效率下降,影響模型性能。針對以上2個缺點,Transformer-XL引入了2個解決方法:分割循環機制(DivisionRecurrenceMechanism)和相對位置編碼(RelativePositionalEncoding)。Transformer-XL的測試速度更快,可以捕獲更長的上下文長度。
無監督表徵學習在NLP領域取得了巨大成功,在這種理念下,很多研究者探索了不同的無監督預訓練目標,而自回歸語言建模和自編碼語言是2個最成功的預訓練目標。而XLNet是一種集合了自回歸和自編碼2種方式的泛化自回歸方法。XLNet不使用傳統自回歸模型中的固定前向或後向因式分解順序,而使用一種隨機排列自然語言預測某個位置可能出現的詞,這種方式不僅可以使句子中的每個位置都能學習來自所有位置的語境信息,而且還可以構建雙向語義,更好地獲取上下文語義。由於XLNet採用的是Transformer-XL,因此模型性能更優,尤其在包含長文本序列的任務中。
無論是BERT還是XLNet語言模型,在英文語料中表現都很優異,但在中文語料中效果一般,ERNIE則是以中文語料訓練得出一種語言模型。ERNIE是一種知識增強語義表示模型,其在語言推斷、語義相似度、命名實體識別、文本分類等多個NLP中文任務上都有優異表現。ERNIE在處理中文語料時,通過對預測漢字進行建模,可以學習到更大語義單元的完整語義表示。ERNIE模型內部核心是由Transformer所構成。模型結構主要包括2個模塊,下層模塊的文本編碼器(T-Encoder)主要負責捕獲來自輸入標記的基本辭彙和句法信息,上層模塊的知識編碼器(KEncoder)負責從下層獲取的知識信息集成到文本信息中,以便能夠將標記和實體的異構信息表示成一個統一的特徵空間中。
圖神經網路技術
圖神經網路(GraphNeuralNetwork)的研究主要是集中在相鄰節點信息的傳播與聚合上,從圖神經網路的概念提出,到受深度學習中卷積神經網路的啟發。圖神經網路對於非歐幾里德數據在深度學習中的應用有著非常重要的地位,尤其是利用圖結構在傳統貝葉斯因果網路上可解釋的特點,在定義深度神經網路關係可推理、因果可解釋的問題上有很大的研究意義。如何利用深度學習方法對圖結構的數據進行分析和推理吸引了非常多的研究和關注。
通用的圖神經網路推理過程可以通過圖節點預表示、圖節點採樣、子圖提取、子圖特徵融合、圖神經網路的生成和訓練子過程來表示,具體步驟如下:
STEP1圖節點預表示:通過圖嵌入(GraphEmbedding)的方法對圖中每一個節點進行嵌入表示;
STEP2圖節點採樣:對圖中每個節點或存在的節點對的正負樣本進行採樣;
STEP3子圖提取:提取圖中每一個節點的鄰節點構建n階子圖,其中n表示第n層的鄰節點,從而形成通用的子圖結構;
STEP4子圖特徵融合:對每一個輸入神經網路的子圖進行局部或全局的特徵提取;
STEP5生成圖神經網路和訓練:定義網路的層數和輸入輸出的參數,並對圖數據進行網路訓練。
1.圖卷積神經網路
深度學習的流行與卷積神經網路的廣泛適用性密不可分,圖神經網路的研究中時間最長、研究成果最多的就是圖卷積神經網路,從特徵空間來看圖卷積神經網路主要可以分為頻域和空間域兩個類型。
頻域的圖卷積神經網路基於圖信號處理問題,將圖神經網路的卷積層定義為一個濾波器,即通過濾波器去除雜訊信號從而得到輸入信號的分類結果。實際問題中只能用於處理無向且邊上無信息的圖結構,將輸入信號的圖定義為可特徵分解的拉普拉斯矩陣,歸一化后的特徵分解可以表示為通用結構其對角矩陣𝑨就是特徵值的𝜆𝑖按序排列組成的特徵矩陣。
2.基於空間的圖卷積神經網路
與深度學習中卷積神經網路對圖像的像素點進行卷積運算類似,基於空間的圖卷積神經網路通過計算中心單一節點與鄰節點之間的卷積,來表示鄰節點間信息的傳遞和聚合,作為特徵域的新節點表示。
自然語言處理領域一直是基於規則和基於統計2種研究方法交替佔據主導地位,2種研究都先後遇到瓶頸,基於規則和傳統機器學習的方法到達一定階段后就很難再取得更大的突破,直到計算能力和數據存儲的提升才極大地促進了自然語言處理的發展。語音識別的突破使得深度學習技術變得非常普及。取得較大進展的還有機器翻譯,谷歌翻譯目前用深度神經網路技術將機器翻譯提升到了新的高度,即使達不到人工翻譯標準也足以應對大部分的需求。信息抽取也變得更加智能,能更好地理解複雜句子結構和實體間關係,抽取出正確的事實。深度學習推動了自然語言處理任務的進步,同時自然語言處理任務也為深度學習提供了廣闊的應用前景,使得人們在演演算法設計上投入得更多。人工智慧的進步會繼續促進自然語言處理的發展,也使得自然語言處理面臨著如下挑戰:
1)更優的演演算法。人工智慧發展的三要素(數據、計算能力和演演算法)中,與自然語言處理研究者最相關的就是演演算法設計。深度學習已經在很多任務中表現出了強大的優勢,但後向傳播方式的合理性近期受到質疑。深度學習是通過大數據完成小任務的方法,重點在做歸納,學習效率是比較低的,而能否從小數據出發,分析出其蘊含的原理,從演繹的角度出發來完成多任務,是未來非常值得研究的方向。
2)語言的深度分析。儘管深度學習很大程度上提升了自然語言處理的效果,但該領域是關於語言技術的科學,而不是尋找最好的機器學習方法,核心仍然是語言學問題。未來語言中的難題還需要關注語義理解,從大規模網路數據中,通過深入的語義分析,結合語言學理論,發現語義產生與理解的規律,研究數據背後隱藏的模式,擴充和完善已有的知識模型,使語義表示更加準確.語言理解需要理性與經驗的結合,理性是先驗的,而經驗可以擴充知識,因此需要充分利用世界知識和語言學理論指導先進技術來理解語義。分散式詞向量中隱含了部分語義信息,通過詞向量的不同組合方式,能夠表達出更豐富的語義,但詞向量的語義作用仍未完全發揮,挖掘語言中的語義表示模式,並將語義用形式化語言完整準確地表示出來讓計算機理解,是將來研究的重點任務。
3)多學科的交叉。在理解語義的問題上,需要尋找一個合適的模型。在模型的探索中,需要充分借鑒語言哲學、認知科學和腦科學領域的研究成果,從認知的角度去發現語義的產生與理解,有可能會為語言理解建立更好的模型。在科技創新的今天,多學科的交叉可以更好地促進自然語言處理的發展。
深度學習為自然語言處理帶來了重大技術突破,它的廣泛應用極大地改變了人們的日常生活。當深度學習和其他認知科學、語言學結合時,或許可以發揮出更大的威力,解決語義理解問題,帶來真正的“智能”。
儘管深度學習在NLP各個任務中取得了巨大成功,但若大規模投入使用,仍然有許多研究難點需要克服。深度神經網路模型越大,使得模型訓練時間延長,如何減小模型體積但同時保持模型性能不變是未來研究的一個方向。此外深度神經網路模型可解釋性較差,在自然語言生成任務研究進展不大。但是,隨著深度學習的不斷研究深入,在不久的將來,NLP領域將會取得更多研究成果和發展。