阿里可解釋性推薦演算法應用

ITPUB社群發表於2023-03-07


導讀 本次分享主要介紹阿里健康在可解釋推薦演算法方向上的探索、應用。

本次分享主要分為四個模組:

1. 推薦業務簡介

2. 基礎資料準備

3. 可解釋性推薦模型

4. 實驗效果分享

分享嘉賓|韓星 阿里健康 演算法工程師

編輯整理|dx NLP

出品社群|DataFun


01

推薦業務簡介

首先介紹一下阿里健康的業務背景和對現狀的分析。
1. 推薦場景展示
可解釋性推薦,舉例而言,如下圖中噹噹網“根據您瀏覽的商品推薦”(告訴使用者推薦的理由)及淘寶網“1000+居家控收藏”、“2000+數碼達人加購”均屬於可解釋性推薦,透過提供使用者資訊來說明推薦商品的原因。

阿里可解釋性推薦演算法應用

左圖中的可解釋推薦,有一種較為簡單的實現思路:推薦主要包含召回排序兩大主要模組,且召回往往涉及到多路召回,使用者行為召回也是常見的一種召回方式。可對經過排序模組後的商品進行判定,若商品來源於使用者行為召回池,則可在推薦的商品後新增相應的推薦註釋。但該方法往往準確率精度不高,並未給使用者提供較多有效資訊。
相比而言,右圖示例中可由對應的解釋性文字提供給使用者更多的資訊,如產品類別資訊等,但該方法往往需要較多的人工干預,在特徵到文字輸出環節進行人工處理。
而對於阿里健康,由於行業的特殊性,相比於其它場景,可能存在更多的限制。相關條例規定“三品一械”(藥品、保健食品、特殊醫藥用途配方食品和醫療器械)廣告中不允許出現“熱銷、排序、推薦”等文字資訊。因此阿里健康需在遵從上述條例的前提下,結合阿里健康的業務對產品進行推薦。
2. 阿里健康的業務情況
阿里健康現有阿里健康自營店鋪和阿里健康行業店鋪兩類店鋪。其中自營店鋪主要含有大藥房、海外店和醫藥旗艦店,而阿里健康行業店鋪主要涉及到各品類旗艦店及私營店鋪。
就產品而言,阿里健康主要涵蓋常規商品、OTC 商品、處方藥三大類產品。常規商品,即定義為不是藥品的商品,對於常規商品的推薦,可展示較多資訊,如品類銷量 top,超過 n+人收藏/購買等資訊。而對於 OTC 及處方藥這類藥品商品的推薦,則受到相應條例的約束,需更加結合使用者關注點進行推薦,如功能主治、用藥週期、使用禁忌等資訊。
上述提到的可用於藥品推薦文字的資訊主要有以下幾大來源:
  • 商品評論(不含處方藥)。
  • 商品詳情頁。
  • 說明書等資訊。
02
基礎資料準備
第二部分主要介紹商品的特徵是如何提取及編碼的
1. 商品的特徵抽取
下面以藿香正氣水為例,展示如何從上述資料來源進行關鍵特徵的提取:
阿里可解釋性推薦演算法應用
  • 標題
商家為增大產品的召回,往往會在標題中加入較多的關鍵詞,因此可透過商家自帶的標題描述進行關鍵詞的抽取。
  • 產品詳情圖
可借用 OCR 技術基於商品的詳情圖中提取到商品的功能主治、核心賣點等更為全面的商品資訊。
  • 使用者評論資料
透過使用者基於某功能情感的得分,可對商品的對應關鍵詞進行加權減權操作。如對於“防中暑”的藿香正氣水而言,可透過使用者評論中“防中暑”情感的打分,對其相應的標籤進行對應的權重處理。
  • 藥品說明書
透過上述多種資料來源,可抽取出資訊中的關鍵詞並構建關鍵詞庫。由於抽取出來的關鍵詞存在較多重複、同義的情況,需對同義詞進行合併,並結合人工校驗,生成標準詞庫。最終可形成單個商品-標籤列表的關係,可用於後續編碼及在模型中的使用。
2. 特徵編碼
下面介紹如何對特徵進行編碼。特徵編碼主要基於 word2vec 的方式進行 word embedding。
真實的歷史購買商品對資料可分為下述三大類:
(1)共同瀏覽商品對使用者在一段時間(30 min)內依次點選的使用者定義為共同瀏覽資料。
(2)共同購買商品對共同購買廣義而言,可定義為同一主訂單下子訂單間互夠為共同購買商品對;但考慮到實際使用者下單習慣,定義一定時間(10 min)內同一使用者的下單產品資料。
(3)瀏覽後購買商品對:同一使用者在點選 A 後又購買了 B 產品,A 與 B 互為瀏覽後購買資料。
透過對歷史資料進行分析,發現瀏覽後購買資料對商品間相似度較高:往往藥品核心功能相似,僅存在輕微不同,可將其定義為相似產品對,即為正樣本。

