零基礎入門深度學習(十二):天然語言處理的變遷

課程名稱 | 零基礎入門深度學習算法

授課講師 | 周湘陽 百度深度學習技術平臺部資深研發工程師安全

01網絡

課程介紹機器學習

本課程是百度官方開設的零基礎入門深度學習課程,主要面向沒有深度學習技術基礎或者基礎薄弱的同窗,幫助你們在深度學習領域實現從0到1+的跨越。從本課程大綱爲:函數

  1. numpy實現神經網絡構建和梯度降低算法學習

  2. 深度學習基礎知識測試

  3. 計算機視覺領域主要方向的原理、實踐優化

  4. 天然語言處理領域主要方向的原理、實踐ui

  5. 個性化推薦算法的原理、實踐搜索引擎

前面的文章介紹了前三章的內容,今天咱們開啓第四章《天然語言處理領域主要方向的原理、實踐》的學習。在本文中百度深度學習技術平臺部資深研發工程師周湘陽,爲你們介紹天然語言處理領域的基本內容。

02

天然語言處理從古至今是如何發展的?

天然語言處理(Natural Language Processing,簡稱NLP)被譽爲人工智能皇冠上的明珠,是計算機科學和人工智能領域的一個重要方向。它主要研究人與計算機之間,使用天然語言進行有效通訊的各類理論和方法。簡單來講,計算機以用戶的天然語言形式做爲輸入,在其內部經過定義的算法進行加工、計算等系列操做後(用以模擬人類對天然語言的理解),再返回用戶所指望的結果,如 圖1 所示。
 

圖1:天然語言處理示意圖

天然語言處理是一門融語言學、計算機科學和數學於一體的科學。它不只限於研究語言學,而是研究能高效實現天然語言理解和天然語言生成的計算機系統,特別是其中的軟件系統,所以它是計算機科學的一部分。

隨着計算機和互聯網技術的發展,天然語言處理技術在各領域普遍應用,如 圖2 所示。在過去的幾個世紀,工業革命用機械解放了人類的雙手,在當今的人工智能革命中,計算機將代替人工,處理大規模的天然語言信息。咱們平時經常使用的搜索引擎,新聞推薦,智能音箱等產品,都是以天然語言處理技術爲核心的互聯網和人工智能產品。

圖2:天然語言處理技術在各領域的應用

此外,天然語言處理技術的研究也在突飛猛進變化,每一年投向ACL(Annual Meeting of the Association for Computational Linguistics,計算語言學年會,天然語言處理領域的頂級會議)的論文數成倍增加,天然語言處理的應用效果被不斷刷新,有趣的任務和算法更是層出不窮。

本節爲您簡要介紹天然語言處理的發展歷程、主要挑戰,以及如何使用飛槳快速完成各項常見的天然語言處理任務。


致命密碼:一場關於語言的較量

事實上,人們並不是只在近代纔開始研究和處理天然語言,在漫長的歷史長河中,對天然語言穩當處理每每決定了戰爭的勝利或是政權的更迭。

16世紀的英國大陸,英格蘭和蘇格蘭剛剛完成統一,統治者爲英格蘭女王伊麗莎白一世,蘇格蘭女王瑪麗因被視爲威脅而遭到囚禁。瑪麗女王和其餘蘇格蘭貴族謀反,這些貴族們經過信件同被囚禁的瑪麗女王聯絡,商量如何營救瑪麗女王並推翻伊麗莎白女王的統治。爲了能更安全地跟同夥溝通,瑪麗使用了一種傳統的文字加密形式 - 凱撒密碼對她們之間的信件進行加密,如 圖3 所示。

圖3:凱撒密碼

這種密碼經過把原文中的每一個字母替換成另一個字符的形式,達到加密手段。然而他們的陰謀活動早在英格蘭貴族監控之下,英格蘭國務大臣弗朗西斯·沃爾辛厄姆爵士經過統計英文字母的出現頻率和瑪麗女王密函中的字母頻率,找到了破解密碼的規律。最終,瑪麗和其餘貴族在舉兵謀反前夕被捕。這是近代西方第一次破譯密碼,開啓了近現代密碼學的先河。


