第5章 AI與自然語言處理

感謝您的閱讀!!!這是一本很不錯的AI書籍!!!如果您需要這本書的英文版,請加我微信bigdata_work,註明:Zero To AI     如果您需要看這本書的中文版,請關注微信公衆號 登峯大數據 。目前已翻譯了前5章,後續都會發布到公衆號上,歡迎閱讀。

本章包括

  • 理解自然語言處理的主要挑戰

  • 用情感分析來衡量文本中的觀點

  • 使用自然查詢搜索文本內容

  • 構建會話接口(聊天機器人)

  • 案例研究:ML輔助語言翻譯

自20世紀50年代以來,讓計算機理解語言一直是計算機科學家的白日夢。這可能是因爲大多數人類的知識和文化都是用文字記錄下來的,而語言的使用是使我們區別於動物的最強大的能力之一。理解語言和創造語言,這些技術的總稱爲自然語言處理(NLP)。

不幸的是,賦予機器理解和創造語言的能力是相當困難的:維持如此無縫的人機交互的技術還沒有出現。這並沒有阻止公司、機構和媒體過度銷售端到端解決方案的潛力。聊天機器人就是這種現象的一個典型例子,它被大肆宣傳爲能夠與客戶進行信息交流的自主代理,能夠在銷售或售後服務等複雜事務中無縫地擴充或取代人工。結果令人失望:2017年,硅谷博客the Information發表了關於Facebook Messenger個人助理M的研究報告。該博客報道稱,M未能處理70%的用戶請求。你可以想象,違背諾言除了浪費金錢、時間和挫折之外,什麼也不會有。

如果這種介紹看起來不那麼鼓舞人心,那就看下這些好消息吧。首先,技術正在迅速發展,可能性的範圍也在相應擴大。第二,您將學習如何發現和開發那些可以從更簡單、更成熟的NLP工具中獲益的隱藏項目。在圍繞NLP的炒作泡沫中,這些機會往往被低估了,但對於你的AI努力來說可能是一個強大的成功故事。

本章有兩個主要目標:

  • 給你判斷一個想法在今天的技術(和你的資源)下是否可行的知識。

  • 教您如何規劃自然語言的努力,以實現投資回報的最大化。這將使你成爲一個撥開迷霧的人,並在你的組織中發現隱藏的機會。

我們將首先解釋爲什麼語言對計算機來說真的很難,以及機器學習如何在過去幾年裏再次拯救了我們,讓我們能夠創建令人驚歎的產品和解決方案。

5.1 自然語言處理的魅力

讓我們面對現實吧。我們在互聯網上消費信息的方式,一段時間內已經陷入了非自然的妥協:我們仍然在點擊按鈕和選擇下拉菜單,而在現實世界中我們只是使用簡單的語言。自然語言處理是一種技術,它可以讓我們消除這一障礙,讓人們以體驗現實世界的方式來使用數字世界。

讓我們試着想象一下NLP將如何改變一個房產經紀人網站的遊戲規則。我們將設身處地爲它的一位用戶着想:一位來自舊金山的富有的創業投資者,他想買一套房子。她想要一幢至少有四個房間的大別墅,靠近101號高速公路,必須能看到海景。

現在,當她訪問該網站時,她面對的是我們都熟悉的經典門戶網站界面:一個菜單、一些價格、位置、臥室的框,以及每個列表的一堆信息(圖像、描述等)。

擺弄所有這些按鈕、選擇器和下拉菜單,感覺就像坐在一架飛機的駕駛艙裏,你想要的只是這個問題的一個簡單答案:

在舊金山,有哪些別墅靠近高速公路,能看到美麗的海景,而且至少有四間臥室?這個週末我想去參觀一些最好的別墅。

每一個有血有肉的經紀人都能回答這個問題,但我們不可能爲每個在互聯網上找房子的人配備一個專門的人。但是如果我們可以使用人工智能呢?這就是機器語言理解的前景:對每個與計算機交互的人來說都是一種卓越的體驗,在一定程度上增加了他們的滿意度和效率。

您已經意識到,在使用語言方面,完全匹配人類的能力是當今技術所無法達到的。解決這一挑戰的方法是設計降低複雜性的解決方案,以適應現有的技術。第一步是理解和度量複雜性。讓我們開始吧。

5.2 分解NLP:度量複雜性

語言是人類區別於動物的最重要的能力之一。雖然家裏的狗可以用聲音來交流,但它的情緒是有限的(例如,痛苦、悲傷和憤怒)。另一方面,人類可以(幾乎)用語言來交流任何事情:從表達我們的感情到我們生命中的愛,再到點一個雙層芝士漢堡。

