天天看點

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

特邀嘉賓:

徐光偉(昆卡)--阿裡巴巴算法專家

視訊位址:

https://yqh.aliyun.com/live/opensearch

搜尋NLP算法

搜尋鍊路

這是一個完整的從查詢詞到搜尋結果的鍊路, 其中NLP算法發揮作用的地方主要在第二階段的查詢分析,該階段包含多個NLP 算法子產品,如文本側的分詞、糾錯、實體識别、詞權重、同義詞以及語義向量等。系統是結合文本和語義向量多路召回排序的架構,進而滿足不同業務場景的搜尋效果需求。當然除了查詢分析,在第一階段的搜尋引導以及第四階段的排序服務中也有很多NLP 算法的應用。

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

查詢分析

NLP 算法主要在這裡的幾個子子產品發揮作用:

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制
  • 分詞,精準的分詞可以提高檢索效率,也會讓召回結果更加精準,
  • 拼寫糾錯,對使用者輸入的query中出現拼拼寫錯誤可以自動去糾錯,提高搜尋的體驗。
  • 實體識别,可以對query 中的每個詞打上對應的實體标簽,進而為後續的query改寫和排序提供關鍵的特征。
  • 詞權重模型,會對每個詞打上高、中、低的檔位,在查詢結果時去做丢詞的重查。
  • 同義詞,擴充出相同意思的詞來擴大召回範圍。
  • 最後是經過完整的查詢分析子產品之後的一個整體的query改寫,将使用者輸入的query轉換成我們搜尋引擎能識别到的查詢串。

現在開放搜尋不僅支援了阿裡自研的搜尋引擎,也對開源的ES引擎做了相容,可以讓使用者更友善的使用到我們的算法能力。

行業模型

客戶痛點

1.通用模型領域适配難

  • 通用模型主要解決新聞資訊行業問題;
  • 在具體行業上效果會大打折扣;

例如:通用領域和電商領域的模型的差別

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

2.公開行業模型少

  • 雲服務産商基本隻提供通用模型
  • 公開行業資料集也主要覆寫通用領域
搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

解決難度

建構一個行業搜尋NLP 模型的流程:

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制
  1. 首先是标注資料集這一步對于行業知識的要求非常高,同時對于資料量的要求也需要達到萬級别,标注這樣的資料同時也需要數個月的時間。
  2. 接着是模型訓練,這一步是需要有專業的算法人員,如果不是對算法不熟悉的話,模型的疊代效率會很低
  3. 最後是模型上線這一步需要工程人員去部署運維,如果涉及到深度模型的一些上線,還會有很多效率優化的工作需要去做。在資料集标注階段其實就已經存在了很多的挑戰。

分詞标注難點

1.領域知識要求高

例如:

  • 藥物的名稱:利多卡因氯己定氣霧劑 | 利多卡因 氯己定 氣霧劑
  • 位址:南召縣四棵樹鄉王營村 | 南召 縣 四棵樹 鄉 王營 村

2.交叉歧義判斷難

  • 洗衣服粉 | 洗衣 服 粉

實體識别标注難點

  • 澳洲愛他美(母嬰品牌)金裝一段、科比(球鞋系列)4
  • pytorch實作GAN(算法模型)

解決方法

開放搜尋基于阿裡巴巴内部搜尋的資料積累,結合自動化資料挖掘和自研的算法模型,對行業模型的建構鍊路做了一個改造。

同樣是以分詞和NER為例,下面模型圖是分詞的流程。我們首先通過自動的新詞發現算法去挖掘目标領域的領域新詞,得到這些新詞之後,我們會在目标領域上去建構一個遠端監督的訓練資料。

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

基于這樣的遠端監督訓練資料,我們提出了一個對抗學習網絡的結構模型,結構可以達到降噪的效果,進而去年得到一個我們目标領域的領域模型。

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

下面的模型圖是NER的流程,我們采用了結合圖神經網絡的graph NER的模型結構,它可以融合知識庫和标注資料。 知識庫是由剛才分詞的鍊路中新詞發現子產品自動挖掘出的新詞,然後我們做一個自動的實體詞打标,進而去建構出領域的知識庫。對應的技術論文我們都已經發表在NLP 領域頂會ACL上。

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

小結一下,通過上面提到的技術方案,以電商行業為例,看一下開放搜尋行業模型上達到的效果。

可以看到開放搜尋的電商行業增強版都明顯比通用版效果會好很多。

這套方案不僅僅适用于電商行業,隻要是有資料積累的行業,都可以快速建構出一套行業模型。

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

開放搜尋輕量化客戶定制

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

首先可以看到通用模型直接使用大概能達到一個60分的效果。

剛剛提到的行業模型,适用能力可以達到80分的效果。

但具體到每個客戶又存在細分領域的定制問題。 一般客戶的目标可能是要達到90分。

比如下面的兩個例子:

  1. 左邊的這個“萬斯汽水系列”,這其實是一個球鞋的一個具體的品牌和系列名稱, 雖然開放搜尋電商模型已經可以把品牌和普通詞識别正确,但是對于汽水這個具體的細分的系列并沒有正确的識别好。
  2. 下面右邊的這個例子是“漢本萃葆蔚飲品”。這裡開放搜尋的電商模型完全沒有識别出其中特有的品牌和它的子系列,客戶在我們提供的行業模型基礎上如果去做自主的定制優化一樣會遇到上面介紹行業模型解決方案時的那些問題,進而最終很難去突破85分,
搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制
搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

我們的目标是減少客戶的标注成本,完全無标注或者少量簡單的标注,讓客戶的定制會更加易用,進而直接達到一個85分的效果。

解決思路

整體的流程和行業模型建構鍊路類似,要把這些能力産品工具化讓客戶可以自主參與調優。

  1. 建立訓練模型

下圖是我們做的一個工具demo,上面是創模型,建立部分客戶可以選擇基礎的行業模型,然後上傳自己的領域無标注的資料就可以自動的開始模型的訓練。

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

2.效果評估

下面是模型訓練之後客戶可以在我們的系統上面去做一個直覺的效果評估,可以看到這裡會列出基礎的模型和以及自動訓練之後的模型的效果的變化,客戶也可以去做少量的人工标注來驗證模型的效果。

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

這個鍊路目前已經在阿裡内部使用,近期還會在開放搜尋的産品上透出給到客戶,原來我們去做一個輕量化的客戶定制達到上述效果可能需要一到兩個月的時間,還需要去标注1萬句以上的這些标注資料。現在的話基于這套方案隻需要一周的時間,完全無标注或者隻需要去标注1000個此以内的标注資料就可以達到這樣的效果。

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

輕量化定制效果展示

我們的工具可以自動發現出場景中的這些新詞,并對這些新詞做實體标簽的預測,可以看到括号中的這些新詞是在不同的上下文中預測出的,标簽的一個分布進而指導我們去判斷這個新詞它是否是一個合法的新詞,以及它屬于的實體标簽到底是什麼,為我們的模型去提供最關鍵的資訊。

位址場景

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

電商場景

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

>>如果有搜尋效果深度優化需求,可以填寫專家咨詢問卷,參與試用即可免費獲得開放搜尋通用分詞能力。問卷位址:

https://c.tb.cn/F3.05Srxl

如果你想與更多開發者們進行交流、了解最前沿的搜尋與推薦技術,可以釘釘掃碼加入社群

搜尋NLP行業模型和輕量化客戶定制搜尋NLP算法行業模型開放搜尋輕量化客戶定制

繼續閱讀