天然語言處理的發展歷程

天然語言處理有着悠久的發展史,可粗略地分爲興起、符號主義、鏈接主義和深度學習四個階段,如 圖4 所示:

圖4:天然語言處理的發展歷程

興起時期

大多數人認爲,天然語言處理的研究興起於1950年先後。在二戰中,破解納粹德國的恩尼格瑪密碼成爲盟軍對抗納粹的重要戰場。通過二戰的洗禮,曾經參與過密碼破譯的香農和圖靈等科學家開始思考天然語言處理和計算之間的關係。

圖5:恩尼格瑪密碼機

1948年香農把馬爾可夫過程模型(Markov Progress)應用於建模天然語言,並提出把熱力學中「熵」(Entropy)的概念擴展到天然語言建模領域。香農相信,天然語言跟其餘物理世界的信號同樣,是具備統計學規律的,經過統計分析能夠幫助咱們更好地理解天然語言。

1950年,艾倫圖靈提出著名的圖靈測試,標誌着人工智能領域的開端。二戰後,受到美蘇冷戰的影響,美國政府開始重視機器自動翻譯的研究工做,以便於隨時監視蘇聯最新的科技進展。1954年美國喬治城大學在一項實驗中,成功將約60句的俄文自動翻譯成英文,被視爲機器翻譯可行的開端。自此開始的十年間,政府與企業相繼投入大量的資金,用於機器翻譯的研究。

1956年,喬姆斯基(Chomsky)提出了「生成式文法」這一大膽猜測,他假設在客觀世界存在一套完備的天然語言生成規律,每一句話都遵照這套規律而生成。總結出這個客觀規律,人們就掌握了天然語言的奧祕。今後,天然語言的研究就被分爲了以語言學爲基礎的符號主義學派,以及以機率統計爲基礎的鏈接主義學派。

符號主義時期

在天然語言處理髮展的興起階段,大量的研究工做都聚焦從語言學角度,分析天然語言的詞法、句法等結構信息,並經過總結這些結構之間的規則,達處處理和使用天然語言的目的。這一時期的表明人物就是喬姆斯基和他提出的「生成式文法」。1966年,徹底基於規則的對話機器人ELIZA在MIT人工智能實驗室誕生了,如 圖6 所示。

圖6:基於規則的聊天機器人ELIZA


然而同年,ALPAC(Automatic Language Processing Advisory Committee,自動語言處理顧問委員會)提出的一項報告中提出,十年來的機器翻譯研究進度緩慢、未達預期。該項報告發布後,機器翻譯和天然語言的研究資金大爲減縮,天然語言處理和人工智能的研究進入寒冰期。

鏈接主義時期

1980年,因爲計算機技術的發展和算力的提高,我的計算機能夠處理更加複雜的計算任務,天然語言處理研究得以復甦,研究人員開始使用統計機器學習方法處理天然語言任務。

起初研究人員嘗試使用淺層神經網絡,結合少許標註數據的方式訓練模型,雖然取得了必定的效果,可是仍然沒法讓大部分人滿意。後來研究者開始使用人工提取天然語言特徵的方式,結合簡單的統計機器學習算法解決天然語言問題。其實現方式是基於研究者在不一樣領域總結的經驗,將天然語言抽象成一組特徵,使用這組特徵結合少許標註樣本,訓練各類統計機器學習模型(如支持向量機、決策樹、隨機森林、機率圖模型等),完成不一樣的天然語言任務。

因爲這種方式基於大量領域專家經驗積累(如解決一個情感分析任務,那麼一個很重要的特徵就是是否有命中情感詞表),以及傳統計機器學習簡單、魯棒性強的特色,這個時期神經網絡技術被大部分人所遺忘。