顯然,從狗的簡單能力到詩人能用語言表達的細微差別,這是一個複雜的範圍。在技術領域,複雜性是我們的敵人:任務越複雜,我們失敗和推出平庸產品的機會就越多,特別是在NLP這樣的技術不成熟的情況下。我們如何在NLP任務領域中度量複雜性?根據我們的經驗,有兩個定性的關鍵指標:

  • 廣度——執行任務所需的主題或語言域的多樣性。我們的算法需要掌握多大的詞彙量?

  • 深度——我們的算法的結果有多複雜?它需要理解或做多少事情?

表5.1 列出了NLP任務的示例,並指出了它們的寬度和深度。

表5.1 NLP任務及其廣度和深度評價

任務 寬度 深度
理解一個亞馬遜的產品評論是正面的還是負面的 高:評論可以是關於廣泛的產品和屬性。 低:只有兩個可能的輸出(積極或消極情緒)。
幫助旅客預訂和管理他們的機票。 低:我們要處理的文本是關於主題的一個有限子集(航班、預訂)。 高:必須瞭解大量的選項,從檢查價格到更改機票、處理投訴、提供機場協助等等。
幫助經理計劃他們的時間和預約(祕書機器人)。 高:祕書需要了解關於許多領域的查詢----行程安排、預約、發票、差旅等等。 高:在每一個主題中,祕書機器人應該有一個堅實的理解和執行復雜的行動,比如在一個舒適的時間安排會議,同時安排交通。

請注意,因爲寬度和深度都影響了任務的複雜性,所以我們可以說,任務的總體複雜性與它們的乘積成正比:

Complexity = Width × Depth
複雜度 = 寬度 × 深度

如果我們在座標軸上畫出這兩個度量的圖形,我們就得到了一種有效的方法來可視化NLP任務的複雜性。大區域矩形的任務比面積較小的任務更復雜,如圖5.1所示。

圖5.1 房產網站可以通過聊天機器人完成的各種NLP任務的寬度和深度

 

讓我們回到房產網站聊天機器人的例子。這個聊天機器人可以執行的一個簡單操作是理解基本的用戶查詢,基本上取代了傳統的搜索界面。這是一個查詢的例子:

幫我查詢下舊金山市中心那些價格不到200萬美元、有四間以上臥室的房子。

在這種情況下,聊天機器人需要執行一個單獨的操作--查詢數據庫--與單一領域相關:房產屬性。我們可以從聊天機器人那裏得到更多信息,擴展它的功能,從這個數據庫中提取元信息或回答更復雜的查詢,例如:

在普雷西迪奧(Presidio)社區,一套帶海景、有四間臥室、距離 101號高速公路(Highway 101)不到10分鐘車程的房子,平均價格是多少?

這不會增加寬度,因爲語言域仍然侷限於房子,但是深度要高得多,因爲機器人必須能夠處理的可能操作的數量已經增加了。最後一步是管理家庭旅遊的預訂。這將隨着操作數量的增加而再次增加深度。現在,寬度也增加了,因爲機器人需要理解與預訂相關的新語言表達式。

請記住,兩個非常不同的任務可能具有相似的複雜性。讓我們轉換一下話題,來看兩個你可能已經熟悉的NLP的典型例子:

  • 推特上的情感分析——在這項任務中,該模型會閱讀一篇短文,並判斷它表達的是正面還是負面的情緒。換句話說,情感分析就是找出作者對文章主題的看法。例子:“我喜歡斯皮爾伯格的新電影”是正面的。“這部新手機的攝像頭很糟糕”是負面的。

  • 客戶支持票據(customer support tickets)的分類——對於這個任務,模型讀取來自客戶的抱怨,並將它們分配給幾個潛在原因類別中的一個。例如:“密碼錯誤”是一個身份驗證問題,而“網站沒有加載”是一個連接問題。

第一個任務具有高寬度,因爲它可以處理許多主題(人們使用Twitter談論一切),但深度較低,因爲它只有兩種可能的結果:正面或負面的評論標誌。

另一方面,第二個任務具有較低的寬度,因爲它需要處理所有與相同域(IT內容不起作用)某種程度上相關的票據,但是它具有較高的深度,因爲它需要將票據放入幾個桶中。在我們的寬度/深度圖上,這兩個任務看起來類似於圖5.2。

圖5.2 寬度/深度圖上的兩個任務:對客戶支持票進行分類(高深度,低寬度),以及對tweets進行情感分析(高寬度,低深度)

 

我們如何將這些見解轉化爲可操作的信息?從廣度和深度的角度看待NLP任務有助於評估其可行性。通常,您希望通過從最低寬度/深度組合開始設計NLP應用程序,來儘可能地降低這兩個值。您將根據自己的需要在其基礎上進行構建,這取決於可以實現的性能。在圖5.3中,可以根據應用程序的深度和寬度看到其可行性的表示。

