LV. 10
GP 508

RE:【情報】GOOGLE已經抵達科技奇異點

樓主 蘋果手機 iphone6splus
GP1 BP-
※ 引述《digong94 (垂暮龍-青月)》之銘言
> 在我看來很簡單的問題就是,既然可以解析文法甚至一定規範的文字。
> 一個則嘗試"解釋"不清楚的事情
> 那請問這AI真的能解釋多少不清楚的事情?而且是"符合成本的"?
> 另外語言就高低階之分,除此之外就是抽象,低階語言也一樣會提供相應合要求方便卻不損失效率的方法。
> 如果我現在能造出硬體設備,專門接聽"術語"解決問題。
> 另一個是先進的AI,專門解決那些講得很奇怪整不在一起的要求。
> 你覺得哪個快? AI還更貴,而一個卻能更為嘗試親和化去改進。
> 說到底跟經驗有關,我認為還是別太輕易說未來會被取代,除非真的簡單。

人的功能不是只能理解什麼叫做燈泡壞了,人類如果能處理1000萬種不同的問題

例如,人類能知道什麼叫做去開門、下樓買菜、去倒垃圾、和煮咖哩飯給我吃這些語意

等等1000萬種功能,但是機器人的解決方案和人工智慧處理

目前是停留在分別開發1000萬種不同的情境,需要1000萬套不同的程式分別處理問題

例如阿爾法狗專門優化下圍棋,如果要他跟李世石一樣會開車會交女朋友會和人辯論

會其他1000萬種功能目前機器是辦不到,單看一種問題機器是有辦法達成的

例如去開門,機器人可以透過深度學習辦法認識「門」這個物件機器認識「貓」也是同理

而開門是一個動詞,就需要人類去定義「開」到底是什麼意義,

據體到執行層面的細節就可能牽扯到上萬行程式碼

例如人類有辦法知道要握緊門把在轉動,這就是定義「開」

而當開+門的組合形成的語意理解,也就是自然語言處理,機器比不上人類

例如機器要如何辨別「開門」和幫我「開燈」這兩種語意相同但是動作完全不同的「開」字

一個是機器手臂握緊門把在以適當角度旋轉的定義為「開」

另一個是把機器手指放到電燈開關上....在往前施力,

然後跟據傳感器的數據反饋壓力變化配合機器視覺處理,這種定義的「開」

形成的「開燈」和「開門」兩種不同語意,但「文法上相同的開」,
執行層面完全不同的開

但是有1000萬種「開」以此需要1000萬種解決方案和程式設計組合需要定義開

而且門把不一定都是喇叭鎖可能有自動門和大鐵門等1000種門把,都需要定義「開」

因此如果一種開需要1000行程式碼X1000種門把乘上X 1000萬種開的定義(例如開冷氣)


,這樣需要訓練的資料和維度和層數會成指數增加的局面

雖然有機器「自然語言處理+語意理解」這種人工智慧學科在發展 但是進展非常慢,

電腦因為目前暫時缺乏寬泛的理解能力和心智

如果要求機器有這種能力,那麼就等於是實現了強人工智慧


我並不認為強人工智慧不可能達成,如果以長時間來看例如:半個世紀50年是有可能的

但是以10~20年的時間尺度來看,人工智慧「暫時」只有弱人工智慧。

要什麼時候才能讓麥當勞餐廳和沃爾馬超市裡的店員失業呢?

假設麥當勞員工的薪水1個月數萬*12個月*10年=數百萬的薪水

當自動點餐+做餐成本比一台機器人更低的時候

例如麥當勞機器人店員自動幫客人點餐、做餐、補貨?當有了

「自然語言處理+語意理解+深度學習+非監督式學習+增強學習」就有可能達成

在配合NPU神經元處理器的高效率硬體或者更慢一些的GPGPU和CUDA硬體

深度學習浪潮中的自然語言處理技術


