UC 國際信息流推薦中的多語言內容理解

多語言內容理解的需求和挑戰

1. 結構化是推薦的基礎

結構化是推薦的基礎,對於大多數做推薦的同學應該會比較有感受。可以把推薦系統分爲三部分:內容理解和用戶理解兩個大的離線模塊;在線的推薦業務分爲召回、排序、多樣性等,主要利用離線的 NLP 結構化信號以及離線的用戶理解信號來完成推薦的工作,本文主要介紹內容理解的部分。

對於內容理解,我們面臨的是多個國家、多種語言的新聞推薦場景:

  • 從 item 的維度,我們會做語言的識別、質量的控制、時效的控制(由於我們是新聞推薦的場景,跟商品以及其他物品的推薦不太一樣,對於時效的控制會比較嚴)。
  • 從用戶興趣的維度,我們會做分類、標籤、關鍵詞以及主題等內容信號的建設。
  • 熱點挖掘,因爲我們是新聞客戶端,所以會做多源的新聞熱點挖掘。
  • 互動評論,由於我們還有一些用戶互動的評論,所以會做評論的分析和反作弊。
  • 圖像,因爲我們的新聞是圖文並茂的,並且視頻會帶有圖像,所以在圖像這塊也會做一些圖像的表徵學習或者特徵的挖掘。
  • 銅礦,我們不同於其他新聞客戶端的一點是,我們的新聞推薦主要是在瀏覽器中,除了用戶在信息流場景下的消費行爲,還會利用到用戶在瀏覽器中的其他的一些瀏覽行爲、搜索行爲等等的一些行爲,我們把它稱之爲銅礦,來挖掘用戶相關的一些興趣。
  • 表示學習,因爲我們面臨的語言比較多,所以我們還會用表示學習的方式來做很多的工作。

2. 多語言的業務需求

UC 國際化信息流推薦面臨的多語言的業務需求:

  • 多個國家:已在印度和印尼等多個國家上線十多個語言的信息流推薦服務;
  • 多種語言:僅在印度已經涵蓋印地語、英語、泰米爾語、泰盧固語、馬拉地語、古吉拉特語等多個小語種,對 NLP 而言存在天然的多語言訴求;
  • 多種樣式:包含圖文、短視頻、小視頻、GIF 和 Memes 等多種形式的新聞推薦,除了多語言外,還提出了多模態的訴求。

3. 技術難點

由此帶來的挑戰,包括:

  • 語言多:需要覆蓋十多個小語種;
  • 任務多:基本的詞法分析,每個語言的分類、標籤等多個任務,都需要建設;
  • 樣本少:不是每個語言都有豐富的標註資源,對每個語言都需要進行標註,標註樣本成本高,建設週期長;
  • 人才少:在國內懂小語種的人比較少,算法迭代分析困難。

所以,在我們的場景下,這是一個典型的資源匱乏型 ( Low Resource ) 的 NLP 問題。

多語言內容結構化信號建設方法

1. 內容結構化的發展路徑

① 內容結構化信號

從內容結構化信號整體上來講,我們從底向上做了很多不同類型的內容結構化信號:

  • 基礎屬性:因爲我們是多語言的場景,首先要做語言識別,然後做質量的控制以及時效的判斷;
  • 顯式興趣點:從用戶顯式的興趣角度來講,我們要做文本的分類、標籤提取、關鍵詞提取;
  • 隱式興趣點:由於用戶的顯式興趣點往往受制於樣本的規模、算法的精度,所以我們還會做一些用戶隱式興趣點的挖掘,如:主題聚類、圖像聚類、用戶表徵或者基於表示學習的隱式興趣挖掘。

② 基礎詞法分析——去語言化

因爲我們面臨了10多種語言,多種不同的任務,對後續的算法,如:分類、標籤,以及下游的推薦和用戶畫像來講,我們期望儘量把語言相關的東西在 NLP 中解決,下游的一系列任務可以去語言化,算法能夠通用。所以,我們儘量在基礎的詞法分析階段就把語言的鴻溝消除掉。

我們面臨的難點是覆蓋語言種類比較多,標註標準比較多。所以我們儘量採用的是 Google 開源的 Universal Dependency 數據庫,它覆蓋了70多種語言,100多個 Treebank。我們期望在所有的語言和任務上採用同樣的標準,在詞法分析階段都處理成標準的 schema 以後,下游即使寫規則,也不需要換標籤集。我們在開源工具的基礎上,做了一系列的迭代工作,覆蓋了10多種語言的詞法分析。

③ 實體識別