阿里可解釋性推薦演算法應用

特徵編碼模型仍基於 word2vec 的思想:主要是希望具有相似的產品/標籤間 embedding 更加接近。因此 word embedding 中正樣本定義為上述提到的瀏覽後購買商品對;負樣本則為共同瀏覽商品對和共同購買商品對的並集減去瀏覽後購買的商品對資料。
基於上述正負樣本對的定義,利用 hinge loss,可以學習每個商品的 embedding 用於 i2i 召回階段,也可同本場景中學習出標籤/關鍵詞的 embedding,用作後續模型的輸入。
上述方法有兩個優點:
(1)特徵僅用到產品特性,能在一定程度上解決冷啟動問題對於新上架的商品,仍可透過其標題、商品詳情圖等資訊獲取相應標籤;
(2)正、負樣本的定義可用於不同的推薦場景如若將正樣本定義為共同購買產品對,則訓練出來的商品 embedding 可用於“搭配購買推薦”場景。
03
可解釋推薦模型
1. 可解釋模型背景介紹
業界現有較為成熟的可解釋型別主要包含內建可解釋性( model-intrinsic )和模型無關可解釋性( model-agnostic )兩大類。
其中內建可解釋性模型,如常見的 XGBoost 等,但 XGBoost 雖為端到端模型,但其特徵重要度是基於整體資料集而言,不符合“千人千面”的個性化推薦要求。
模型無關可解釋性主要是指重建邏輯模擬模型,並對模型進行解釋,如 SHAP,其可對單個 case 進行分析,可判定出預測值與實際值不同的原因。但 SHAP 複雜度較高,較為耗時,經過效能改造後無法滿足線上效能需求。
因此需構建一個端到端,且能對每個樣本進行特徵重要度輸出的模型。

阿里可解釋性推薦演算法應用

高斯混合分佈是多個高斯分佈的組合,可輸出某個分佈的結果值每個樣本結果屬於某個分佈的機率。因此可進行類比,將歸類後的特徵理解為具有不同的分佈的資料,分別對對應特徵的預測結果 阿里可解釋性推薦演算法應用 及該預測在實際結果中的重要程度 阿里可解釋性推薦演算法應用 進行建模。
2. 模型結構圖
下圖為整體的模型結構圖,左圖為選擇模型,可用作特徵重要度的展示,右圖為特徵對應的預測模型。

阿里可解釋性推薦演算法應用

具體而言,預測模型用於預測對應特徵預測/點選的機率,而選擇模型則用於說明哪些特徵分佈是比較重要、可用於作為解釋性文字的展示。
3. 預測模型
下圖為預測模型的結果圖,預測模型主要借鑑了 DeepFM 的思想,包含一個深度模型和交叉模型。深度模型主要用於學習特徵的深層表達,而交叉模型則用於學習交叉特徵。

阿里可解釋性推薦演算法應用

深度模型中,先提前對特徵進行分組(假設共有 N 組),如對價格、類別等相關的特徵合併為價格、類別大類(圖中 field 欄位),並對每一組特徵進行單獨的模型訓練,並得到基於該組特徵的模型結果。
對模型提前進行合併分組,具有下述兩個優點:
(1)透過 N 個模型的獨立訓練,可透過輸入特徵的增減改變模型的複雜度,從而影響線上效能。
(2)對特徵的合併分組可明顯減少特徵量級,從而使人工將特徵域轉化為文字時更加方便。
值得一提的是,attention 層理論上也可用於特徵重要度的分析,但在本模型中未引入attention 的原因主要如下:
(1)若將 attention layer 放在太靠前位置則無法體現出特徵深層表達的結果
(2)若將 attention layer 放在較為靠後的位置,則無法回溯、無法找出核心特徵
而對於預測模型

阿里可解釋性推薦演算法應用

