自然語言如何商業落地摘錄及思考

自然語言如何商業落地摘錄及思考

來自專欄 NLP點滴

2018 全球人工智慧與機器人峰會(CCF-GAIR)NLP 專場,雲孚科技創始人兼 CEO 張文斌;竹間智能 CTO 翁嘉頎;神州泰岳大數據 VP 張瑞飛;薄言 RSVP.ai 聯合創始人 CTO 熊琨 帶來的分享筆記摘錄,文字稿來自:AI 科技評論:自然語言處理可以這樣商業落地。

公司概覽

雲孚科技

專註於為企業提供自然語言處理技術解決方案。

  • NLP 的特點
  • 來自各行業客戶的真實需求非常多
  • 難度非常大,尤其是中文:

  • NLP 商業化
  • 2C
  • 2B

    • 垂直行業的應用
    • 基礎技術平台
  • 雲孚科技的架構

創業公司的核心不是提出新的模型和演算法,我們是結合學術界最好的模型和演算法,從工程、數據角度,把效果優化到理想程度。

雲孚的戰略總結起來就是:「先橫後縱、自底向上」——先做橫向的、底層的技術平台,再做縱向的、上層的行業應用。

竹間智能

公司主要是做情感計算和文本分析、自然語義理解,情感計算。不只做文本情感,還做語音情緒和表情。

傅園慧說「在澳洲訓練非常辛苦,我已經快死了,簡直是生不如死」,「鬼知道我經歷了什麼,我太累了」

目前人工智慧必須從單個到單獨的領域去突破,去那個領域先收集語料,以及到底要解決什麼問題,針對這一類問題我能解決哪些?

比如訂酒店,今天我要訂酒店,我可能會說「我要訂萬豪酒店旁邊的快捷酒店」,如果抓關鍵詞的話,會以為我要訂萬豪酒店。再比如訂餐,我大概有七八個大人再加兩個小孩,七八個大人是七十八個人還是八個人?再比如說「幾點」?六、七點,不不不,改成八點好了。那麼到底是幾點?

希望未來每個人有自己的機器人,你的機器人能理解你,記得你,我跟手環或機器人說「幫我點個外賣吧,我肚子餓了」,它能記得我喜歡吃什麼、不喜歡吃什麼,而且它知道我昨天吃過什麼、前天吃過什麼,不要點重複的東西。每個企業都應該有點餐機器人,可以做智能客服的回答。未來我們還可以跟機器人交流,比如我跟手環說「幫我點個巨無霸吧」,它知道這是麥當勞的產品,會找到麥當勞的機器人,兩個機器人對話,幫我搞定。

神州泰岳

大數據及人工智慧公司。

  • 解決演算法、數據和算力這三個數據時,肯定先搞定數據
  • 工程化的第二步,也就是怎樣在成本成效中有所取捨
  • 遷移學習
  • 把人類已有的知識結構和語言結構和深入學習進行融合

把概念單元、把 3192 個句類、語境單元和記憶標好,實現有限和無限之間的哲學關係,概念是無限的,但概念單元是有限的,語句是無限的,但句類是有限的,語境是無限的,但語境單元是有限的。把已有的結構化知識或者圖的知識結構,就是用人腦可以分析的知識結構直接融入到神經網路中,在演算法中把它適配和協調起來,這樣演算法落地時才准,準是你能使用的非常高的影響力,它也是能要到錢的基礎。

薄言 RSVP.ai

公司的初衷就是希望讓機器了解語言,自動幫人做一些關於語言的事情。

  • 任務型自然語言理解:希望深度學習網路不僅僅給出概率分布,還希望給出圖狀結構,能夠解決文法表達的問題。

  • 對話型理解

技術討論