我們會做多語言的實體識別,主要利用的是 Wikidata 多語言知識圖譜,來挖掘高質量的詞典,同時使用半監督或者數據增強的方式標註一部分資源,然後還有一部分人工校對的工作在裏面。用的算法和中英文上的並沒有太大的區別,主要是 LSTM + CRF 序列標註算法。但是我們在資源方面投入了很大的精力,以數據增強爲例,我們可以從學術圈或者公開數據集上拿到很多各個語言的 NER 標註語料,結合我們挖掘出來的多語言的知識圖譜,可以直接做數據增強的一些辦法(在圖片和視覺方面,做數據增強可能很容易,但是在 NLP 角度做數據增強並不是很容易)。比如“巴黎是法國的首都”,如果把“巴黎”換成“倫敦”對於人來說是不可理解的,是錯的,但是對於機器訓練 NER 來說這是沒有問題的,所以我們會用規則或者知識圖譜來限制這種數據增強的規模,取得了比較明顯的效果。

④ 多語言分類發展階段

我們在多種語言上都經歷了這樣的分類發展階段:

  • 起步:我們剛開始做國際化的時候,在做分類時完全沒有標註語料,我主要是通過種子源、種子詞,人工總結一些規則或者綁定(一些成熟的站點,我們會進行綁定)。
  • 發展:到了發展階段,我們累積了一些樣本,會去做遷移學習,包括樣本的遷移和特徵的遷移。
  • 深入:從去年開始,包括 ELMo、BERT、GPT 等(先做預訓練,再做後面的一些遷移學習)在 NLP 中成爲了一個基本範式,在這個階段,我們開始做多語言的表示和小樣本的學習,能夠提升分類的精度。

簡單舉幾個例子:

  • 基於翻譯模型的分類樣本遷移

我們所有的分類都是多種策略並行的系統,沒有一個語言是單純的系統或者策略。最開始我們在英文、Hindi、Indo 上投入了很多資源,所以結構化的信號建設基本成熟,因爲在後面開展一些小語種的時候,會採用多種的辦法做樣本遷移和特徵的遷移。

比如樣本遷移,我們會採用圖中的辦法:把小語種翻譯爲三個大語種,用大語種的 model 做分類。

  • 基於詞向量對齊的分類特徵遷移

這是 Facebook 提出的多源詞向量對齊的辦法 MUSE,MUSE 的基本思想是用單語言的訓練語料去訓練每一個單語種的詞向量,然後再加上一個雙語詞典,可以把不同語言的詞向量映射到同一個空間,他們的目標是映射到同一個空間時,表示相同語義的詞距離更近。這種方法在一些有共性的語言上,比如印尼語和英語,效果會比較好,但是在語言差異較大時,效果會弱一點,整體上這種方法還是給我們帶來了很多可選的樣本。

去年 Facebook 又提出了基於句向量對齊的 LASER,由於需要雙語機器翻譯的語料,應用起來的話限制條件會比較多。

  • 基於 BERT 的遷移文本分類

從去年開始,先用大規模的單一語料做 PreTraining,使用 ELMo、GPT 或者 BERT,得到一個單語的文本表示,後面再接一些你自己的任務做 Adaption,已經成了 NLP 的一個基本範式。我們也在很多的任務(如:分類和標籤)中採用這種辦法,其優點是對標註樣本數量要求低,在一些小樣本上就可以得到很好的效果,但是也存在着缺點就是速度相對較慢,資源消耗比較高,因爲我們的語種比較多,所以還會做一些半監督和知識蒸餾相關的一些探索性工作。

⑤ 語義標籤

除了分類以外,我們還會做標籤,我們的總體思想是一樣的,先基於專家經驗去累積樣本,累積一定樣本之後會做一些大規模的有監督學習模型。

  • 弱樣本依賴模型

舉個簡單例子,我們如何做弱樣本的依賴模型,它的特點是零樣本。如果定義一些語義標籤之後,通過 word embedding 先相關很相似的詞,然後把這些詞做聚類,聚類以後才作爲一個語義標籤簇的表達,之後直接和 doc 的 embedding 做相似性計算,我們就可以不需要訓練樣本,完全單語的語料就可以給文章打標籤,這種方法對粗粒度的標籤效果還可以,但是對細粒度的效果還不行,只能保證一些比較粗的標籤的召回,提供一些基礎的樣本,供後續的人或者算法做二次校驗。

  • 大樣本監督模型 ML-DNN

通過各種策略挖掘和人工總結大量樣本之後,我們可以使用一些大樣本的有監督模型,我們的做法比較簡單:參照 Fasttext 模型,用 word2vect 初始化詞向量,用平均詞向量表徵 doc 向量,輸出多標籤概率,就是把剛剛的做法直接遷到有監督的框架下。它的優勢是模型比較簡單,結合之前做的一些工作,可以快速的覆蓋頭部的語義標籤。

2. 內容質量模型

剛剛講的是分類和標籤,這種結構化的信號,我們再來講下內容質量:

因爲質量是新聞推薦的一個基本紅線,在國內可能體會更深,像今日頭條、快手等有段時間就因爲一些質量的問題被下架了,我們在國際化時,也會遇到這樣的問題。

