AI產品經理必修課:NLP技術原理與應用

7 評論 24410 瀏覽 138 收藏 26 分鐘

本文簡單介紹了NLP的主要技術以及應用領域,適合希望成為人工智能產品經理的產品新人閱讀。

一、前言

Google 2018年10月11日提出的BERT模型在11個NLP任務上的表現刷新了記錄(下圖),其中包括斯坦福大學著名的測試Question Answering(SQuAD v1.1),BERT在SQuAD全部兩個衡量指標上超越了人類表現。

有人說這是自然語言理解領域幾個月來最重大的事件。Google BERT的出現,被一些人認為將改變NLP的研究模式。“這不是NLP的結束,甚至不是結束的開始。這可能是開始的結束。”有人借用丘吉爾的《The End of the Beginning》來形容這一突破的意義。

那么,什么是NLP,NLP又涉及了哪些技術?

圖片來源:https://rajpurkar.github.io/SQuAD-explorer/

二、什么是NLP?

1. 什么是語言?

語言是指生物同類之間由于溝通需要而制定的指令系統,語言與邏輯相關,目前只有人類才能使用體系完整的語言進行溝通和思想交流。

2. 什么是自然語言?

自然語言通常會自然地隨文化發生演化,英語、漢語、日語都是具體種類的自然語言,這些自然語言履行著語言最原始的作用:人們進行交互和思想交流的媒介性工具。

  • 語音:與發音有關的學問,主要在語音技術中發揮作用。
  • 音韻:由語音組合起來的讀音,即漢語拼音和四聲調。
  • 詞態:封裝了可用于自然語言理解的有用信息,其中信息量的大小取決于具體的語言種類。中文沒有太多的詞態變換,僅存在不同的偏旁,導致出現詞的性別轉換的情況。
  • 句法:主要研究詞語如何組成合乎語法的句子,句法提供單詞組成句子的約束條件,為語義的合成提供框架。
  • 語義和語用:自然語言所包含和表達的意思。

3. 什么是自然語言處理?

自然語言處理(Natural Language Processing,NLP):是計算機科學,人工智能和語言學的交叉領域。目標是讓計算機處理或“理解”自然語言,以執行語言翻譯和問題回答等任務。

NLP包含自然語言理解(Natural Language Understanding,NLU) 和自然語言生成(Natural Language Generation, NLG)兩個重要方向,如下圖所示。

  • 自然語言理解NLU旨在將人的語言形式轉化為機器可理解的、結構化的、完整的語義表示,通俗來講就是讓計算機能夠理解和生成人類語言。
  • 自然語言生成NLG旨在讓機器根據確定的結構化數據、文本、音視頻等生成人類可以理解的自然語言形式的文本。

4. 自然語言處理的難度

  • 自然語言千變萬化,沒有固定格式。同樣的意思可以使用多種句式來表達,同樣的句子調整一個字、調整語調或者調整語序,表達的意思可能相差很多。
  • 不斷有新的詞匯出現,計算機需要不斷學習新的詞匯。
  • 受語音識別準確率的影響。
  • 自然語言所表達的語義本身存在一定的不確定性,同一句話在不同場景/語境下的語義可能完全不同。
  • 人類講話時往往出現不流暢、錯誤、重復等現象,而對機器來說,在它理解一句話時,這句話整體所表達的意思比其中每個詞的確切含義更加重要。

三、自然語言理解技術概述

1. 含義

自然語言理解以語言學為基礎,融合邏輯學、計算機科學等學科,通過對語法、語義、語用的分析,獲取自然語言的語義表示。

2. 自然語言理解技術概述

2.1 基于規則的方法

(1)指利用規則定義如何如何從文本中提取語義。大致思路是人工定義很多語法規則,它們是表達某種特定語義的具體方式,然后自然語言理解模塊根據這些規則解析輸入該模塊的文本。

(2)優點:靈活,可以定義各種各樣的規則,而且不依賴訓練數據;

(3)缺點:需要大量的、覆蓋不同場景的規則,且隨著規則數量的增長,對規則進行人工維護的難度也會增加。