NLP 落地的技術鴻溝

  • 就算分詞這麼成熟的技術,落到特定行業,面對一些新詞,效果還是不足夠理想,還需要花很多精力去做針對特定領域去做優化。
  • 短文本、短句 15 個字以內,意圖理解、意思理解可能沒有什麼問題,長文本目前還不太行。
  • 把視覺中已經取得的技術,比如 DCN 技術應用在文本中,如輿論控制。
  • 演算法通用問題(把演算法做得特別深,往往有普適性的問題,如果做平台,往往做深入就會有困難);
  • 模型遷移問題(新的領域的訓練語量沒有那麼多,但又有各自領域自己的知識和特點,這個時候通用的數據集怎麼達到更好的效果?)
  • 成本問題

需要重點解決的問題

  • 短文本相似度(同樣的文本可能意思不同)
  • 標註好的數據
  • 如何做好對話控制,如何限制用戶講話方式
  • 非結構化文本存在,怎麼在這上面把他們想要的結構化信息抽取出來,抽取完再構建這個行業的知識圖譜。一般可以先用已有的通用系統結合基於規則的方法先做一版系統出來,這樣可以先跑一個初步結果,從中挑一部分比較嚴重的 badcase 出來,人工標註語料,再重新訓練模型,如此反覆迭代。總之,怎麼樣用儘可能少的標註語料,可以快速遷移領域是一個非常實際的問題。

一些建議

  • 首先,搭建一套統一的基準平台,先給演算法和數據分別定義好統一的介面,然後就能很方便地替換成演算法或模型以及數據進行效果測試,這樣就可以快速嘗試新的演算法模型,到底在特定任務上效果怎麼樣,純粹根據效果來挑選最終適合這個任務的整體模型方案。其次,真正用這些演算法做預測時,我們還得考慮它的性能,在正式場合,包括它需要的硬體條件是否符合業務需求。
  • 內部要有自己的測試集和標準,對於新的方法能夠快速適應和嘗試。

對 NLP 的思考

這篇文章看了兩遍,頗有些感觸和收穫,將一些思考記錄如下。

NLP 商業化思路

  • 垂直行業應用。

這點聽很多大佬講過,因為通用的由於涉及不同業務場景、背景知識、數據等導致太難做,只能退而求其次,在一個領域做精,再將方法遷移至其他領域,比如神州泰岳。

  • 專業應用服務。

這個是把 NLP 中的某一領域做到極致,這種極致不僅包括在該領域技術水平領先,同時還能與其他不同領域的技術結合,比如竹間智能的情感分析除了文本,還有語音、表情等。當然,也有在特定領域做垂直行業應用的,比如薄言的自然語言理解。

  • 基礎服務。

主要是做底層的技術平台,以及在此基礎上提供一些對外的應用服務介面。比如雲孚科技,他們的基礎 LTP 服務以及信息抽取、知識圖譜等都是相對底層的。這種服務可以做到模型、服務統一,數據定製。

  • 相關配套服務。

典型的如數據生產、加工等公司。比如交易數據的數據堂,以及一些數據標註、數據採集(如八爪魚)、數據清洗公司等。

從這簡單的分類可以看出 NLP 領域巨大的市場,NLP 自身多個領域觸及到各個行業都有應用場景。從數字到圖像、聲音再到自然語言,數據維度越來越複雜,非結構程度越來越高,抽象程度越來越高。難怪人們都說 NLP 是 AI 的皇冠,NLP 即便不是 AI 的終極任務,也一定是其中最重要的任務。

NLP 體系設計

本部分將簡單討論下 AI 自然語言處理商業化(以下簡稱 NLP)體系設計架構,希望能做到模塊化、層次化,以便為不斷增加的 NLP 業務提供服務保障。其實雲孚科技的架構我覺得非常值得參考,即使我們做的是自然語言處理的其他領域。在公司雖然只做了幾個小項目,但還是有些感觸,現在將自己的一些體驗和心得分享一下,希望能和 NLP 友們交流。

  • 分層