其交叉層並未沿用 FM 模型而是採用 CNN 代替 DeepFM 中 FM 結構。FM 模型學習特徵兩兩交叉結果,並透過數學公式直接計算兩兩交叉結果,避免計算時的維度爆炸,但其導致無法回溯特徵重要度,因此在交叉模型中引入 CNN 替代原有結構:採用 N 個特徵進行相乘以實現特徵交叉,再進行 CNN 的相應操作。這樣使得特徵值在輸入後經過 pooling,concat 等操作後,仍可回溯。
除上述優點外,該方法還有一個優點:雖然現有版本僅是單個特徵到單個描述文字的轉化,但仍希望未來能實現多特徵互動的轉化。舉例而言,如果某使用者習慣購買100元低價產品,但若有原價50,000元商品打折至500出售,而使用者購買了該商品,模型可能因此將其定義為高消費使用者。但實際中,可能是因為高階品牌+高折扣雙重因素導致的使用者下單,因此需考慮組合邏輯。而對於 CNN-FM 模型而言,後期可直接利用 feature map 進行特徵組合的輸出。
4. 選擇模型

阿里可解釋性推薦演算法應用

選擇模型由 MLP 和 sparseMax 組成。值得一提的是,選擇模型中啟用函式採用的是 sparsemax 而不是更為常見的的 softmax。影像右邊依次是 sparsemax 的函式定義softmax 與 sparsemax 的函式對比圖。
從右下的圖中可看出,softmax 對重要度較低的輸出節點仍會賦予較小值,在該場景下會導致特徵維度爆炸,且容易造成重要特徵與不重要特徵間的輸出沒有區分度。而 sparseMax 可以將輸出離散化,最終僅輸出較為重要的特徵。
04
實驗效果展示
1. 實驗資料說明
線上效果資料主要來自於大藥房首頁曝光-點選資料,為避免過擬合,也引入了部分其他場景曝光-點選資料,資料比例為 4:1。
2. 離線指標
在離線場景下,該模型 AUC 為0.74。
3. 線上指標
由於線上場景已有 CTR 模型,考慮新版演算法除更換模型外,還會展示對應的解釋性文字,未控制變數,因此本次實驗並未直接採用 AB test。而是當且僅當線上 CTR 模型及新版演算法預測值均高於特定閾值時,才會展示推薦理由的文字。上線後,新版演算法 PCTR 提升 9.13%,UCTR 提升 3.4%。

05

問答環節

Q1:生成標準詞庫、同義詞合併採用什麼模型?效果如何?還需要多少人工校準工作?

A1:同義詞合併時會利用模型學習文字標準,並提供出基礎詞庫。但實際上人工校驗的比重較大。因為健康/藥品的業務場景,對演算法準確度的要求較高,可能個別字的偏差會造成實際意義的較大偏離。整體而言人工校驗的比重會比演算法大。
Q2:LIME 模型可以用作推薦模型的解釋嗎?
A2:可以。還有很多其他模型可以做可解釋推薦。因為分享者對 GMM 整體熟悉度高,所以選擇上述模型。
Q3:選擇模型和預測模型怎麼聯動的?
A3:假設有 N 組特徵組,預測模型、選擇模型均會會生成 1*N 維的向量,最終將預測模型和選擇模型的結果進行相乘(multiple),實現聯動。
Q4:可解釋文字如何生成?
A4:目前還沒有合適的機器學習模型進行文字生成,主要還是採用基於人工的方式。如價格是使用者關心的核心特徵,則會選擇對歷史資料進行分析,推薦出價效比較高的產品。但目前而言,主要還是人工操作。希望未來能有合適的模型進行文字生成,但考慮到業務場景的特殊性,模型生成的文字仍需要人工進行校驗。
Q5:模型的篩選邏輯?
A5:對於 GMM 中子分佈的選擇,主要透過 GMM 中 Mk 對分佈進行學習,並基於 Mk 的高低值進行篩選。
Q6:詞庫的標註有屬性型別嗎?
A6:對加屬性詞,如對產品描述中的疾病、功能、使用禁忌等進行達標。
Q7:可解釋文字可否使用槽位填充的思想?即準備不同模板,根據詞語的權重選擇不同模板?
A7:可以,現在的實際用法即為槽位填充。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024420/viewspace-2938395/,如需轉載,請註明出處,否則將追究法律責任。

相關文章