圖5.3 基於寬度和深度的NLP應用。一個應用程序越接近右上角,它就越不可能在今天的技術條件下實現。

 

在本章的下一部分中,我們將使用這個心智模型作爲我們的嚮導,爲我們的房產網站添加NLP功能。

5.3 向您的組織添加NLP功能

讓我們回到上一章講到的房產經紀人網站。我們的基於DL的圖片分類器極大地改善了用戶體驗,每月的訪問量也在快速增長。客戶訪問我們的網站,可以快速找到他們感興趣的細節,通過圖像的每個房子的圖片,詢問更多關於他們最喜歡的家的信息。現在,對特定房子列表感興趣的人可以通過兩種方式來了解更多信息:

  1. 花很長時間閱讀房主留下的描述和所有其他人的評論(讓我們假設我們的房產平臺上有關於房子的評論)。

  2. 呼叫客戶服務,它將連接客戶和處理該房屋的經紀人。

第一個選項不是很好的用戶體驗,而第二個選項對於您的業務來說是非常昂貴的。我們已經描繪了一個類人的計算機程序(通常被稱爲bot、chatbot或agent),它可以完全取代房屋經紀人的角色,但我們也知道,這樣的NLP應用程序不太可能適用於今天的技術。我們可以將這個高級應用程序稱爲brokerbot:它具有高寬度和高深度。

讓我們後退一步,看看我們的業務目標。業務目標是允許客戶快速找到他們需要的關於每個房屋清單的信息。如果你從這個角度來看,brokerbot有點大材小用:在使用更簡單的技術的同時,我們仍然可以逐步獲得更好的用戶體驗和更快的搜索速度。

我們知道,用戶會花很多時間瀏覽其他潛在購房者的評論。這些評論中包含的信息通常不包括在房屋描述中,比如照明情況、社區情況等的第一手信息。我們希望利用這些信息幫助其他用戶做出最好的決定,但是很少有人願意花時間閱讀所有這些信息。

在接下來的章節中,我們將逐步爲我們的網站提出更復雜的NLP特性,利用我們擁有的主要自然語言內容:用戶評論。您會發現,即使是最基本的NLP功能對人們來說也是有用的,而不必設計超級複雜的類人特性,這些特性最終可能會讓用戶感到失望。如圖5.4所示,在一個複雜且不成熟的領域,如自然語言處理,產品複雜性的增加會成倍地增加技術風險,而業務價值則會在一段時間後停滯不前。

圖5.4 不同的特性隨着複雜性的增加,帶來的技術風險呈指數級增長,而業務價值迅速停滯不前。

 

向我們的網站添加NLP功能的第一步應該是我們能夠構建的最簡單的事情,同時仍然爲人們提供價值。在我們的例子中,可以開發一個系統,將每個房子評論分爲正面或負面,讓新用戶更容易理解所列出的房子實際上有多好。

基本上,我們希望從像表5.2中那樣的無組織的評審佈局,過渡到更易於理解和提供更多信息的佈局,如表5.3中所示。

表5.2 正面和負面評論的列表混合在一起

評論
很好的位置!
這房子又舊又破。
從屋頂往下看,景色美極了。
我決不會和這麼危險的鄰居住在一起。

表5.3 一個有組織的正面和負面評論表

人們喜歡的 人們不喜歡的
很好的位置! 這房子又舊又破
從屋頂往下看,景色美極了。 我決不會和這麼危險的鄰居住在一起。

讓我們看看情感分析在深度和廣度方面的情況。請記住,應用程序的深度與模型功能的複雜程度有關。在本例中,我們只要求聊天機器人將評論分爲兩類(正面或負面),因此深度較低。寬度 度量模型必須“知道”的詞彙量(它必須瞭解的單詞數量,以便正確地對評論進行分類)。在這種情況下,所需的詞彙種類僅限於“美麗”、“安全”、“驚險”等正面詞彙,以及“破舊”、“糟糕”、“危險”等負面詞彙。這些詞是一般的正面詞和負面詞的結合,如“美麗”和“醜陋”,以及一些領域特定的術語,如“寬敞”和“磨損”,是具體到房屋領域。因此,它的寬度比標準的情感分析任務略高,但並不顯著。圖5.5在圖5.1中引入的寬度/深度圖上,將情緒分析與brokerbot進行對比。

圖5.5寬度/深度圖上的brokerbot與情感分析。情感分析的深度和寬度都比較小,因爲它的最終結果比較窄,而且它只處理表達觀點的詞彙。

 

正如您所看到的,與brokerbot相比,它是一個更小的區域,因此它更容易構建,同時仍然爲用戶體驗帶來顯著的改進。

情感分析是NLP的一個經典而重要的應用,值得深入探討。在下一節中,我們還將使用它作爲一種工具來闡明NLP算法的內部工作原理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章