隨著項目的增加,慢慢會發現幾乎所有項目都會用到分詞、詞性標註、句法分析、詞向量等自然語言處理底層的東西,尤其是分詞和詞向量。一開始是把這些服務包直接 import 進來,但是當項目增加時就很浪費資源(特別是詞向量,很占內存),而且一旦某個地方有一些調整或更新,所有項目都要改。所以自然而然就想到單獨把這些常用的底層的東西做成獨立的服務,統一對外提供介面。

  • 提供服務有兩種方式,一種是作為 RESTFUL API 提供,另一種是用 RPC,這兩種方式沒有特別的好壞,經過測試 RPC 可能稍微快一點點。
  • 有個小的注意點是,傳給服務時盡量不要把請求分割的太小,尤其是詞向量。我們在請求詞向量時可以傳入一個詞的 list,返回每個詞對應的詞向量,這樣可以減少請求次數,相對的能提高速度。
  • RPC 有很多種選擇,我們最後選擇 Google 製造:grpc / grpc.io,除了那麼一點點情懷,還有懶,不想去看其他的了。
  • 服務端的語言,本來就只會 Python,不過最終選擇用 C++ 和 Cython,Python 的速度還是慢了不少。不同項目需要載入不同的模塊和自定義詞典,甚至不同的詞向量模型,這些東西最好作為參數傳遞。
  • 基準

這點雲孚科技的創始人兼 CEO 張文斌張總在分享中強調過:「建議搭建一套統一的基準平台,先給演算法和數據分別定義好統一的介面,然後就能很方便地替換成演算法或模型以及數據進行效果測試,這樣就可以快速嘗試新的演算法模型,到底在特定任務上效果怎麼樣,純粹根據效果來挑選最終適合這個任務的整體模型方案。」

我們的經驗覺得這點特別重要,因為很多時候你要實現一個效果可能會有很多種不同的方案,不同方案內部的不同部分還可以互相組合,有時候你甚至還會突發奇想改變其中的某個部分。這時候要是沒有基準就好比航海中沒有指南針一樣,你無法選擇模型,你對模型做了一些創新也不知道效果如何(效果不好的話所謂的創新也就沒有什麼意義)。恰巧前段時間聽百度 2018 AI 大會《深度學習前沿技術與工業應用公開課》分享時也提到他們內部有一套基準平台。

  • 數據

這點在薄言創始人 CTO 熊琨的分享中提到過:「公司內部要有自己的測試集和標準,對於新的方法能夠快速適應和嘗試。」其實基準的設計中就包括數據,百度的分享中提到他們用的是公開的數據集,如果你的項目恰好沒有公開能用的數據集,就只能自己構建一份。我們現在的每個項目在寫完演算法設計稿後的第一個工作就是整一份數據集出來。當然這個數據集包括了訓練數據和測試數據,有了數據之後才能對各種演算法進行試驗。

另外,數據很多時候對公司來說是至關重要的。在目前這種氛圍下,演算法基本沒有什麼特別的秘密,大家都搶著發 Paper,很多還有現成的代碼。那核心競爭力就主要體現在了數據上,你有某個領域的數據積累,別人沒有就很難進來,哪怕你的演算法模型差了點。所以,可以說數據就是最大的資產。而且,好的數據也能直接提升模型的效果。

以上就是一些關於 NLP 體系方面的思考,其實我們老闆很早之前就讓我們對 NLP 領域按模型、任務和專題梳理。專題類似於項目,可能用到多種模型和任務組合;任務主要是分詞、分類、生成等等,特別注意搜集對應的公開數據集;模型則是各種如 Ngram,DNN,RL,GAN,Seq2Seq 等經典模型。


推薦閱讀:

百步之內,必有芳草 | 酷聽科技
紅學工匠唐國明「個位區間」法對「1+1」新論最初是這樣發表的
中國現在的科技力量到底有多麼強大?
App出海,海外媒體投放平台怎麼選?

TAG:科技 | 自然語言處理 | 商業化 |