楊明翰翻譯
(原文:Introducing DeepText: Facebook’s text understanding engine)
在FB上文本是很普遍的一種溝通形式,理解不同的文本有助於幫助我們提升人們對我們產品的體驗,是否我們顯露的更多內容人們想要看或是濾除掉不討喜的垃圾訊息。在這樣的目標之下,我們建造了DeepText,一個基於深度學習的文本理解引擎,他可以理解接近人的準確度的文本內容,並在一秒內處理幾千篇貼文生成超過20種語言。DeepText槓桿作用了幾個深度神經網路的架構包含卷積神經網路以及遞迴神經網路,並且可以提供基於詞彙等級和字母等級的機器學習。
(前輩反應:leverage 是憑藉的意思. 這句 "DeepText leverages several deep neural network architectures, including..." 譯為 "DeepText 奠基於數種深度神經網路架構, 包含..." 較為恰當 非常感謝校正!)
我們使用 FbLearner Flow(FB的機器學習核心)和Torch(C++ based的AI lib)做模型訓練,訓練好的模型被一鍵提供在FBLearner Predictor platform 那個提供擴充性和可信賴的分散式基礎設備。FB的工程師們可以透過DeepText提供的內部系統輕易地建造新的DeepText的模型
為何是深度學習?
文本理解包含了多項任務 像是通用的分類器去判斷一個貼文是在說什麼
,舉個例子「籃球」相關的命名實體識別,可以知道球員的名稱,一場球賽的統計以及其他有意義的資訊但想要更接近人理解文本,我們需要教電腦去理解一些像是俚語以及詞義消岐。舉個例子,如果有人說:我喜歡黑莓,這裡的黑莓是指水果還是黑莓機?
在Facebook上的文本理解提供解決大規模和語言的挑戰在傳統的自然語言處理技術裡沒效率的。使用深度學習,我們就有能力去更好的理解跨語言的文本然後比傳統的自然語言處理技術更有效率的使用標記資料,DeepText 的技術建立在原本建立於Ronan Collobert和Yann LeCun在Facebook AI的研究的深度學習的點子擴充。
快速的理解更多語言
在Facebook上的社群無疑是國際性的,所以要讓DeepText 去盡可能的理解越多語言。傳統的自然語言處理技術需要廣泛的處理邏輯建立在複雜的工程和語言的知識。同時在語言裡也出現變異,像是俚語或不同的拼字方式來表達同一個概念,使用深度學習,我們可以減少對語言知識的依賴,讓系統可以從文本裡學習且不使用或使用一點點的處理。這可以幫助我們擴增到各種語言,而且花最少的工程力氣。
更深度的理解
在傳統的自然語言處理方法,詞彙被轉換到一種電腦可以學習的形式。詞彙「兄弟」可能被指定成一個整數ID 4598同時「兄」可能被轉換到另一個整數ID 986665 這代表同一個詞彙拼字必須完全一樣,這樣電腦訓練時才能完全理解。
而對於深度學習,我們可以用「詞向量」一種用數學來表示詞彙之間的語意的關係。所以透過適當的計算我們可以看到詞彙「兄弟」和詞彙「兄」在向量空間裡很接近。這種形式的表示方式,讓我們可以挖掘詞彙的語意。
使用「詞向量」我們也可以理解同一個語意跨越不同的語言,儘管 表層形式的語言不同。舉個例子,在英語和Spanish“ happy birthday” 和 “feliz cumpleaños” 應該在向量空間裡非常相近。利用映射詞彙和成語到同一詞個向量空間裡,DeepText可以建造跨語言的模型。
稀缺的標籤資料
書寫語言,儘管變化如上所述,有非常艱困的過程在利用非監督的機器學習抽取未標籤的文本到向量空間裡。深度學習提供一個很好的框架來槓桿作用在這些詞向量和更精煉的使用人工標籤的資料集。這是對於傳統自然語言處理的方法來說是一個非常重要的優勢,傳統自然語言處理必須要人工標記大量的文本,且非常沒有效率以及無法轉移到新任務。在非常多個案裡,這種非監督學習和監督學習的變化型展現出更優良的表現在稀缺的標籤資料。
在Facebook上探索DeepText
DeepText已經在許多Facebook的體驗上被測試,在這個Messenger的個案裡,舉個例子,在一個人也許想要去某個地方,現在已經可以給我們一個更好的理解。DeepText 被使用於意圖偵測,以及實體抽取來幫助理解一個人不是在等,,計程車當他(她)說出“I just came out of the taxi,”是“I need a ride.”的相反。
我們也開始使用高精準度的、多語言的DeepText 的模型,來幫助人找到正確的工具滿足他們的目的。舉個例子,有個人可能寫了一則貼文: “I would like to sell my old bike for $200, anyone interested?” DeepText 有能力偵測這句話內有人想要賣一個東西,並抽取有意義的資訊,像是被賣的物件以及它的價錢,並把這則訊息推廣給有需要的人,讓這些交易更容易。
DeepText有機會增強Facebook的體驗,源自於抽取意圖、語意、以及實體(例如:人物、地點、事務)。而且可以整合內容訊息,如文本和圖片,然後移除令人反感的內容,像是垃圾訊息。非常多明星以及公眾人物使用Facebook開始與公眾對話,這些對話有數百到數千筆。找到最合適的回應在跨語言的狀況之下即時回應是非常困難的。其中一個DeepText可能做的是幫助提供最適切或高品質的回應。
下一步
我們Facebook AI Research 團隊正在進一步增強DeepText以及它的應用,以下是幾個範例。
更好的理解人的興趣
一部分的個人化用戶體驗的方式在Facebook上是推薦和個人興趣有關的內容,為了做到這件事情,我們必須映射每個文本到對應的主題,那需要非常多的標記資料。
然而這些資料集難以手工製造,我們利用Facebook的貼文測試用半監度式的機器學習產生大量的標籤資料集。它的職責是提供讓這些貼文可以被偵測的主題,舉個例子, Steelers(維基百科: Steelers page,匹茲堡鋼人,另譯匹茲堡鋼鐵人。是一支職業美式足球球隊) 的粉專的貼文會包含美式足球的相關貼文,運用這個內容,我們可以訓練一個通用的興趣分類器,我們叫做PageSpace,使用DeepText作為它的基礎技術,迭代多次之後,它可以更進一步的改善其他Facebook的體驗。
聯合理解文本和圖像的內容
人們常常貼圖片和影片,並寫上相關的文本,在非常多情況之下,理解意圖包含同時理解圖片和文本。舉個例子,一個朋友可能貼一張和她的嬰兒的照片並寫上文本“Day 25.”,一起看整份內容可以很清楚的知道他的意圖在分享家庭訊息,我們正在運作一個團隊做聯合理解文本和圖片的工作。
新的類神經網路結構
我們不斷的在調查研究新的深度學習類神經網路結構,雙向遞迴類神經網路. Bidirectional recurrent neural nets (BRNNs)展現可喜的結果,因為它可以透過卷積同時捕捉文本的語境以及詞彙的前後關係,我們已經觀察BRNNs和傳統的卷積神經網路比較在分類上可以有很低的錯誤率。在某些個案裡,錯誤率低於20%。
當提供更多的深度學習技術在文本識別上,我們會持續的增強Facebook的體驗,在Facebook的非結構資料提供一個獨特的機會給自然語言理解系統自動的學習語言,並被使用於跨語言,讓自然語言處理的藝術更上一層樓!
品質改進計畫:有好心的朋友說要修該一些翻譯不通順的地方,發揮開源精神,如果你覺得翻譯的品質可以改善,可以直接到以下連結去編輯共筆:
https://hackpad.com/DeepText-Facebook–HbVgB2ELGe8
近期迴響