1. 引言
語言是思維的載體,是人類交流思想、表達情感最自然的工具,也是人類區別其他動物的本質特性。自然語言處理(Natural LanguageProcessing,簡稱NLP)主要研究用計算機來處理、理解以及運用人類語言(又稱自然語言)的各種理論和方法,屬於人工智慧領域的一個重要的研究方向,是計算機科學與語言學的交叉學科,又常被稱為計算語言學[1]。隨著網際網路的快速發展,網絡文本成爆炸性增長,為自然語言處理提出了巨大的應用需求。同時,自然語言處理研究的進步,也為人們更深刻的理解語言的機理和社會的機制提供了一種新的途徑,因此具有重要的科學意義。
隨著深度學習技術在越來越多的任務中所取得的突破性進展,有越來越多相關領域的學者將注意力轉移到了人工智慧皇冠上的那顆明珠—自然語言處理問題上。如著名的機器學習專家,美國加州大學伯克利分校的 Michael Jordan教授說:「如果有一筆10億美金的資助,我會將它用於自然語言處理的研究」。深度學習研究的領軍人物之一,美國紐約大學教授、Facebook人工智慧研究院負責人YannLeCun也曾表示「深度學習的下一個前沿課題是自然語言理解」[2]。
然而,由於自然語言所具有的歧義性、動態性和非規範性,同時語言理解通常需要豐富的知識和一定的推理能力,這些都為自然語言處理帶來了極大的挑戰。目前,機器學習技術為以上問題提供了一種可行的解決方案,成為研究的主流,該研究領域又被稱為統計自然語言處理[3]。一個統計自然語言處理系統通常由兩部分組成,即訓練數據(也稱樣本)和統計模型(也稱算法)。我們總結了目前自然語言處理中常用的模型和數據,如下表所示:
但是,傳統的機器學習方法在數據獲取和模型構建等諸多方面,都存在嚴重的問題:首先,為獲得大規模的標註數據,傳統方法需要花費大量的人力、物力、財力,僱用語言學專家進行繁瑣的標註工作。然而由於這種方法存在標註代價高、規範性差等問題,很難獲得大規模高質量的人工標註數據,由此帶來了嚴重的數據稀疏問題。
其次,在傳統的自然語言處理模型中,通常需要人工設計模型所需要的特徵以及特徵組合。這種人工設計特徵的方式,需要開發人員對所面對的問題有深刻的理解和豐富的經驗,這會消耗大量的人力和時間,即便如此也往往很難獲得有效的特徵。
近年來,如火如荼的深度學習技術為這兩方面的問題提供了一種可能的解決思路,有效推動了自然語言處理技術的發展。那麼,什麼是深度學習,它究竟給自然語言處理帶來了哪些創新性的想法,如何將深度學習技術更好的應用於自然語言處理,深度學習與自然語言處理的未來研究方向是什麼呢?本文試圖就這些問題加以回答。

2. 基於深度學習的自然語言處理

