阿里可解釋性推薦算法應(yīng)用
一、推薦業(yè)務(wù)簡介
首先介紹一下阿里健康的業(yè)務(wù)背景和對(duì)現(xiàn)狀的分析。
1、推薦場(chǎng)景展示
可解釋性推薦,舉例而言,如下圖中當(dāng)當(dāng)網(wǎng)“根據(jù)您瀏覽的商品推薦”(告訴用戶推薦的理由)及淘寶網(wǎng)“1000+居家控收藏”、“2000+數(shù)碼達(dá)人加購”均屬于可解釋性推薦,通過提供用戶信息來說明推薦商品的原因。
?左圖中的可解釋推薦,有一種較為簡單的實(shí)現(xiàn)思路:推薦主要包含召回和排序兩大主要模塊,且召回往往涉及到多路召回,用戶行為召回也是常見的一種召回方式。可對(duì)經(jīng)過排序模塊后的商品進(jìn)行判定,若商品來源于用戶行為召回池,則可在推薦的商品后添加相應(yīng)的推薦注釋。但該方法往往準(zhǔn)確率精度不高,并未給用戶提供較多有效信息。
相比而言,右圖示例中可由對(duì)應(yīng)的解釋性文字提供給用戶更多的信息,如產(chǎn)品類別信息等,但該方法往往需要較多的人工干預(yù),在特征到文本輸出環(huán)節(jié)進(jìn)行人工處理。
而對(duì)于阿里健康,由于行業(yè)的特殊性,相比于其它場(chǎng)景,可能存在更多的限制。相關(guān)條例規(guī)定“三品一械”(藥品、保健食品、特殊醫(yī)藥用途配方食品和醫(yī)療器械)廣告中不允許出現(xiàn)“熱銷、排序、推薦”等文本信息。因此阿里健康需在遵從上述條例的前提下,結(jié)合阿里健康的業(yè)務(wù)對(duì)產(chǎn)品進(jìn)行推薦。?
2、阿里健康的業(yè)務(wù)情況
阿里健康現(xiàn)有阿里健康自營店鋪和阿里健康行業(yè)店鋪兩類店鋪。其中自營店鋪主要含有大藥房、海外店和醫(yī)藥旗艦店,而阿里健康行業(yè)店鋪主要涉及到各品類旗艦店及私營店鋪。
就產(chǎn)品而言,阿里健康主要涵蓋常規(guī)商品、OTC 商品、處方藥三大類產(chǎn)品。常規(guī)商品,即定義為不是藥品的商品,對(duì)于常規(guī)商品的推薦,可展示較多信息,如品類銷量 top,超過 n+人收藏/購買等信息。而對(duì)于 OTC 及處方藥這類藥品商品的推薦,則受到相應(yīng)條例的約束,需更加結(jié)合用戶關(guān)注點(diǎn)進(jìn)行推薦,如功能主治、用藥周期、使用禁忌等信息。
上述提到的可用于藥品推薦文字的信息主要有以下幾大來源:
- 商品評(píng)論(不含處方藥)。
- 商品詳情頁。
- 說明書等信息。
二、基礎(chǔ)數(shù)據(jù)準(zhǔn)備
第二部分主要介紹商品的特征是如何提取及編碼的。
1、商品的特征抽取
下面以藿香正氣水為例,展示如何從上述數(shù)據(jù)源進(jìn)行關(guān)鍵特征的提?。?/span>
- 標(biāo)題
商家為增大產(chǎn)品的召回,往往會(huì)在標(biāo)題中加入較多的關(guān)鍵詞,因此可通過商家自帶的標(biāo)題描述進(jìn)行關(guān)鍵詞的抽取。
- 產(chǎn)品詳情圖
?可借用 OCR 技術(shù)基于商品的詳情圖中提取到商品的功能主治、核心賣點(diǎn)等更為全面的商品信息。
- 用戶評(píng)論數(shù)據(jù)
通過用戶基于某功能情感的得分,可對(duì)商品的對(duì)應(yīng)關(guān)鍵詞進(jìn)行加權(quán)減權(quán)操作。如對(duì)于“防中暑”的藿香正氣水而言,可通過用戶評(píng)論中“防中暑”情感的打分,對(duì)其相應(yīng)的標(biāo)簽進(jìn)行對(duì)應(yīng)的權(quán)重處理。
- 藥品說明書
通過上述多種數(shù)據(jù)來源,可抽取出信息中的關(guān)鍵詞并構(gòu)建關(guān)鍵詞庫。由于抽取出來的關(guān)鍵詞存在較多重復(fù)、同義的情況,需對(duì)同義詞進(jìn)行合并,并結(jié)合人工校驗(yàn),生成標(biāo)準(zhǔn)詞庫。最終可形成單個(gè)商品-標(biāo)簽列表的關(guān)系,可用于后續(xù)編碼及在模型中的使用。
2、特征編碼
下面介紹如何對(duì)特征進(jìn)行編碼。特征編碼主要基于 word2vec 的方式進(jìn)行 word embedding。
真實(shí)的歷史購買商品對(duì)數(shù)據(jù)可分為下述三大類:
(1)共同瀏覽商品對(duì):用戶在一段時(shí)間(30 min)內(nèi)依次點(diǎn)擊的用戶定義為共同瀏覽數(shù)據(jù)。
(2)共同購買商品對(duì):共同購買廣義而言,可定義為同一主訂單下子訂單間互夠?yàn)楣餐徺I商品對(duì);但考慮到實(shí)際用戶下單習(xí)慣,定義一定時(shí)間(10 min)內(nèi)同一用戶的下單產(chǎn)品數(shù)據(jù)。
(3)瀏覽后購買商品對(duì):同一用戶在點(diǎn)擊 A 后又購買了 B 產(chǎn)品,A 與 B 互為瀏覽后購買數(shù)據(jù)。
通過對(duì)歷史數(shù)據(jù)進(jìn)行分析,發(fā)現(xiàn)瀏覽后購買數(shù)據(jù)對(duì)商品間相似度較高:往往藥品核心功能相似,僅存在輕微不同,可將其定義為相似產(chǎn)品對(duì),即為正樣本。
?特征編碼模型仍基于 word2vec 的思想:主要是希望具有相似的產(chǎn)品/標(biāo)簽間 embedding 更加接近。因此 word embedding 中正樣本定義為上述提到的瀏覽后購買商品對(duì);負(fù)樣本則為共同瀏覽商品對(duì)和共同購買商品對(duì)的并集減去瀏覽后購買的商品對(duì)數(shù)據(jù)。
基于上述正負(fù)樣本對(duì)的定義,利用 hinge loss,可以學(xué)習(xí)每個(gè)商品的 embedding 用于 i2i 召回階段,也可同本場(chǎng)景中學(xué)習(xí)出標(biāo)簽/關(guān)鍵詞的 embedding,用作后續(xù)模型的輸入。?
上述方法有兩個(gè)優(yōu)點(diǎn):
?(1)特征僅用到產(chǎn)品特性,能在一定程度上解決冷啟動(dòng)問題:對(duì)于新上架的商品,仍可通過其標(biāo)題、商品詳情圖等信息獲取相應(yīng)標(biāo)簽。
(2)正、負(fù)樣本的定義可用于不同的推薦場(chǎng)景:如若將正樣本定義為共同購買產(chǎn)品對(duì),則訓(xùn)練出來的商品 embedding 可用于“搭配購買推薦”場(chǎng)景。?
三、可解釋推薦模型
1、可解釋模型背景介紹
?業(yè)界現(xiàn)有較為成熟的可解釋類型主要包含內(nèi)置可解釋性( model-intrinsic )和模型無關(guān)可解釋性( model-agnostic )兩大類。
其中內(nèi)置可解釋性模型,如常見的 XGBoost 等,但 XGBoost 雖為端到端模型,但其特征重要度是基于整體數(shù)據(jù)集而言,不符合“千人千面”的個(gè)性化推薦要求。
而模型無關(guān)可解釋性主要是指重建邏輯模擬模型,并對(duì)模型進(jìn)行解釋,如 SHAP,其可對(duì)單個(gè) case 進(jìn)行分析,可判定出預(yù)測(cè)值與實(shí)際值不同的原因。但 SHAP 復(fù)雜度較高,較為耗時(shí),經(jīng)過性能改造后無法滿足線上性能需求。
因此需構(gòu)建一個(gè)端到端,且能對(duì)每個(gè)樣本進(jìn)行特征重要度輸出的模型。?
而高斯混合分布是多個(gè)高斯分布的組合,可輸出某個(gè)分布的結(jié)果值及每個(gè)樣本結(jié)果屬于某個(gè)分布的概率。因此可進(jìn)行類比,將歸類后的特征理解為具有不同的分布的數(shù)據(jù),分別對(duì)對(duì)應(yīng)特征的預(yù)測(cè)結(jié)果 及該預(yù)測(cè)在實(shí)際結(jié)果中的重要程度 進(jìn)行建模。
2、模型結(jié)構(gòu)圖
下圖為整體的模型結(jié)構(gòu)圖,左圖為選擇模型,可用作特征重要度的展示,右圖為特征對(duì)應(yīng)的預(yù)測(cè)模型。
具體而言,預(yù)測(cè)模型用于預(yù)測(cè)對(duì)應(yīng)特征預(yù)測(cè)/點(diǎn)擊的概率,而選擇模型則用于說明哪些特征分布是比較重要、可用于作為解釋性文字的展示。
3、預(yù)測(cè)模型
下圖為預(yù)測(cè)模型的結(jié)果圖,預(yù)測(cè)模型主要借鑒了 DeepFM 的思想,包含一個(gè)深度模型和交叉模型。深度模型主要用于學(xué)習(xí)特征的深層表達(dá),而交叉模型則用于學(xué)習(xí)交叉特征。
?深度模型中,先提前對(duì)特征進(jìn)行分組(假設(shè)共有 N 組),如對(duì)價(jià)格、類別等相關(guān)的特征合并為價(jià)格、類別大類(圖中 field 字段),并對(duì)每一組特征進(jìn)行單獨(dú)的模型訓(xùn)練,并得到基于該組特征的模型結(jié)果。
對(duì)模型提前進(jìn)行合并分組,具有下述兩個(gè)優(yōu)點(diǎn):
(1)通過 N 個(gè)模型的獨(dú)立訓(xùn)練,可通過輸入特征的增減改變模型的復(fù)雜度,從而影響線上性能。
(2)對(duì)特征的合并分組可明顯減少特征量級(jí),從而使人工將特征域轉(zhuǎn)化為文字時(shí)更加方便。
值得一提的是,attention 層理論上也可用于特征重要度的分析,但在本模型中未引入attention 的原因主要如下:
(1)若將 attention layer 放在太靠前位置則無法體現(xiàn)出特征深層表達(dá)的結(jié)果;
(2)若將 attention layer 放在較為靠后的位置,則無法回溯、無法找出核心特征。
而對(duì)于預(yù)測(cè)模型:?
?其交叉層并未沿用 FM 模型而是采用 CNN 代替 DeepFM 中 FM 結(jié)構(gòu)。FM 模型學(xué)習(xí)特征兩兩交叉結(jié)果,并通過數(shù)學(xué)公式直接計(jì)算兩兩交叉結(jié)果,避免計(jì)算時(shí)的維度爆炸,但其導(dǎo)致無法回溯特征重要度,因此在交叉模型中引入 CNN 替代原有結(jié)構(gòu):采用 N 個(gè)特征進(jìn)行相乘以實(shí)現(xiàn)特征交叉,再進(jìn)行 CNN 的相應(yīng)操作。這樣使得特征值在輸入后經(jīng)過 pooling,concat 等操作后,仍可回溯。
除上述優(yōu)點(diǎn)外,該方法還有一個(gè)優(yōu)點(diǎn):雖然現(xiàn)有版本僅是單個(gè)特征到單個(gè)描述文字的轉(zhuǎn)化,但仍希望未來能實(shí)現(xiàn)多特征交互的轉(zhuǎn)化。舉例而言,如果某用戶習(xí)慣購買100元低價(jià)產(chǎn)品,但若有原價(jià)50,000元商品打折至500出售,而用戶購買了該商品,模型可能因此將其定義為高消費(fèi)用戶。但實(shí)際中,可能是因?yàn)楦叨似放?高折扣雙重因素導(dǎo)致的用戶下單,因此需考慮組合邏輯。而對(duì)于 CNN-FM 模型而言,后期可直接利用 feature map 進(jìn)行特征組合的輸出。?
4、選擇模型
?選擇模型由 MLP 和 sparseMax 組成。值得一提的是,選擇模型中激活函數(shù)采用的是 sparsemax 而不是更為常見的的 softmax。圖像右邊依次是 sparsemax 的函數(shù)定義及 softmax 與 sparsemax 的函數(shù)對(duì)比圖。
從右下的圖中可看出,softmax 對(duì)重要度較低的輸出節(jié)點(diǎn)仍會(huì)賦予較小值,在該場(chǎng)景下會(huì)導(dǎo)致特征維度爆炸,且容易造成重要特征與不重要特征間的輸出沒有區(qū)分度。而 sparseMax 可以將輸出離散化,最終僅輸出較為重要的特征。?
四、實(shí)驗(yàn)效果展示
1、實(shí)驗(yàn)數(shù)據(jù)說明
線上效果數(shù)據(jù)主要來自于大藥房首頁曝光-點(diǎn)擊數(shù)據(jù),為避免過擬合,也引入了部分其他場(chǎng)景曝光-點(diǎn)擊數(shù)據(jù),數(shù)據(jù)比例為 4:1。
2、離線指標(biāo)
在離線場(chǎng)景下,該模型 AUC 為0.74。
3、線上指標(biāo)
由于線上場(chǎng)景已有 CTR 模型,考慮新版算法除更換模型外,還會(huì)展示對(duì)應(yīng)的解釋性文字,未控制變量,因此本次實(shí)驗(yàn)并未直接采用 AB test。而是當(dāng)且僅當(dāng)線上 CTR 模型及新版算法預(yù)測(cè)值均高于特定閾值時(shí),才會(huì)展示推薦理由的文本。上線后,新版算法 PCTR 提升 9.13%,UCTR 提升 3.4%。
五、問答環(huán)節(jié)
Q1:生成標(biāo)準(zhǔn)詞庫、同義詞合并采用什么模型?效果如何?還需要多少人工校準(zhǔn)工作?
A1:同義詞合并時(shí)會(huì)利用模型學(xué)習(xí)文本標(biāo)準(zhǔn),并提供出基礎(chǔ)詞庫。但實(shí)際上人工校驗(yàn)的比重較大。因?yàn)榻】?藥品的業(yè)務(wù)場(chǎng)景,對(duì)算法準(zhǔn)確度的要求較高,可能個(gè)別字的偏差會(huì)造成實(shí)際意義的較大偏離。整體而言人工校驗(yàn)的比重會(huì)比算法大。
Q2:LIME 模型可以用作推薦模型的解釋嗎?
A2:可以。還有很多其他模型可以做可解釋推薦。因?yàn)榉窒碚邔?duì) GMM 整體熟悉度高,所以選擇上述模型。
Q3:選擇模型和預(yù)測(cè)模型怎么聯(lián)動(dòng)的?
A3:假設(shè)有 N 組特征組,預(yù)測(cè)模型、選擇模型均會(huì)會(huì)生成 1*N 維的向量,最終將預(yù)測(cè)模型和選擇模型的結(jié)果進(jìn)行相乘(multiple),實(shí)現(xiàn)聯(lián)動(dòng)。
Q4:可解釋文本如何生成?
A4:目前還沒有合適的機(jī)器學(xué)習(xí)模型進(jìn)行文本生成,主要還是采用基于人工的方式。如價(jià)格是用戶關(guān)心的核心特征,則會(huì)選擇對(duì)歷史數(shù)據(jù)進(jìn)行分析,推薦出性價(jià)比較高的產(chǎn)品。但目前而言,主要還是人工操作。希望未來能有合適的模型進(jìn)行文本生成,但考慮到業(yè)務(wù)場(chǎng)景的特殊性,模型生成的文本仍需要人工進(jìn)行校驗(yàn)。
Q5:模型的篩選邏輯?
A5:對(duì)于 GMM 中子分布的選擇,主要通過 GMM 中 Mk 對(duì)分布進(jìn)行學(xué)習(xí),并基于 Mk 的高低值進(jìn)行篩選。
Q6:詞庫的標(biāo)注有屬性類型嗎?
A6:對(duì)加屬性詞,如對(duì)產(chǎn)品描述中的疾病、功能、使用禁忌等進(jìn)行達(dá)標(biāo)。
Q7:可解釋文本可否使用槽位填充的思想?即準(zhǔn)備不同模板,根據(jù)詞語的權(quán)重選擇不同模板?
A7:可以,現(xiàn)在的實(shí)際用法即為槽位填充。
今天的分享就到這里,謝謝大家。