(4)結論:只適合用在相對簡單的場景,其優勢在于可以快速實現一個簡單可用的語義理解模塊。

2.2 基于統計的方法

(1)通常使用大量的數據訓練模型,并使用訓練所得的模型執行各種上層語義任務。

(2)優點:數據驅動且健壯性較好;

(3)缺點:訓練數據難以獲得且模型難以解釋和調參;

(4)通常使用數據驅動的方法解決分類和序列標注方法。

2.3 在具體實踐中,通常將這兩種方法結合起來使用

(1)沒有數據及數據較少時先采取基于規則的方法,當數據積累到一定規模時轉為使用基于統計的方法。

(2)在一些基于統計的方法可以覆蓋絕大多數場景,在一些其覆蓋不到的場景中使用基于規則的方法兜底,以此來保證自然語言理解的效果。

2.4 應用

(1)意圖識別

  • 實質:分類問題
  • 輸入:句子的文本特征
  • 輸出:句子文本特征所屬的意圖分類
  • 算法:SVM、AdaBoost算法等

(2)實體抽取

  • 實質:序列標注
  • 輸入:句子的文本特征
  • 輸出:文本特征中的每個詞或每個字屬于某一實體的概率
  • 算法:隱馬爾可夫模型(hidden Markov model,HMM),條件隨機場(conditional random field,CRF)

注:當數據量足夠大時,使用基于神經網絡的深度學習方法處理意圖識別和實體抽取任務可以取得更好的效果。

四、自然語言理解基本技術

自然語言理解基本技術分為詞法分析、句法分析、語義分析三類。

1. 詞法分析

詞法分析包括分詞和詞性標注。

1.1 分詞 word segmentation

(1)含義:中文不同于英文,其沒有自然分隔符(明顯的空格標記),因此漢語自然語言處理的首要工作就是將輸入的字串切分為單獨的詞語。

(2)分詞方法:

A、基于詞表匹配的方法:會逐字對字符串進行掃描,發現字符串的子串和詞表中的詞相同就算匹配。

常見方法:有正向最大匹配法、逆向最大匹配法、雙向掃描法和逐詞遍歷法。

常見的基于詞表的分詞工具:IKAnalyzer、庖丁解牛等。

B、基于統計模型的方法:根據人工標注的詞性和統計特征對中文進行建模,通過模型計算各種分詞出現的概率,將概率最大的分詞結果作為最終結果。

常見算法:HMM、CRF

常見的基于統計模型的分詞工具:ICTCLAS、Stanford word segmenter等。深度學習興起后,長短期記憶網絡LSTM結合CRF的方法得到了快速發展。

1.2 詞性標注

(1)含義:詞性是詞語最基礎的語法屬性之一,因此詞性標注Part-Of-Speech Tagging,POS Tagging是詞法分析的一部分。

(2)目的是為句子中的每個詞賦予一個特定的類別,即為分詞結果中的每個單詞標注詞性。

(3)最重要的詞性為名詞、動詞、形容詞和副詞。

(4)模型:最初隱馬爾可夫、之后最大熵模型、支持向量機模型

(5)兩種方法:基于規則的方法、基于統計模型的方法

基于規則的詞性標注:兼類詞搭配關系和上下文語境建造詞類消歧規則;

基于統計模型的詞性標注:通過模型計算各類詞性出現的概率,將概率最大的詞性作為最終結果。

(6)常見方法:結構感知器模型和條件隨機場模型。隨著深度學習技術的發展,也提出了基于深層神經網絡的詞性標注方法。

(7)工具:standford log-linear part-of-speech tagger、哈工大的LTP工具等。

2. 句法分析

(1)含義:句法分析syntactic parsing的主要任務是對輸入的文本句子(字符串)進行分析以得到句子句法結構syntactic structure。

(2)原因:一方面是nlu任務自身的需求,另一方面可以為其他nlu任務提供支持。

