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