深度學習時期

從2006年深度神經網絡反向傳播算法的提出開始,伴隨着互聯網的爆炸式發展和計算機(特別是GPU)算力的進一步提升,人們再也不依賴語言學知識和有限的標註數據,天然語言處理領域邁入了深度學習時代。

基於互聯海量數據,並結合深度神經網絡的強大擬合能力,人們能夠很是輕鬆地應對各類天然語言處理問題。愈來愈多的天然語言處理技術趨於成熟並顯現出巨大的商業價值,天然語言處理和人工智能領域的發展進入了鼎盛時期。

天然語言處理的發展經歷了多個歷史階段的演進,不一樣學派之間相互補充促進,共同推進了天然語言處理技術的快速發展。

03

天然語言處理技術面臨哪些挑戰?

如何讓機器像人同樣,可以準確理解和使用天然語言?這是當前天然語言處理領域面臨的最大挑戰。爲了解決這一問題,咱們須要從語言學和計算兩個角度思考。

語言學角度

天然語言數量多、形態萬千,理解天然語言對人來講自己也是一件複雜的事情,如同義詞、情感傾向、歧義性、長文本處理、語言慣性表達等。經過以下幾個例子,咱們一同感覺一下。

同義詞問題

請問下列詞語是否爲同義詞?(題目來源:四川話和東北話6級模擬考試)

瓜兮兮 和 鐵憨憨

嘎嘎 和 肉(you)

磕攙 和 難看

吭呲癟肚 和 速度慢

情感傾向問題

請問如何正確理解下面兩個場景?

場景一:朋友生氣了,男友電話道歉

女生:就算你買包我也不會原諒你!

男生:寶貝,放心,我不買,你別生氣了。

問:女生會不會生氣。

場景二:兩我的同宿舍的室友甲和乙對話

甲:鑰匙好像沒了,你把鎖別別

乙:到底沒沒沒

甲:我也不道沒沒沒

乙:要沒沒你讓我別,別別了,別禿魯了咋整。

問:到底別不別?

歧義性問題

請問如何理解下面三句話?

一行行行行行,一行不行行行不行

來到楊過曾經生活過的地方,小龍女說:「我也想過過過兒過過的生活」

來到兒子等校車的地方,鄧超對孫儷說:「我也想等等等等等過的那輛車」

相信大多數人都須要花點腦筋去理解上面的句子,在不一樣的上下文中,相同的單詞能夠具備不一樣的含義,這種問題咱們稱之爲歧義性問題。

對話/篇章等長文本處理問題

在處理長文本(如一篇新聞報道,一段多人對話,甚至於一篇長篇小說)時,須要常常處理各類省略、指代、話題轉折和切換等語言學現象,如 圖7 所示,都給機器理解天然語言帶來了挑戰。

圖7:多輪對話中的指代和省略

探索天然語言理解的本質問題

研表究明,漢字的順序並不定一能影閱響讀,好比當你看完這句話後,才發這現裏的字全是都亂的。

上面這句話從語法角度來講徹底是錯的,可是對大部分人來講徹底不影響理解,甚至不少人都不會意識到這句話的語法是錯的。

計算角度

天然語言技術的發展除了受語言學的制約外,在計算角度也自然存在侷限。顧名思義,計算機是計算的機器,現有的計算機都以浮點數爲輸入和輸出,擅長執行加減乘除類計算。天然語言自己並非浮點數,計算機爲了能存儲和顯示天然語言,須要把天然語言中的字符轉換爲一個固定長度(或者變長)的二進制編碼,如 圖8 所示。

圖8:計算機計算天然語言流程

因爲這個編碼自己不是數字,對這個編碼的計算每每不具有數學和物理含義。例如:把「法國」和「首都」放在一塊兒,大多數人首先聯想到的內容是「巴黎」。可是若是咱們使用「法國」和「首都」的UTF-8編碼去作加減乘除等運算,是沒法輕易獲取到「巴黎」的UTF-8編碼,甚至沒法得到一個有效的UTF-8編碼。所以,如何讓計算機能夠有效地計算天然語言,是計算機科學家和工程師面臨的巨大挑戰。