(3)分類:根據句法結構的不同表示形式,任務分為以下3類:

  • 依存句法分析dependency syntactic parsing,主要任務是識別句子中詞匯之間的相互依存關系。
  • 短語結構句法分析phrase-structure syntactic parsing,也稱作為分句法分析constituent syntactic parsing,主要任務是識別句子中短語結構和短語之間的層次句法關系。
  • 深層文法句法分析,主要任務是利用深層文法,對句子進行深層的句法及語義分析,這些深層文法包括詞匯化樹鄰接文法、詞匯功能文法、組合范疇文法等。

3. 語義分析

(1)語義,指的是自然語言所包含的意義,在計算機科學領域,可以將語義理解為數據對應的現實世界中的事物所代表概念的含義。

(2)語義分析semantic analysis,指運用各種機器學習方法,讓機器學習與理解一段文本所表示的語義內容。任何對語言的理解都可以歸為語義分析的范疇,涉及語言學、計算語言學、人工智能、機器學習,甚至認知語言。

(3)語義分析的最終目的是理解句子表達的真實含義。

  • 語義分析在機器翻譯任務中有重要應用。
  • 基于語義的搜索一直是搜索追求的目標。
  • 語義分析是實現大數據的理解與價值發現的有效手段。

五、三種常用的自然語言表示模型

1. 詞袋模型,bag of words,BOW

(1)含義:詞袋模型認為文檔中任意位置出現的任何單詞,都與該文檔的語義無關。通過詞袋模型,一個文檔可以轉化為一個向量,向量中的每個元素表示詞典中相應元素在文檔中出現的次數。

(2)優點:便于將源文檔模型化。

(3)缺點:并沒有表達單詞在原來句子中出現的次序。

2. TF-IDF(term frequency-inverse document frequency,詞頻-逆文檔頻率)

(1)含義:是一種基于統計的加權方法,常用于信息檢索領域,用具體詞匯在文檔中出現的次數和該詞匯在語料中出現的次數兩個值評估該詞匯對相關文檔的重要程度。TF指某詞語在該文檔中出現的次數,IDF是詞語普遍重要性的度量。

(2)用途:常被搜索引擎用來評估文檔與用戶查詢之間的相關程度。

(3)核心思想:在一篇文檔中出現頻率高且在其他文檔中很少出現的詞匯有較好的類別區分能力,適用于分檔分類。

3. 詞嵌入word embedding

(1)用詞嵌入表示單詞是將深度學習引入自然語言處理的核心技術之一。

(2)來源:欲在自然語言理解領域使用機器學習技術,則需要找到一種合適的、將自然語言數學化的方法。

(3)方法:最初使用獨熱表示one hot representation,即使用詞表大小維度的向量描述單詞,每個向量中多數元素為0,只有該詞匯在詞表中對應位置的維度為1。獨熱表示難以發現同義、反義等關系。

(4)詞嵌入法在基于獨熱表示法的基本思想的同時,增加了單詞間的語義聯系,并降低了詞向量維度以避免維度災難。

六、基于知識圖譜的自然語言理解

知識圖譜是知識表示與推理、數據庫、信息檢索、自然語言處理等多種技術發展和融合的產物。

更多關于知識圖譜的介紹可以查看筆者的另一篇文章:AI產品經理必修課:知識圖譜的入門與應用

七、自然語言生成NLG

1. 含義

自然語言生成作為人工智能和計算語言學的分支,其對應的語言生成系統可以被看作基于語言信息處理的計算機模型,該模型從抽象的概念層次開始,通過選擇并執行一定的語法和語義規則生成自然語言文本。

2. 自然語言生成和自然語言理解的異同

2.1 差異點:

自然語言理解實際上是被分析的文本的結構和語義逐步清晰的過程;自然語言生成的研究重點是確定哪些內容是滿足用戶需要必須生成的,哪些內容是冗余的。

2.2 相同點:

(1)二者都需要利用詞典;

(2)二者都需要利用語法規則;

(3)二者都要解決指代、省略等語用問題。

3. 兩種架構類型

3.1 流線型 pipeline

(1)含義:流線型的自然語言生成系統由幾個不同的模塊組成,每個模塊之間的交互僅限于輸入輸出,各模塊之間不透明、相互獨立。

(2)系統架構

流線型的自然語言生成系統包括文本規劃、句子規劃、句法實現3個模塊。文本規劃決定說什么,句法實現決定怎么說,句子規劃負責讓句子更加連貫。