深度學習旨在模擬人腦對事物的認知過程,一般是指建立在含有多層非線性變換的神經網絡結構之上,對數據的表示進行抽象和學習的一系列機器學習算法。該方法已對語音識別、圖像處理等領域的進步起到了極大的推動作用,同時也引起了自然語言處理領域學者的廣泛關注。
如下圖所示,深度學習為自然語言處理的研究主要帶來了兩方面的變化:一方面是使用統一的分佈式(低維、稠密、連續)向量表示不同粒度的語言單元,如詞、短語、句子和篇章等;另一方面是使用循環、卷積、遞歸等神經網絡模型對不同的語言單元向量進行組合,獲得更大語言單元的表示。除了不同粒度的單語語言單元外,不同種類的語言、甚至不同模態(語言、圖像等)的數據都可以通過類似的組合方式,表示在相同的語義向量空間中,然後通過在向量空間中的運算來實現分類、推理、生成等各種能力,並應用於各種相關的任務之中。下面我們分別對這兩方面加以詳細的闡述:
2.1 分佈式表示(Distributed Representation)
深度學習最早在自然語言處理中的應用是神經網絡語言模型,其背後的一個基本假設是使用低維、稠密、連續的向量表示詞彙,又被稱為分佈式詞表示(Distributed Word Representation)或詞嵌入(WordEmbedding)。從直覺上來講,使用該項技術,可以將相似的詞彙表示為相似的向量,如「馬鈴薯」和「土豆」的詞向量比較相似。這樣,如果我們在訓練數據中只觀察到了「馬鈴薯」,即使在測試的時候出現了「土豆」,我們也能通過詞向量判斷其與「馬鈴薯」比較相似,從而在一定程度上緩解了自然語言處理中常見的數據稀疏問題。
在理論上,將原有高維、稀疏、離散的詞彙表示方法(又稱One-hot表示)映射為分佈式表示是一種降維方法,可有效克服機器學習中的「維數災難(Curse ofDimensionality)」問題,從而獲得更好的學習效果。同時這種分佈式表示的表達能力更強,理論上其表達能力與其維度成指數關係,而傳統離散表示是線性關係。另外一種對分佈式詞表示的理解是,不同維度表示了詞的不同主題,各維度上的數值表示了一個詞對於不同主題的權重,這相當於將原來線性不可分的一個詞抽取出其各個屬性,從而更有利於分類(最終還是線性分類)。這就好比我們要區分不同種族的人,只通過人名(相當於傳統的離散詞表示方式)不好區分,而如果能將每個人抽取出各種「屬性-值」對(相當於轉換為分佈式詞表示),如眼睛的顏色、鼻子的高度等,就更容易進行人種的區分了。
分佈式詞表示近年來被廣泛應用於自然語言處理中,通常有直接和間接兩種應用方式。所謂直接應用,即使用學習到的分佈詞表示進行詞語之間的相似度計算或者句法語義關係的學習。事實上,對詞語之間相似度的表達能力,也一度被用於評價學習獲得的分佈式詞表示,常用的評測集有WordSim-353 (英文)等。
另一方面,分佈式詞表示能夠在一定程度上表達特定的句法語義關係則是其另一個非常有趣的性質。這種性質首先由Mikolov等發現[5],他們通過對數據的觀察,發現滿足相同句法或語義關係的兩個詞對,其分佈式表示的差向量也非常接近,如:V(「Woman」 )-V(「Man」 )≒V(「Queen」 )-V(「King」)。這意味著,只需要通過簡單的向量運算,就可以表達詞彙之間所蘊含的句法或語義關係。該性質後來被廣泛應用於知識圖譜(Knowledge Graph)或本體(Ontology)的構建等任務[6]。
分佈式詞表示的另一方面應用為間接應用,即將其作為上層系統的輸入,利用該表示的各種優秀性質,提高上層系統的準確率。最簡單的做法是將分佈式詞表示作為額外的特徵輸入給上層系統[7],這樣上層系統可以不進行任何修改,仍然使用傳統的線性模型,通過分佈式詞表示增強詞彙特徵的泛化能力,提高準確率。另一種做法是將上層系統替換為多層非線性神經網絡模型,這樣分佈式詞表示在作為特徵輸入給系統的同時,也可以通過反向傳播機制進行微調(Fine-tuning),從而更加適用於具體的自然語言處理任務。
2.2 語義組合(Semantic Composition)
分佈式詞表示的思想可以進一步擴展,即通過組合(Composition)的方式來表示短語、句子甚至是篇章等更大粒度的語言單元。目前,主要通過三種神經網絡結構來實現不同的組合方式,即:循環神經網絡(順序組合)、卷積神經網絡(局部組合)和遞歸神經網絡(根據句法結構進行組合)[8]。下面我們以句子「我 喜歡 紅蘋果」為例,說明不同組合方式的基本原理及其優缺點,具體可以參見上圖中「深度學習」部分。
循環神經網絡(RNN,Recurrent Neural Network)從左至右順序的對句子中的單元進行兩兩組合,首先將「我」和「喜歡」組合,生成隱層h1,然後將h1與「紅」進行組合,生成h2,以此類推。傳統的循環神經網絡模型存在嚴重的梯度消失(Vanishing Gradient)或者梯度爆炸(ExplodingGradient)問題,尤其是當句子較長,即網絡的層數較多時。深度學習中一些常用的技術,如使用ReLU激活函數、正則化以及恰當的初始化權重參數等都可以部分解決這一問題。另一類更好的解決方案是減小網絡的層數,以LSTM和GRU等為代表的帶門循環神經網絡(GatedRNN)都是這種思路,即通過對網絡中門的控制,來強調或忘記某些輸入,從而縮短了其前序輸入到輸出的網絡層數,從而減小了由於層數較多而引起的梯度消失或者爆炸問題。
卷積神經網絡(CNN,Convolutional Neural Network)目前被廣泛應用於圖像處理領域,它考慮了生物神經網絡中的局部接收域(ReceptionField)性質,即隱含層神經元只與部分輸入層神經元連接,同時不同隱含層神經元的局部連接權值是共享的。這一性質在很多自然語言處理的任務中也有所體現,如對評論文本進行分類,最終的褒貶性往往由局部的一些短語決定,同時不需要顧及這些短語在文本中的位置信息。例如,只要評論中含有「我喜歡」,就說明該評論是褒義的。由於存在局部接收域性質,各個隱含神經元的計算可以並行的進行,這就可以充分利用現代的硬體設備(如GPU),加速卷積神經網絡的計算,這一點在循環神經網絡中是較難實現的。
遞歸神經網絡(RecNN,Recursive Neural Network)首先對句子進行句法分析,將順序結構轉化為樹狀結構,然後利用該結構來構建深度神經網絡。因此在對句子「我 喜歡 紅蘋果」進行組合時,首先組合「紅」和「蘋果」,生成隱層h1,然後再組合「喜歡」和h1,獲得h2,以此類推。由此可見,該方法充分考慮了語言的遞歸組合性質,不會出現在循環或者遞歸神經網絡中可能出現的任意無意義的組合,如「喜歡紅」等。同時,對於如語義關係分類等任務,往往需要識別兩個距離較遠的實體之間的語義關係,如句子「在哈爾濱工業大學本科生院成立典禮上,校長周玉表示,……」中,「哈爾濱工業大學」和「周玉」距離較遠,他們中間的詞彙往往對循環或者卷積神經網絡模型構成了干擾,而遞歸神經網絡利用句法結構,會將兩個實體的距離拉近,從而去除不必要的干擾,提升分析的準確率。當然,遞歸神經網絡模型也受限於句法分析的準確率,因為一旦句法分析出現了錯誤,則會產生錯誤的組合方式,從而影響最終的結果。
2.3 應用
通過組合,產生不同粒度語言單元的(向量)表示方式,然後通過在向量空間中的運算,就可以支撐多種多樣的應用。例如,想要識別兩個句子是否互為複述(Paraphrase),就可以使用以上任意一種神經網絡結構,將兩個句子分別表示為兩個向量,並通過在其之上再構建神經網絡構成二元分類器的方式,判斷兩個向量之間是否互為複述[9]。然後通過反向傳播(BackPropagation)算法,就可以學習獲得三個神經網絡的參數。
另外,兩個單元也可以是不同的粒度,如完形填空,空白處的上下文可以使用神經網絡表示為向量,候選詞也可以使用向量表示,然後同樣使用另一個神經網絡模型判斷它們之間是否匹配從而判斷填入該詞是否合適。
這種以向量的形式表示,然後再計算的思想可以擴展為多種語言,從而實現機器翻譯等功能。對於機器翻譯,我們首先將源語言表示為向量,該向量代表了源語言的語義信息,然後根據該向量,逐詞的生成目標語言[10]。這套方法又被稱為編碼-解碼(Encoder-Decoder)或者序列到序列(seq2seq,sequence tosequence)的框架。現實情況中,很難用一個向量表示源語言全部的信息,所以在生成一個目標語言詞的時候,如果能有其對應的源語言詞作為輸入,則生成的詞會更準確。由於兩種語言之間的詞並非一一對應,所以很難判斷當前的目標語言的詞是由那個源語言生成的,於是人們設計出注意力(Attention)機制[11],即當前目標語言的詞是全部源語言的詞經過加權求和後的向量及前一個目標詞的隱含層向量(ht-1)共同生成的,每個權重由ht-1和每個源語言詞的隱層向量(hs)共同決定,源語言的詞權重越大說明其對生成該目標語言的貢獻越大,這其實也隱含說明這兩個詞越對齊。
以上的這種seq2seq思想又可以進一步被應用於更多的自然語言處理任務中,如抽象式文摘(Abstractive Summarization)這一前人很難觸及的任務。傳統的文摘研究多集中於抽取式文摘(ExtractiveSummarization),即從篇章中摘取重要的句子組成文摘,而缺乏有效的手段能夠將句子打破。基於seq2seq技術,就可以將原文表示為一個向量,然後通過該向量,逐詞的生成連貫的文摘,從而不受限於必須抽取原文中的句子。
再進一步將該思想進行擴展,我們是否也可以將圖片或者視頻表示為向量,然後在生成對應的文字描述呢?這正是圖像字幕生成(Image Caption Generation)這一非常有趣的研究任務所採用的基本思想,其中圖像的向量可以由卷積神經網絡來生成[12]。
另外,一些傳統的自然語言處理任務,如詞性標註、句法語義分析等也都受益於深度學習方法。我們以基於轉移的句法分析器為例,該方法使用一系列由初始到終止的狀態(State或Configuration)表示句法分析的過程,一個狀態經過一個轉移動作(Action),如移進(Shift)或歸約(Reduce),變為一個新的狀態。我們的目的就是要學習一個分類器,其輸入為一個狀態,輸出為該狀態下最可能的動作。具體介紹可以參見Google最新發佈的SyntaxNet文檔(https://github.com/tensorflow/models/tree/master/syntaxnet)。傳統的方法通過抽取一系列人工定義的特徵來表示狀態,即分類的依據,如棧(Stack)頂的詞、詞性,緩存(Buffer)頂的詞、詞性以及各種特徵組合等。顯然,這種人工定義特徵的方式存在特徵定義不完備等問題。因此,可以採用任一種神經網絡結構,如LSTM循環神經網絡[13],來更全面地表示一個狀態,從而省去了繁瑣的特徵定義過程,並能夠獲得更好的分類效果。
2.4 數據
在應用以上深度學習模型的過程中,一個比較棘手的問題是隨著網絡變得越來越複雜,其表示能力也越來越強,其中的參數也越來越多,由此帶來的問題是如果訓練數據規模不夠大,則很容易使模型陷入過擬合的狀態。
傳統利用語言學專家進行數據標註的方法需要花費大量的人力、物力、財力,存在標註代價高、規範性差等問題,很難獲得大規模高質量的人工標註數據。為瞭解決數據獲取的難題,比較直接的是利用眾包的方式獲取大規模的標註數據。當然,對於大公司而言,還可以利用寶貴的平台數據,如搜尋引擎的日誌、聊天記錄等。除此之外,還可以利用大規模的弱標註數據,其實生文本自身就是非常有價值的弱標註數據,藉此我們已經能夠訓練語言模型、詞或句子的分佈式向量表示等等。另外,我們還需要積極尋找大規模的弱標註數據,如DeepMind曾利用新聞網站提供的人工新聞摘要數據自動生成完型填空數據[14]、電子商務網站中用戶對商品的評分數據等等。
最後,受到圖像處理研究的啟發,我們還可以利用大規模人工自動構造數據,如可以通過對原始圖像進行旋轉、伸縮等操作,獲取更多的訓練圖像,在自然語言處理中,是否也可以通過對文本進行一定的變換,從而獲得大規模的訓練數據呢?如將正規文本中的詞隨機地替換為錯誤的詞,從而構建語法糾錯任務的訓練數據等。相關的研究還處於起步階段,相信今後會被給予更多的關注。

3. 總結

通過分佈式表示以及語義組合這兩個特性,深度學習為自然語言處理帶來了很多新的發展機遇:一方面可以通過更好地表達特徵,來提高自然語言處理系統的性能;另一方面通過seq2seq等機制,實現過去較難實現的一些任務。為了更好地訓練深度學習模型,尋找和構建大規模弱標註數據成為我們需要關注的另一個主要的研究方向。
基於深度學習的自然語言處理技術方興未艾,不但目前已近取得了良好的效果,而且具有非常廣闊的研究前景。首先,可以進一步發揮分佈式表示和語義組合的潛力,拓展更多的應用,如目前被很多大公司關注的閱讀理解問題;其次,除了多粒度、多語言以及多模態以外,不同的學習任務也可以共享同一套向量表示,從而將一種任務中學習獲得的表示應用於另一種任務中,實現遷移學習或多任務學習這些更類似人類學習的方式;再次,很多自然語言處理任務,如對話生成,有賴於更大的上下文或者語境的,傳統基於人工定義特徵的方式很難對其進行建模,而深度學習模型則提供了一種對語境進行建模的有效方式;最後,無論何種神經網絡模型,都是基於固定的網絡結構進行組合,我們是否有可能基於動態變化的網絡結構進行學習呢?傳統的有監督學習框架很難實現該目標,而強化學習(ReinforcementLearning)框架為我們提供了一種自動學習動態網絡結構的途徑。

1
-
未登入的勇者,要加入討論嗎?
板務人員:

4206 筆精華,09/13 更新
一個月內新增 2
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】