此外,目前也有研究人員正在關注天然語言處理方法中的社會問題:包括天然語言處理模型中的偏見和歧視、大規模計算對環境和睦候帶來的影響、傳統工做被取代後,人的失業和再就業問題等。

天然語言處理的常見任務

天然語言處理是是很是複雜的領域,是人工智能中最爲困難的問題之一,常見的任務如 圖9 所示:


圖9:天然語言處理常見任務

  • 詞和短語級任務包括切詞、詞性標註、命名實體識別(如「蘋果很好吃」和「蘋果很偉大」中的「蘋果」哪一個是蘋果公司?)、同義詞計算(如「好吃」的同義詞是什麼?)等以詞爲研究對象的任務。

  • 句子和段落級任務包括文本傾向性分析(如客戶說:「大家公司的產品真好用!」是在誇讚仍是在諷刺?)、文本類似度計算(如「我坐高鐵去廣州」和「我坐火車去廣州」是一個意思嗎?)等以句子爲研究對象的任務。

  • 對話和篇章級任務包括機器閱讀理解(如使用醫藥說明書回答患者的諮詢問題)、對話系統(如打造一個24小時在線的AI話務員)等複雜的天然語言處理系統等。

  • 天然語言生成如機器翻譯(如「我愛飛槳」的英文是什麼?)、機器寫做(以AI爲題目寫一首詩)等天然語言生成任務。

04

如何用飛槳探索天然語言處理

接下來,讓咱們一塊兒探索幾個經典的天然語言處理任務,包括:

  • 計算詞語之間的關係(如同義詞):word2vec

  • 理解一個天然語言句子:文本分類和類似度計算

  • 計算機寫一首詩:天然語言生成-seq2seq模型

通常來講,使用飛槳完成天然語言處理任務時,均可以遵照一個類似的套路,包括:

  1. 準備數據:準備所須要的數據,將數據處理成神經網絡能夠計算的形式。

  2. 定義網絡:使用飛槳定義出神經網絡的結構,包括輸入層,中間層(又叫隱層)和輸出層,特別的,還須要定義好神經網絡的損失函數和優化器,便於網絡訓練。

  3. 訓練網絡:將準備好的數據逐個送入神經網絡中,進行訓練,並在訓練中觀察網絡是否正常收斂。

  4. 評估網絡:把訓練好的網絡保存起來,並使用測試集測試網絡的效果,並根據測試效果反覆迭代。

思考一下

[1] 你生活中有哪些地方使用了天然語言處理?

[2] 你但願如何應用天然語言處理?

 

05

獲取更多學習資源

本文中,周湘陽老師爲你們介紹了天然語言處理概述、發展歷程和麪臨的挑戰,而且介紹了天然語言處理領域的常見任務。在後期課程中,將繼續爲你們帶來內容更豐富的課程,幫助學員快速掌握深度學習方法。

【如何學習】

1 如何觀看配套視頻?如何代碼實踐?

視頻+代碼已經發布在AI Studio實踐平臺上,視頻支持PC端/手機端同步觀看,也鼓勵你們親手體驗運行代碼哦。掃碼或者打開如下連接:

https://aistudio.baidu.com/aistudio/course/introduce/888

2 學習過程當中,有疑問怎麼辦?

加入深度學習集訓營QQ羣:677320960班主任與飛槳研發工程師會在羣裏進行答疑與學習資料發放。

3 如何學習更多內容?

百度飛槳將經過集訓營的形式,繼續更新《零基礎入門深度學習》課程,由百度深度學習高級研發工程師親自授課,採用直播+錄播+實踐+答疑的形式,歡迎關注~

>> 訪問 PaddlePaddle 官網,瞭解更多相關內容

相關文章
相關標籤/搜索