流程:文本規劃(交際目的、知識庫、規劃庫、用戶模型、話語歷史)、話語計劃、句子規劃(話語歷史、句子規劃規則)、句子計劃、句法實現(語法規則、詞典)、文本。

3.2 一體化型integrated

一體化型的自然語言生成系統是相互作用的,當一個模塊內部無法作出決策時,后續模塊可以參與該模塊的決策。

3.3 兩類架構的差異

一體化型的自然語言生成系統更符合人腦的思維過程,但是實現較為困難,現實中較常用的是流線型的自然語言生成系統。

4. 兩種對話生成技術

4.1 檢索式對話生成技術

通過排序技術和深度匹配技術在已有的對話語料庫中找到適合當前輸入的最佳回復。局限性:僅能以固定的語言模式對用戶輸入進行回復,而無法實現詞語的多樣性組合,因此無法滿足回復多樣性要求。

4.2 生成式對話生成技術

代表性技術是從已有的“人-人”對話中學習語言的組合模式,是在一種類似機器翻譯中常用的“編碼-解碼”的過程中逐字或逐詞地生成回復,生成的回復有可能是從未在語料庫中出現的、由聊天機器人自己“創造”的句子。

5. 自然語言生成的挑戰

  1. 涉及文法開發,需要將文法結構和應用特有的語義表征相關聯,但由于自然語言中存在海量的文法結構,造成搜索空間巨大,如何避免生成有歧義輸出成了一個有挑戰的問題。
  2. 由于語言的上下文敏感性,生成語言時如何整合包括時間、地點、位置、用戶信息等在內的上下文信息也是一個難題。
  3. 基于深度學習技術生成回復的對話模型很難解釋,也很難被人類理解,只能通過更好的語料和參數調整來改善對話模型。

6. 三種自然語言生成方式

6.1 基于檢索的自然語言生成

基于檢索的自然語言生成并不是如字面意思一樣生成自然語言,更多是在已有的對話語料中檢索出合適的回復。

優點:實現相對簡單、容易部署美因茨在實際工程中得到了大量的應用。

缺點:依賴于對話庫、回復不夠靈活等

6.2 基于模板的自然語言生成

自然語言生成模板由句子sentence模板,詞匯word模版組成。句子模版包含若干個含有變量的句子,詞匯模板則是句子模塊中的變量對應的所有可能的值。

6.3 基于深度學習的自然語言生成

八、NLP在聊天機器人中的應用

1. NLP應用概覽

NLP作為人工智能的核心技術,在機器翻譯、聊天機器人、語音識別等領域都有重要的應用。

機器翻譯的代表如科大訊飛的翻譯機;聊天機器人例如微軟小冰、Amazon Alexa;語音識別如各種智能音箱。

NLP主要應用領域,圖片來源:stateoftheart.ai

2. 聊天機器人的分類與應用場景

聊天機器人作為NLP應用的重點產品之一,可以按不同維度進行細分。

  1. 基于應用場景的聊天機器人分類:在線客服、娛樂、教育、個人助理、智能問答類。
  2. 基于實現方式的聊天機器人分類:檢索式和生成式。
  3. 基于功能的聊天機器人分類:問答系統、面向任務的對話系統、閑聊系統和主動推薦系統。

3. 聊天機器人系統框架

一個完整聊天機器人的系統架構主要由語言識別、自然語言理解、對話管理、自然語言生成、語音合成等5個部分組成。

  1. 自動語音識別automatic speech recognition,ASR,負責將原始的語音信號轉換成文本信息。
  2. 自然語言理解natural language understanding,NLU,負責將識別到的文本信息轉換為機器可以理解的語義表示。
  3. 對話管理dialogue management,DM,負責基于當前對話的狀態判斷系統應該采取怎樣的動作。
  4. 自然語言生成natural language generation,NLG,負責將系統動作/系統回復轉變成自然語言文本。
  5. 語音合成text-to-speech,TTS,負責將自然語言文本轉變成語音信號輸出給用戶。

