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