我們的質量模型,基本還是一個人機結合的框架。主要通過一些低質的規則,能夠把一些高危的 item 直接檢測出來,直接幹掉;我們還有一個質量的分級模型,會從多個維度做多個子模型,然後再有一個大的模型來融合這些子模型,質量平臺輸出的一些不太確認的結果會送到人工審覈平臺去審覈,人工審覈平臺審覈後的結果又會返回到質量模型做 training。在這個過程中,整個框架是去語言化的,我們輸入的是 NLP 基礎結構化的信號(類別、語言、分詞、POS 等),後面的算法不會對語言做特殊的處理。

對於質量規則,我們的準確率會比較高,召回低一點,主要是爲了保證檢測出絕對低質的東西。

對於質量模型,我們主要分爲5擋,然後做多維度子模型的融合。

3. 圖像信息的應用

剛剛講的都是一些用戶顯式的結構化信號,比如語言、分類、標籤等人可理解的一些顯式信號,顯式信號在不同語言的發展進度和階段是不一樣的,爲了讓一些小語種追趕上大語種的節奏,我們還會做一些不依賴於 NLP 基礎建設的一些用戶顯式的興趣挖掘,就是內容結構化上的一些隱式的信號。比如圖像方面的一些工作:因爲語言在不同國家不同語種上會有資源的問題,對於圖像,除了上面的一些文本,其它方面是沒有太大語言鴻溝的,所以我們會做一些圖像方面的工作,比如圖像聚類。

具體的做法是:基於開源圖像表徵模型 ResNet 和 VGG 抽取圖像表徵,使用 K-means 聚類選取適當合適的聚類簇固定下來,然後對於新入庫圖像基於固定下來的簇進行打標。這樣會得到什麼結果呢?

這是從我們庫中找的一些樣本,對印度的一些封面圖做了一些基於這樣表示的聚類,最左邊是聚類的編號,從這些樣本中可以看到一些共性,比如第23個 topic 都是關於狗的,24基本都是錢等等,我們可以直接把這些信號用到 rank 或者召回中,比如印度人比較喜歡的我們的一個場景叫 Memes ( 用戶發一張圖,上面會加一些文字,其它的什麼都沒有 ),這時用圖像信息做召回效果會比較好。我們通過這種隱式的聚類的編號,跟分類的一些信號做交叉 mapping,發現這裏很多類別直接可以對到二級分類,並且準確度高,這樣就可以快速的建立很多分類的樣本。

4. 表示學習在內容理解和用戶理解中的應用

剛剛講的都是內容理解方面的內容,接下來簡單介紹下用戶表示。我們在做內容結構化信號時,用戶顯式可以理解的信號,在不同的語種上,特別是小語種上,我們的迭代速度以及精度跟不上推薦的訴求,這時我們需要用一些隱式的信號,提升推薦的效果。我們的想法是基於預訓練在具體任務做 fine-tuning 這種範式已經在 NLP 和圖像領域驗證過了,所以我們在推薦領域做了這樣的嘗試:

我們利用用戶的消費數據直接建立雙塔,類似於 CTR 預估,一邊是 user,一邊是 item,item 直接用 BERT 的 embedding 作爲初始輸入,然後兩邊做雙塔結構,這樣做的好處是可以引用更多的用戶在其他場景下的一些行爲,比如用戶在瀏覽器中的一些搜索 query,這時再離線做雙塔,user 側一直往上走,然後 item 側一直往上走,最後分別得到 user 和 item 的隱含表達,然後再做相似度計算,預估 ctr,但是這不是我們的目的,我們的目的是直接用 user 的表達給下游用。這樣在一些稀疏的場景效果提升明顯,比如 Push。

總結

簡單總結下本次分享的內容:

  • 多語言內容理解業務需求廣,單一語言的經驗不可完全複用,所以我們要去語言化,在基本的詞法分析階段把語言處理成標準的 schema,除了樣本之外,期望後面所有的算法都跟語言沒有太大的關聯;
  • 遷移學習是我們解決多語言內容理解問題的核心抓手,因爲我們天然的會遇到樣本和特徵的問題,所以我們會做樣本和特徵等的遷移;
  • 表示學習特別是基於預訓練的表示學習爲遷移學習,特別是我們的推薦場景,帶來了新的無限可能,我們在 NLP 的基礎結構化信號中有一些成功的應用,並且在用戶表示上也有一些成功的範式。

作者介紹

汪昆

阿里巴巴 | 算法專家

本文來自 DataFun 社區

原文鏈接

https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247494295&idx=1&sn=1218bfa026994967939fa676ed7dd5f9&chksm=fbd758fbcca0d1ede59b225e98add36cae74e9fd3006d42a054c73aaa4a87c75ef46684b9733&scene=27#wechat_redirect

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