【NPL】如何解決90%的自然語言處理問題:分步指南奉上
選自InsightDataScience
作者:Emmanuel Ameisen
機器之心編譯
參與:白悅、李澤南
自然語言處理(NLP)與計算機視覺(CV)一樣,是目前人工智慧領域裡最為重要的兩個方向。如何讓機器學習方法從文字中理解人類語言內含的思想?本文中,來自 Insight AI 的 Emmanuel Ameisen 將為我們簡述絕大多數任務上我們需要遵循的思路。
文字資料的 5W 和 1H!
文字資料無處不在
無論是成立的公司,還是致力於推出新服務,你都可以利用文字資料來驗證、改進和擴充套件產品的功能。從文字資料中提取資訊並從中學習的科學是自然語言處理(NLP)的一個活躍的研究課題。
NLP 覆蓋領域很廣,每天都會有新的令人興奮的結果。但經過與數百家公司合作,Insight 團隊發現其中有幾個重要應用出現得尤其頻繁:
識別不同的使用者/客戶群(例如預測客戶流失、顧客終身價值、產品偏好)
準確檢測和提取不同類別的反饋(正面和負面的評論/意見,提到的特定屬性,如衣服尺寸/合身度等)
根據意圖對文字進行分類(例如尋求一般幫助,緊急問題)
儘管網上有很多 NLP 論文和教程,但我們很難找到從頭開始高效學習這些問題的指南和技巧。
本文給你的幫助
結合每年帶領數百個專案組的經驗,以及全美國最頂尖團隊的建議,我們完成了這篇文章,它將解釋如何利用機器學習方案來解決上述 NLP 問題。我們將從最簡單的方法開始,然後介紹更細緻的方案,如特徵工程、單詞向量和深度學習。
閱讀完本文後,您將會知道如何:
收集、準備和檢驗資料
建立簡單的模型,必要時轉化為深度學習
解釋和理解模型,確保捕獲的是資訊而非噪聲
這篇文章我們將給你提供一步一步的指導;也可以作為一個提供有效標準方法的高水平概述。
這篇文章附有一個互動式 notebook,演示和應用了所有技術。你可以隨意執行程式碼,同步學習:https://github.com/hundredblocks/concrete_NLP_tutorial/blob/master/NLP_notebook.ipynb
第 1 步:收集資料
資料來源示例
每個機器學習問題都從資料開始,例如電子郵件、帖子或推文(微博)。文字資訊的常見來源包括:
產品評論(來自亞馬遜,Yelp 和各種應用商店)
使用者釋出的內容(推文,Facebook 上的帖子,StackOverflow 上的問題)
故障排除(客戶請求,支援票據,聊天記錄)
「社交媒體中出現的災難」資料集
本文我們將使用由 CrowdFlower 提供的一個名為「社交媒體中出現的災難」的資料集,其中:
編者檢視了超過 1 萬條推文,其中包括「著火」、「隔離」和「混亂」等各種搜尋,然後看推文是否是指災難事件(排除掉用這些單詞來講笑話或評論電影等沒有發生災難的情況)。
我們的任務是檢測哪些推文關於災難性事件,排除像電影這種不相關的話題。為什麼?一個可能的應用是僅在發生緊急事件時(而不是在討論最近 Adam Sandler 的電影時)通知執法官員。
這篇文章的其它地方,我們將把關於災難的推文稱為「災難」,把其它的推文稱為「不相關事件」。
標籤
我們已經標記了資料,因此我們知道推文所屬類別。正如 Richard Socher 在下文中概述的那樣,找到並標記足夠多的資料來訓練模型通常更快、更簡單、更便宜,而非嘗試優化複雜的無監督方法。
Richard Socher 的小建議
第 2 步:清理資料
我們遵循的首要規則是:「你的模型受限於你的資料」。
資料科學家的重要技能之一就是知道下一步的工作物件是模型還是資料。一個好的方法是先檢視資料再清理資料。一個乾淨的資料集可以使模型學習有意義的特徵,而不是過度擬合無關的噪聲。
下面是一個清理資料的清單:(更多細節見程式碼 code (https://github.com/hundredblocks/concrete_NLP_tutorial/blob/master/NLP_notebook.ipynb)):
1. 刪除所有不相關的字元,如任何非字母數字字元
2. 把文字分成單獨的單詞來標記解析
3. 刪除不相關的詞,例如推文中的「@」或網址
4. 將所有字元轉換為小寫字母,使「hello」,「Hello」和「HELLO」等單詞統一
5. 考慮將拼寫錯誤和重複拼寫的單詞歸為一類(例如「cool」/「kewl」/「cooool」)
6. 考慮詞性還原(將「am」「are」「is」等詞語統一為常見形式「be」)
按這些步驟操作並檢查錯誤後,就可以使用乾淨的標籤化的資料來訓練模型啦!
第 3 步:尋找好的資料表示
機器學習模型的輸入是數值。如影像處理的模型中,用矩陣來表示各個顏色通道中每個畫素的強度。
一個笑臉可以表示為一個數字矩陣。
如果我們的資料集是一系列的句子,為了使演算法可以從資料中提取特徵,我們需要表示為可以被演算法識別的形式,如表示為一系列數字。
One-hot encoding(詞袋模型)
表示文字的一種常見方法是將每個字元單獨編碼為一個數字(例如 ASCII)。如果我們直接把這種簡單的形式用於分類器,那隻能基於我們的資料從頭開始學習單詞的結構,這對於大多數資料集是不可實現的。因此,我們需要一個更高階的方法。
例如,我們可以為資料集中的所有單詞建立一個詞彙表,每個單詞對應一個不同的數字(索引)。那句子就可以表示成長度為詞彙表中不同單詞的一個列表。在列表的每個索引處,標記該單詞在句子中出現的次數。這就是詞袋模型(Bag of Words),這種表示完全忽略了句子中單詞的順序。如下所示。
將句子表示為詞袋。左邊為句子,右邊為對應的表示,向量中的每個數字(索引)代表一個特定的單詞。
視覺化詞嵌入
在「社交媒體中出現的災難」一例中,大約有 2 萬字的詞彙,這代表每個句子都將被表示為長度為 2 萬的向量。向量中有很多 0,因為每個句子只包含詞彙表中非常小的一個子集。
為了瞭解詞嵌入是否捕獲到了與問題相關的資訊(如推文是否說的是災難),有一個很好的辦法,就是將它們視覺化並看這些類的分離程度。由於詞彙表很大,在 20,000 個維度上視覺化資料是不可能的,因此需要主成分分析(PCA)這樣的方法將資料分到兩個維度。如下圖所示。
將嵌入的詞袋視覺化。
看起來很難分為兩類,也不好去降低維度,這是嵌入的一個特點。為了瞭解詞袋模型特徵是否有用,我們可以基於它們訓練一個分類器。
第 4 步:分類器
遇到一個問題時,通常從尋找解決問題的工具入手。當我們要對資料進行分類時,出於通用性和可解釋性的考慮,通常使用 Logistic 迴歸(Logistic Regression)。訓練非常簡單,結果也可解釋,因為易於從模型提取出最重要的引數。
我們將資料分成一個用於擬合模型的訓練集和一個用於分析對不可見資料擬合程度的測試集。訓練結束後,準確率為 75.4%。還看得過去!最頻繁的一類(「不相關事件」)僅為 57%。但即使只有 75% 的準確率也足以滿足我們的需要了,一定要在理解的基礎上建模。
第 5 步:檢驗
混淆矩陣(Confusion Matrix)
首先要知道我們模型的錯誤型別,以及最不期望的是哪種錯誤。在我們的例子中,誤報指將不相關的推文分類為災難,漏報指將關於災難的推文歸為不相關事件。如果要優先處理每個可能的事件,那我們想降低漏報的情況。如果我們優先考慮資源有限的問題,那我們會優先降低誤報的情況,從而減少誤報的提醒。我們可以用混淆矩陣來視覺化這些資訊,混淆矩陣將我們模型預測的結果與真實情況進行比較。理想情況下(我們的預測結果與真實情況完全相符),矩陣為從左上到右下的一個對角矩陣。
混淆矩陣(綠色比例大,藍色比例小)
我們的分類器的漏報情況(相對)高於誤報情況。也就是說,這個模型很可能錯誤地將災難歸為不相關事件。如果誤報情況下執法的成本很高,那我們更傾向於使用這個分類器。
解釋模型
為了驗證模型並解釋模型的預測,我們需要看哪些單詞在預測中起主要作用。如果資料有偏差,分類器會對樣本資料作出準確的預測,但在實際應用時模型預測的效果並不理想。下圖中我們給出了關於災難和不相關事件的重要詞彙。我們可以提取並比較模型中的預測係數,所以用詞袋模型和 Logistic 迴歸來尋找重要詞彙非常簡單。
詞袋:重要詞彙
我們的分類器正確地找到了一些模式(廣島,大屠殺),但顯然這是無意義資料的過度擬合(heyoo, x1392)。現在我們的詞袋模型正在處理一個龐大的詞彙表,所有詞彙對它來說都是一樣的。但一些詞彙出現地非常頻繁,而且只會對我們的預測加入噪聲。接下來,我們試著用一個方法來表示詞彙出現的頻率,看我們能否從資料中獲得更多的訊號。
第 6 步:統計詞彙
TF-IDF
為了使模型更關注有意義的單詞,我們可以使用 TF-IDF(詞頻-逆文件頻率)對我們的詞袋模型進行評估。TF-IDF 通過對資料集中詞彙出現的頻率來加權,並減小高頻但只是增加噪音的單詞的權重。這是我們新嵌入的 PCA 預測。
將 TF-IDF 嵌入視覺化。
由上圖我們看到,兩種顏色的資料差別更加明顯。這使分類器分組更加容易。讓我們來看一下這樣結果是否會更好。訓練新嵌入的 Logistic 迴歸,我們得到了 76.2%的準確率。
只是稍稍地進行了改進。那現在我們的模型可以選擇更重要的單詞了嗎?如果模型預測時有效地繞過了「陷阱」,得到了更好的結果,那就可以說,這個模型得到了優化。
TF-IDF:重要詞彙
挑出來的單詞似乎更加相關了!儘管我們測試集的指標稍有增加,但模型使用的詞彙更加關鍵了,因此我們說「整個系統執行時與客戶的互動更加舒適有效」。
第 7 步:利用語義
Word2Vec
我們最新的模型可以挑出高訊號的單詞。但很可能我們運作模型時會遇到訓練集中沒有單詞。因此,即使在訓練中遇到非常相似的單詞,之前的模型也不會準確地對這些推文進行分類。
為了解決這個問題,我們需要捕獲單詞的含義,也就是說,需要理解「good」和「positive」更接近而不是「apricot」或「continent」。用來捕獲單詞含義的工具叫 Word2Vec。
使用預訓練的單詞
Word2Vec 是尋找單詞連續 embedding 的技術。通過閱讀大量的文字學習,並記憶哪些單詞傾向於相似的語境。訓練足夠多的資料後,詞彙表中的每個單詞會生成一個 300 維的向量,由意思相近的單詞構成。
論文《Efficient Estimation of Word Representations in Vector Space》的作者開源了一個模型,對一個足夠大的可用的語料庫進行預訓練,將其中的一些語義納入我們的模型中。預訓練的向量可以在這篇文章相關的資源庫中找到:https://github.com/hundredblocks/concrete_NLP_tutorial。
句子的表示
快速得到分類器的 sentence embedding 的一個方法是平均對句子中的所有單詞的 Word2Vec 評估。這和之前詞袋模型是一個意思,但這次我們保留一些語言資訊,僅忽略句子的語法。
以下是之前技術的新嵌入的視覺化:
視覺化 Word2Vec 嵌入
這兩種顏色的資料更明顯地分離了,我們新的嵌入可以使分類器找到兩類之前的分離。經過第三次訓練同一個模型後(Logistic 迴歸),我們得到了 77.7%的準確率,這是目前最好的結果!可以檢驗我們的模型了。
複雜性/可解釋性的權衡
我們的 embedding 沒有向之前的模型那樣每個單詞表示為一維的向量,所以很驗證看出哪些單詞和我們的向量最相關,。雖然我們仍可以使用 Logistic 迴歸的係數,但它們和我們 embedding 的 300 個維度有關,而不再是單詞的索引。
它的準確率這麼低,拋掉所有的可解釋性似乎是一個粗糙的權衡。但對於更復雜的模型來說,我們可以利用 LIME 之類的黑盒直譯器(black box explainers)來深入瞭解分類器的工作原理。
LIME
可以通過開源軟體包在 Github 上找到 LIME:https://github.com/marcotcr/lime
黑盒直譯器允許使用者通過擾亂輸入並觀察預測的變化來解釋一個特定例子的任何分類器的決定。
讓我們看一下資料集中幾個句子的解釋。
挑選正確的災難詞彙並歸類為「相關」。
這裡,這個詞對分類器的造成的影響似乎不太明顯。
但是,我們沒有時間去探索資料集中的數千個示例。我們要做的是在測試例子的代表樣本上執行 LIME,看哪些詞彙做的貢獻大。使用這種方式,我們可以像之前的模型一樣對重要單詞進行評估,並驗證模型的預測結果。
Word2Vec:重要單詞
模型提取的高度相關的詞意味它可以做出更加可解釋的決定。這些看起來像是之前模型中最相關的詞彙,因此我們更願意將其加入到我們的模型中。
第 8 步:使用端到端(end-to-end)方法
我們已經介紹了生成簡潔句嵌入快速有效的方法。但是由於忽略了單詞的順序,我們跳過了句子所有的語法資訊。如果這些方法提供的結果不充分,那我們可以使用更復雜的模型,輸入整個句子並預測標籤,而不需要中間表示。一個常見的方法是使用 Word2Vec 或更類似的方法(如 GloVe 或 CoVe)將句子看作一個單詞向量的序列。這就是我們下文中要做的。
高效的端到端結構
用於句子分類的卷積神經網路訓練非常迅速,作為入門級深度學習體系效果非常理想。雖然卷積神經網路(CNN)主要因為在影像處理的使用而廣為人知,但它們在處理文字相關任務時得到的結果也非常好,而且通常比大多數複雜的 NLP 方法(如 LSTMs 和 Encoder/Decoder 結構)訓練地更快。這個模型考慮了單詞的順序,並學習了哪些單詞序列可以預測目標類等有價值的資訊,可以區別「Alex eats plants」和「Plants eat Alex」。
訓練這個模型不用比之前的模型做更多的工作,並且效果更好,準確率達到了 79.5%!詳見程式碼:https://github.com/hundredblocks/concrete_NLP_tutorial/blob/master/NLP_notebook.ipynb
與上述模型一樣,下一步我們要使用此方法來探索和解釋預測,以驗證它是否是給使用者提供的最好的模型。到現在,你應該對這樣的問題輕車熟路了。
結語
下面對我們成功使用的方法進行簡要回顧:
從一個簡單快速的模型開始
解釋其預測
瞭解其錯誤型別
根據以上知識來判斷下一步的工作——處理資料還是尋找更復雜的模型
這些方法只用於特定的例子——使用適當的模型來理解和利用短文字(推文),但這種思想適用於各種問題。希望這篇文章對你有所幫助,也歡迎大家提出意見和問題!
原文連結:https://blog.insightdatascience.com/how-to-solve-90-of-nlp-problems-a-step-by-step-guide-fda605278e4e
為何 NLP 領域難以出現“獨角獸”? | 獨家
來源:DeepTech深科技
年度訂閱使用者可加入科技英語學習社群,每週科技英語直播講堂,詳情檢視“閱讀原文”
2017 年,人工智慧領域迎來了轉折之年:在這一年,傳統的計算機視覺和語音識別都達到了新的高度,也在效能方面趨於飽和。在 2017 年的 ImageNet 圖片識別比賽中,參賽的 38 支隊伍中有 29 支錯誤率低於 5%(2011年,表現最好的隊伍也有四分之一左右的錯誤率)。部分由於這個原因,ImageNet 宣佈將在 2018 年改變資料集,增加難度。
在產業方面,不少專注於計算機視覺的公司也獲得了長足發展。其中比較具有代表性的是估值已經超過 20 億美元的商湯科技,在經歷了數輪大額融資之後,其隱隱有從獨角獸變成巨頭的趨勢。
不過,人工智慧另一個相關領域自然語言處理似乎沒有達到這種高度。在技術方面,這一領域的技術準確率遠遠沒有達到計算機視覺和語音識別的水平,技術產品(比如個人助手)經常被人諷刺只能用來調戲,缺少實際價值。在創業公司方面,自然語言處理領域也沒有產生像商湯、曠視、依圖、雲從這樣的“小巨頭”。
這些現狀都恰恰說明自然語言處理的難度。然而,可以說這項技術有多難,就有多重要。
微軟創始人比爾·蓋茨曾經表示,“語言理解是人工智慧領域皇冠上的明珠”。微軟全球執行副總裁沈向洋也在2017年底的公開演講時說:“懂語言者得天下……下一個十年,人工智慧的突破在自然語言的理解……人工智慧對人類影響最為深刻的就是自然語言方面”。
人工智慧包括兩個重要的部分——“感知”和“認知”。其中,計算機視覺和語音識別等領域屬於感知部分,而自然語言處理屬於認知部分的重要內容。對一個“智慧”而言,僅僅感知當然不夠,理解和消化內容的認知能力才是真正意義上的核心。
那麼,我們究竟何時才能摘下這個“人工智慧領域皇冠上的明珠”?圍繞這個問題,近日,DT 君分別採訪了兩位自然語言處理領域的領軍人物:賓夕法尼亞大學教授 Dan Roth 和微軟亞洲研究院副院長周明。
對於自然語言處理領域的從業者來說,這兩位的名聲如雷貫耳。
圖 | Dan Roth 教授在 EmTech China 峰會演講
Dan Roth 教授致力於通過機器學習和推理的方法幫助機器理解自然語言,他也是 AAAS、ACL、AAAI 和 ACM 的會士,曾在多個重要會議上擔任程式主席一職,他也是中國計算機學會主辦的國際自然語言處理和中文計算大會(NLPCC2018)的大會主席之一。
圖 | 周明博士在 EmTech China 峰會演講
而周明博士作為中國自然語言處理最頂尖的學者之一,目前擔任微軟亞洲研究院副院長、國際計算語言學協會(ACL)候任主席、中國計算機學會理事、中文資訊科技專委會主任、術語工作委員會主任、中國中文資訊學會常務理事等多個職務,還是哈爾濱工業大學、天津大學、南開大學、山東大學等多所學校博士導師。
在與兩位 NLP 領軍人物的對話中,DT君發現,兩位受訪者在一些熱門話題上有所分歧,比如說近幾年愈發火熱的專業競賽, Dan Roth 認為這樣的競賽長期來看對推動科學研究和發展價值不大,而周明的看法則正面得多。而在比較自然語言處理和計算機視覺的發展時,兩位都認為,自然語言處理遠比計算機視覺複雜,仍有許多問題沒有解決。
儘管如此,在訪談的最後,Dan Roth 和周明也都表示出對於自然語言處理有望在 2018 年湧現新進展的信心。以下為訪談全文:
我們還沒看到非常大的 NLP 創業公司
問:為什麼自然語言處理領域沒有產生非常大的創業公司?
周明:這個問題很值得研究。總的來說,這是因為自然語言處理的技術難度太大,和應用場景太複雜。
一個公司的成立和發展是由需求驅動。影像識別的需求巨大,例如安防和身份認證的應用場景很多,到處都有攝像頭,誰也看不過來。所以,安防領域一直期待著一種技術,只要達到一個閾值,立刻就能用了,恰好這兩年深度學習把計算機視覺水平升到了那個閾值。此外,就像上面的回答所說,影像識別問題更乾淨,再加上有現成且巨大的場景。所以,只要技術有一點突破,場景自然結合,公司一下子就做起來。
特別純粹的自然語言應用(不包括搜尋),主要就是機器翻譯。機器翻譯長期有需求,但沒有安防和身份認證的需求那麼大。而且,機器翻譯水平一直不到位。即使到今天,機器也很難翻譯有背景的複雜句子。
另外,自然語言處理的應用太依賴於UI了。影像識別基本不需要UI,直接在系統內部整合一些技術就行。包括微軟在內的所有公司做翻譯軟體,如果UI做得不行,使用者體驗不行,人們就不會願意使用。
技術產業化最重要的是商業模式,也就是怎麼讓技術掙錢。影像識別公司的掙錢模式已經成立了,但翻譯付費就難多了。所以自然語言是從研究到技術到落地到商業化,面臨一系列的挑戰。
目前的現狀是,自然語言處理技術更多的是作為公司內部技術,比如內部的商業情報或人機介面功能。但這不代表我們未來找不到這樣的渠道。
Dan Roth:在各種專業應用中,必須要選擇正確的自然語言模型,沒有任何單一模型可以解決自然語言領域中所遇到的所有問題,自然語言處理沒有一個可以解決所有問題的魔術盒子存在,你必須要把所有相關的知識庫放進盒子裡,選擇對的演算法,並且針對性的處理特定問題,那麼這個盒子最後才有作用。這種現狀加大了技術落地的難度。
舉例來說,計算機視覺發展到最後已經不是隻有單純識別影像或者是物體,而是要能夠做到預測這些物體的本身的下一個動作,比如說在桌子上放了瓶水,然後把瓶子往外推,一個先進的計算機視覺系統就能夠判斷出瓶子最終的動作軌跡可能是掉到桌子下。然而自然語言處理技術達不到這種水平,它無法進行預測。它只能就現有的文字組合、資料庫來判斷所有文字應該有的意義。
計算機視覺的物體識別準確度已經可以達到將近百分之百,而自然語言目前的閱讀準確度也不過將近9成,而這也是目前自然語言處理商用化的最大阻礙。如果要用到專業領域,那麼現有的精準度明顯不足。
即使我們不考慮基礎研究的困難,就算是現有的自然語言處理的基礎研究結果,似乎也沒有很好地轉化,很多產品在釋出會上的效果往往和實際使用的效果完全不同。
周明:目前自然語言處理產品出現的問題,很多時候無關技術,而是在產品設計和UI方面做得不夠好。
在做機器閱讀理解和機器翻譯研究的時候,我們往往有一個固定的評測集,以及F-分數和精確度這樣的評測方法。但這些不代表使用者的體驗,即使在實驗中分數達到100%也是這樣。技術是獨立於產品應用方向發展的,做產品的人應用技術的時候要運用之妙存乎一心。他們要考慮,無論是78%的技術,還是88%或者98%的技術,要怎麼運用到產品裡,才能讓使用者體驗最好。
使用者體驗要考慮什麼呢?最重要的是使用者介面。因為系統很難達到100%的正確,所以要考慮使用者怎麼操作,怎麼容錯,讓他們接受有缺陷的結果。比如說搜尋引擎返回多個搜尋結果的設計,其實非常巧妙。因為誰都知道搜尋達不到那麼好的水準,但當返回多個結果後,使用者不抱怨搜尋引擎,反而認為搜尋引擎的結果擴大了他的思路,把壞事變成好事。
這種巧妙的使用者介面設計和使用者體驗設計,是做自然語言處理的人要好好考慮的。系統和研究厲害,不代表能把使用者體驗做好。要從使用者的角度看,如何把你的技術,融入到其他所有的相關的場景中,解決使用者的實際問題。
還是以機器翻譯為例,在實驗室裡,所有話都實驗了很多遍,也沒有什麼噪聲,效果肯定很好。但做產品的時候要考慮語音、環境噪聲、背景噪聲、遠場識別、專有名詞,以及口音等等。如果做不好,會導致翻譯結果一塌糊塗。
但是,背景噪聲怎麼來解決呢?首先要好好調整UI,要解決語音識別的一些問題,然後可能要解決簡單的多輪對話的問題,要對使用者口音做自動調整,如果使用者覺得翻譯不好,要有方便的方式和他們互動。這樣就能讓使用者覺得,這個系統雖然沒有那麼好,但是他也給我解決了很多問題了。這一塊就是要考慮設計水平的能力了。
所以,這個不是科技要解決的問題,這個是產品設計要解決的問題。
2018年,我們可以期待哪些的 NLP 進展?
問:除了這些難點和問題,自然語言處理技術在研究和應用方面,可以在今年或未來幾年出現較大的進展?
Dan Roth:利用知識庫,未來自然語言處理應用會協助企業把專業知識轉成特定的自然語言處理模型。利用這些模型,自然語言處理技術就能成為很好的工具,影響更深層次的人類生活。
周明:垂直領域有一定的保護門檻(比如有一些不公開的資料),導致大公司無法直接進入。在這樣的領域可以做一些知識圖譜的探索,還可以針對本領域特點,做一些特殊的優化和有的放矢的研究,而不是使用通用的自然語言技術。這樣就可能會產生一個專業的知識圖譜,以及基於專用圖譜之上的自然語言理解的技術。最後提升整個領域的生產力。
此外,神經網路機器翻譯、閱讀理解、聊天對話,和創作輔助這四個應用在今年和明年就會有很多地方普及,相關的應用場景包括搜尋引擎、個人助手、語音助手、機器翻譯,還有個人製作音樂,個人製作新聞、撰寫網路小說、問答系統等等。
另外一個重要的應用是機器客服。一般沒人願意看產品手冊,但如果讓計算機讀一遍產品手冊,你就能問它任何手冊裡出現過的產品問題,就能在客服、售後服務這些領域產生很好的應用。智慧客服可以幫助提高效率,節省人員。系統也可以按照座席收費,有商業模式。
對成熟公司來說,首先搜尋引擎還有進步空間。如果搜尋引擎有閱讀理解的能力,在手機螢幕上返回的結果特別精準,會產生很大的競爭優勢。第二,現在資訊流非常重要。例如今日頭條背後的推薦技術需要理解文字,理解使用者,然後匹配他們。如果我們的自然語言處理能力提高了以後,推薦水平就提高了。
對創業公司來說,第一個機會是機器翻譯,但是要把使用者體驗和商業模式做好。第二個機會是客服。最後一個是開發垂直行業的自然語言處理技術。
“自然語言處理遠比計算機視覺複雜”
問:和一般的機器學習、人工智慧領域以及機器視覺這樣的方向相比,自然語言處理領域是否有存在屬於自己的獨特挑戰,有什麼解決方案?
Dan Roth:計算機視覺基本上就是物體探測。雖然計算機視覺應用很多,但基本上核心演算法都離不開物體探測這個方向,背後使用的邏輯也相當一致。
此外,由於計算機視覺的技術成熟度已經達到商用化的標準,所以我們可以看到很多不同的公司百花齊放。但自然語言處理的情況完全不同。不同場景、不同語言,甚至不同專業所需要用到的自然語言處理層次都不同,所以自然語言處理遠比計算機視覺複雜,且目前的應用還是相當少,要為了這些少數應用而開發自己的演算法並不划算。
周明:語音識別和影像識別都是一輸入一輸出,問題非常乾淨、簡潔。比如輸入一個圖片,要判斷裡面有沒有花或者草,直接判斷就行了。這些方向中間沒有多輪,不需要互動,一般不太依賴於知識圖譜和常識,即使用也被證明沒有什麼太大效果。
但自然語言處理有三個重要的區別,讓它變得很難:
第一,自然語言是多輪的,一個句子不能孤立的地看,要麼有上下文,要麼有前後輪對話。目前的深度學習技術,在建模多輪和上下文的時候,難度遠遠超過了一輸入一輸出的問題。所以語音識別做的好的人和影像識別做的好的人,不一定能做好自然語言。
第二,自然語言除了多輪特徵之外,它還涉及到了背景知識和常識知識,這個也是目前大家不清楚怎麼建模,都沒有完全明白。
第三,自然語言處理要面對個性化問題。同樣一句話,不同的人用不同的說法和不同的表達,影像一般沒有這麼多變化。這種個性化、多樣化的問題非常難以解決。
因為人工智慧包括感知智慧(比如影像識別、語言識別和手勢識別等)和認知智慧(主要是語言理解知識和推理),而語言在認知智慧起到最核心的作用。所以,我們可以很自信地說,如果我們把這些問題都解決了,人工智慧最難的部分就基本上要解決了。
問:那怎麼解決這些問題呢?
周明:雖然不保證可以改進技術,但有三個值得嘗試的方向:
第一,上下文的建模需要建立大規模的資料集。比如多輪對話和上下文理解。資料標註的時候要注意前後文。沒有這樣的資料,很難取得突破。
第二,強化學習很重要。我們需要根據使用者的反饋倒推模型並做引數修正,使模型更加優化。現在強化學習剛剛開始用在自然語言領域,效能並不穩定,但在未來很有機會。
第三,要引入常識和專業知識,並把這些知識構建好。這樣就能更加精準地回答問題。沒有人能證明現在常識知識用在語言問答和搜尋中的作用有多大。所以,我們需要一個測試集來檢驗結果。這個測試集要專門測上下文和常識,可以讓我們要不停用新模型(比如強化學習或者知識圖譜)去試錯,來看系統效能能不能提升。
機器理解競賽究竟價值何在?
圖丨SQuAD的全稱是史丹佛問答資料集(Stanford Question Answering Dataset),是由史丹佛大學自然語言處理實驗室開發的資料集和比賽。SQuAD的資料來自Wikipedia的文章。資料標註人員去掉了文章裡的一些單詞,並讓參賽隊伍利用模型重新填空,藉以檢測模型對文章的理解程度
問:2017年,微軟亞洲研究院、阿里巴巴和哈工大·訊飛聯合實驗室分別宣佈,自己開發的模型對文章的理解已經超過了人類標註員的水平,引起了很大的反響和爭議。類似 SQuAD 這樣的競賽是否有一些技巧刷分?類似的競賽對行業的意義有多大?我們需要什麼樣的資料集和比賽?
Dan Roth:這種競賽對於提高技術基礎建設會有一定的貢獻,但是長期來看,對推動科學研究和發展方面並沒有太多價值。
舉例來說,如果用相同資料集來進行競爭,持續個一年或兩年,比賽本身就會完全失去其意義。主要原因就是,如果人們只是為了競賽的資料來進行訓練,而不是我們所普遍關心的那些真正應該被解決的問題,那麼,最後我們就不會看到真正的技術進展,而只剩為了拿到比賽名次而發展的各種小技巧。
圖 | Dan Roth 教授接受 DT 君的採訪
周明:SQuAD的一些設定可以有效防止刷分。例如,資料集很大,而且測試集也沒有公佈。總的來說,史丹佛的 SQuAD 可以說是自然語言處理領域一個里程碑式的創新。人們原來做閱讀理解,都是泛泛的去做,從來都不知道到底做到什麼水平。但是,現在史丹佛做了一個大規模的,不太容易通過微調改進效能(fine tune)的資料集。實際上很有力地來促進這個領域。
但 SQuAD 確實存在問題。但正確的態度應該是巧妙地設計測試集的新難點,針對這些難點一條一條地把閱讀理解所涉及到的技術難點逐個攻關。久而久之,我們整體的閱讀理解能力就會迴圈往復地上升,最後就真的逼近人的平均水平。
圖 | 周明博士接受 DT 君的採訪
例如,SQuAD 沒有涉及太多的推理能力,我們就可以做一個專門測試推理能力的測試集。推理還可以分幾級:簡單推理可以根據上文就能推理,複雜推理可以根據全文推理,更復雜的推理甚至必須要用到背景和領域知識。如果能把這樣一層一層的難度做出來的話,成功就有一半了。
未來研究的成功有兩個重要的因素,一個是模型,一個是可以用來評測競賽的資料集。
參考:
【1】Computational Linguistics and Deep Learning Christopher D. Manning∗ Chttps://www.mitpressjournals.org/doi/pdf/10.1162/COLI_a_00239
人工智慧賽博物理作業系統
AI-CPS OS
“人工智慧賽博物理作業系統”(新一代技術+商業作業系統“AI-CPS OS”:雲端計算+大資料+物聯網+區塊鏈+人工智慧)分支用來的今天,企業領導者必須瞭解如何將“技術”全面滲入整個公司、產品等“商業”場景中,利用AI-CPS OS形成數字化+智慧化力量,實現行業的重新佈局、企業的重新構建和自我的煥然新生。
AI-CPS OS的真正價值並不來自構成技術或功能,而是要以一種傳遞獨特競爭優勢的方式將自動化+資訊化、智造+產品+服務和資料+分析一體化,這種整合方式能夠釋放新的業務和運營模式。如果不能實現跨功能的更大規模融合,沒有顛覆現狀的意願,這些將不可能實現。
領導者無法依靠某種單一戰略方法來應對多維度的數字化變革。面對新一代技術+商業作業系統AI-CPS OS顛覆性的數字化+智慧化力量,領導者必須在行業、企業與個人這三個層面都保持領先地位:
重新行業佈局:你的世界觀要怎樣改變才算足夠?你必須對行業典範進行怎樣的反思?
重新構建企業:你的企業需要做出什麼樣的變化?你準備如何重新定義你的公司?
重新打造自己:你需要成為怎樣的人?要重塑自己並在數字化+智慧化時代保有領先地位,你必須如何去做?
AI-CPS OS是數字化智慧化創新平臺,設計思路是將大資料、物聯網、區塊鏈和人工智慧等無縫整合在雲端,可以幫助企業將創新成果融入自身業務體系,實現各個前沿技術在雲端的優勢協同。AI-CPS OS形成的數字化+智慧化力量與行業、企業及個人三個層面的交叉,形成了領導力模式,使數字化融入到領導者所在企業與領導方式的核心位置:
精細:這種力量能夠使人在更加真實、細緻的層面觀察與感知現實世界和數字化世界正在發生的一切,進而理解和更加精細地進行產品個性化控制、微觀業務場景事件和結果控制。
智慧:模型隨著時間(資料)的變化而變化,整個系統就具備了智慧(自學習)的能力。
高效:企業需要建立實時或者準實時的資料採集傳輸、模型預測和響應決策能力,這樣智慧就從批量性、階段性的行為變成一個可以實時觸達的行為。
不確定性:數字化變更顛覆和改變了領導者曾經仰仗的思維方式、結構和實踐經驗,其結果就是形成了複合不確定性這種顛覆性力量。主要的不確定性蘊含於三個領域:技術、文化、制度。
邊界模糊:數字世界與現實世界的不斷融合成CPS不僅讓人們所知行業的核心產品、經濟學定理和可能性都產生了變化,還模糊了不同行業間的界限。這種效應正在向生態系統、企業、客戶、產品快速蔓延。
AI-CPS OS形成的數字化+智慧化力量通過三個方式激發經濟增長:
創造虛擬勞動力,承擔需要適應性和敏捷性的複雜任務,即“智慧自動化”,以區別於傳統的自動化解決方案;
對現有勞動力和實物資產進行有利的補充和提升,提高資本效率;
人工智慧的普及,將推動多行業的相關創新,開闢嶄新的經濟增長空間。
給決策制定者和商業領袖的建議:
超越自動化,開啟新創新模式:利用具有自主學習和自我控制能力的動態機器智慧,為企業創造新商機;
迎接新一代資訊科技,迎接人工智慧:無縫整合人類智慧與機器智慧,重新
評估未來的知識和技能型別;
制定道德規範:切實為人工智慧生態系統制定道德準則,並在智慧機器的開
發過程中確定更加明晰的標準和最佳實踐;
重視再分配效應:對人工智慧可能帶來的衝擊做好準備,制定戰略幫助面臨
較高失業風險的人群;
開發數字化+智慧化企業所需新能力:員工團隊需要積極掌握判斷、溝通及想象力和創造力等人類所特有的重要能力。對於中國企業來說,創造兼具包容性和多樣性的文化也非常重要。
子曰:“君子和而不同,小人同而不和。” 《論語·子路》雲端計算、大資料、物聯網、區塊鏈和 人工智慧,像君子一般融合,一起體現科技就是生產力。
如果說上一次哥倫布地理大發現,擴充的是人類的物理空間。那麼這一次地理大發現,擴充的就是人們的數字空間。在數學空間,建立新的商業文明,從而發現新的創富模式,為人類社會帶來新的財富空間。雲端計算,大資料、物聯網和區塊鏈,是進入這個數字空間的船,而人工智慧就是那船上的帆,哥倫布之帆!
新一代技術+商業的人工智慧賽博物理作業系統AI-CPS OS作為新一輪產業變革的核心驅動力,將進一步釋放歷次科技革命和產業變革積蓄的巨大能量,並創造新的強大引擎。重構生產、分配、交換、消費等經濟活動各環節,形成從巨集觀到微觀各領域的智慧化新需求,催生新技術、新產品、新產業、新業態、新模式。引發經濟結構重大變革,深刻改變人類生產生活方式和思維模式,實現社會生產力的整體躍升。
產業智慧官 AI-CPS
用“人工智慧賽博物理作業系統”(新一代技術+商業作業系統“AI-CPS OS”:雲端計算+大資料+物聯網+區塊鏈+人工智慧),在場景中構建狀態感知-實時分析-自主決策-精準執行-學習提升的認知計算和機器智慧;實現產業轉型升級、DT驅動業務、價值創新創造的產業互聯生態鏈。
長按上方二維碼關注微信公眾號: AI-CPS,更多資訊回覆:
新技術:“雲端計算”、“大資料”、“物聯網”、“區塊鏈”、“人工智慧”;新產業:“智慧製造”、“智慧金融”、“智慧零售”、“智慧駕駛”、“智慧城市”;新模式:“財富空間”、“工業網際網路”、“資料科學家”、“賽博物理系統CPS”、“供應鏈金融”。
官方網站:AI-CPS.NET
本文系“產業智慧官”(公眾號ID:AI-CPS)收集整理,轉載請註明出處!
版權宣告:由產業智慧官(公眾號ID:AI-CPS)推薦的文章,除非確實無法確認,我們都會註明作者和來源。部分文章推送時未能與原作者取得聯絡。若涉及版權問題,煩請原作者聯絡我們,與您共同協商解決。聯絡、投稿郵箱:erp_vip@hotmail.com
相關文章
- NPL---自然語言處理單詞界定問題自然語言處理
- 自然語言處理之序列標註問題自然語言處理
- 自然語言處理中的分詞問題總結自然語言處理分詞
- 自然語言處理(NLP)系列(一)——自然語言理解(NLU)自然語言處理
- 自然語言處理NLP(四)自然語言處理
- 自然語言處理(NLP)概述自然語言處理
- HanLP 自然語言處理 for nodejsHanLP自然語言處理NodeJS
- 自然語言處理的最佳實踐自然語言處理
- [譯] 自然語言處理真是有趣!自然語言處理
- 自然語言處理:分詞方法自然語言處理分詞
- 自然語言處理中的語言模型預訓練方法自然語言處理模型
- 自然語言處理NLP快速入門自然語言處理
- 配置Hanlp自然語言處理進階HanLP自然語言處理
- 自然語言處理之jieba分詞自然語言處理Jieba分詞
- 人工智慧 (06) 自然語言處理人工智慧自然語言處理
- 自然語言處理與情緒智慧自然語言處理
- Pytorch系列:(六)自然語言處理NLPPyTorch自然語言處理
- 史丹佛自然語言處理習題課1——緒論自然語言處理
- 精通Python自然語言處理 2 :統計語言建模Python自然語言處理
- 探索自然語言處理:語言模型的發展與應用自然語言處理模型
- 中國語文(自然語言處理)作業自然語言處理
- 有趣的自然語言處理資源集錦自然語言處理
- hanlp自然語言處理包的基本使用--pythonHanLP自然語言處理Python
- 12 種自然語言處理的開源工具自然語言處理開源工具
- 自然語言處理NLP(6)——詞法分析自然語言處理詞法分析
- 自然語言處理怎麼最快入門?自然語言處理
- 精通Python自然語言處理 1 :字串操作Python自然語言處理字串
- 深度解析自然語言處理之篇章分析自然語言處理
- 自然語言處理(NLP)路線圖 - kdnuggets自然語言處理
- 人工智慧--自然語言處理簡介人工智慧自然語言處理
- 掌握BERT:從初學者到高階的自然語言處理(NLP)全面指南自然語言處理
- 語義理解和研究資源是自然語言處理的兩大難題自然語言處理
- 影片場景下的自然語言處理應用自然語言處理
- 自然語言處理中的遷移學習(下)自然語言處理遷移學習
- 自然語言處理中的遷移學習(上)自然語言處理遷移學習
- 人工智慧的研究熱點:自然語言處理人工智慧自然語言處理
- 自然語言處理背後的資料科學自然語言處理資料科學
- Pyhanlp自然語言處理中的新詞識別HanLP自然語言處理