4. 聊天機器人的典型代表

  1. 硬件形態:amazon echo、公子小白。
  2. 軟件形態:Apple Siri、微軟小冰、微軟cortana、IBM watson、Google Now。
  3. 平臺:谷歌、微軟等公司對外提供聊天機器人框架bot framework,以sdk或saas服務的方式像第三方公司或個人開發者提供可以用于構建特定應用和領域的聊天機器人。代表:amazon Alexa(服務amazon lex)、微軟luis with bot(認知服務cognitive services)、谷歌api.ai、Facebook wit.ai。

5. 聊天機器人的技術原理

常見的聊天機器人系統包括問答系統、面向任務的對話系統、閑聊系統、主動推薦系統。

問答系統

QA問答系統偏重于問句分析,旨在獲取問句的主題詞、問題詞、中心動詞。主要采取模板匹配和語義理解兩種方式。

面向任務的對話系統

通過對話管理(重點)和跟蹤當前的對話狀態,進而明確用戶的目的和需求。聚焦于將用戶輸入的自然語言映射為用戶的意圖和相應的槽位值。

閑聊系統

針對用戶沒有特定目的、沒有具體需求情況下的多輪人機對話,重點是對話管理(上下多輪交互)和自然語言理解兩個模塊。

主動推薦系統

處于起步階段,是人機自然交互的關鍵一環,其作用更多是體現聊天機器人的認知能力。

6. 聊天機器人系統中的自然語言理解模塊

聊天機器人系統中的自然語言理解模塊主要包括:實體識別named entity recognition、用戶意圖識別、用戶情感識別、指代消解、省略恢復、回復確認及拒識判斷等。

  1. 實體識別:指識別自然語言中具有特定意義的實體,如人名、時間、地名及各種專有名詞。
  2. 用戶意圖識別:包括顯式意圖和隱式意圖,前者通常對應一個明確的用戶需求,后者較難判斷。
  3. 情感識別:與用戶意圖類似,也分為顯式和隱式。
  4. 指代消解:指聊天主題背景一致的情況下,人們在對話過程中通常會習慣性地使用代詞指代出現過的某個實體或事件,或者為了方便表述省略句子部分成分的情況。
  5. 省略恢復:自然語言理解模塊需要明確代詞指代的成分和句子中的省略的成分,唯有如此,聊天機器人才能正確理解用戶的輸入,給出合乎上下文語義的回復。
  6. 回復確認:當用戶意圖、聊天信息等帶有一定的模糊性時,需要聊天機器人主動向用戶詢問,確認用戶的意圖。
  7. 拒識判斷:指聊天機器人系統應當具備一定的拒識能力,主動拒絕識別及回復超出自身理解/回復范圍或者涉及敏感話題的用戶輸入。

#參考資料#

1、參考書籍:

《自然語言處理實踐—聊天機器人技術原理與應用》,王昊奮,邵浩等

《人工智能產品經理:人機對話系統設計邏輯探究》,朱鵬臻

2、NLP相關重要會議:

ACL、COLING、LREC、AAAI

3、相關網址:

中國科學院計算技術研究所·數字化室&軟件室:http://www.nlp.org.cn/

北大計算語言所:http://icl.pku.edu.cn/

麻省理工人工智能實驗室:http://www.csail.mit.edu/index.php

哈工大:http://ltp.ai/

復旦知識工廠:http://kw.fudan.edu.cn/

 

本文由 @Alan 原創發布于人人都是產品經理,未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 很多內容都是自然語言處理實踐里面直接復制的??

    回復
    1. 所以有些內容不太容易理解

      來自北京 回復
  2. 完全看不懂 完蛋

    回復
  3. 問個問題,AI產品經理需要對這些技術掌握到什么程度?為什么要對些技術了解這么深呢?

    來自北京 回復
  4. 看著好吃力,說明自己確實缺的知識比較多,多多學習

    來自北京 回復
    1. 不是你的錯,作者寫這篇文章估計是為了梳理自己對nlp理解的思路。因為提出的很多生澀的名詞時,沒有嘗試進行任何引導性說明

      來自北京 回復
  5. 條理清晰,內容全面詳細,先mark后學 ??

    來自廣東 回復