4
本文作者: 楊鯉萍 | 2019-11-13 14:34 |
雷鋒網(wǎng) AI 開發(fā)者按:近日,在中國北京舉辦 CIKM 2019 AnalytiCup 中,由來自浙江大學(xué)、中央財經(jīng)大學(xué)、阿里巴巴等機構(gòu)組成的團隊 WWG 摘得「用戶行為預(yù)測」賽道的桂冠。
CIKM 是中國計算機學(xué)會(CCF)推薦的數(shù)據(jù)庫/數(shù)據(jù)挖掘/內(nèi)容檢索領(lǐng)域的 B 類會議。 CIKM AnalytiCup 挑戰(zhàn)賽是會議同期舉行的國際數(shù)據(jù)挖掘比賽,今年由 CIKM、阿里媽媽、阿里巴巴算法大學(xué)、阿里云天池共同承辦,挑戰(zhàn)賽分為兩個賽道,用戶興趣高效檢索(Efficient User Interests Retrieval)和用戶行為多樣性預(yù)測(Predicting User Behavior Diversities in A Dynamic Interactive Environment)。
現(xiàn)雷鋒網(wǎng) AI 開發(fā)者將 WWG 團隊冠軍方案整理如下,希望能給開發(fā)者們一些經(jīng)驗與啟發(fā)。
本次冠軍團隊WWG成員分別來自浙江大學(xué),中央財經(jīng)大學(xué),阿里巴巴等機構(gòu);兩位學(xué)生孟憲令和焦宇航在阿里巴巴搜索推薦事業(yè)部的商業(yè)賦能算法團隊實習(xí)期間,參與了該比賽;比賽過程中,團隊負責(zé)人李朝博士,以及兩位師兄潘旭明和鄒朋成在算法的創(chuàng)新和思路上給予了一定的輔導(dǎo)。
阿里巴巴搜索推薦事業(yè)部的商業(yè)賦能團隊,致力于通過對電商平臺的海量用戶和商品的精準(zhǔn)理解,從需求側(cè)驅(qū)動供給側(cè)的新商業(yè)賦能,給平臺的消費者和賣家都提供更好的服務(wù)。
基本問題
根據(jù)歷史用戶-商品交互行為、用戶屬性和商品屬性,對給定用戶進行未來點擊預(yù)測,選出該用戶未來三天最可能點擊的商品 top50;其中,在復(fù)賽中需特別注意一點,即用戶歷史點擊商品并不在未來可能出現(xiàn)的點擊商品可選池中。
評估指標(biāo) Recall@50
其中為用戶在未來三天內(nèi)的實際點擊商品集合,為用戶在未來三天內(nèi)的預(yù)測點擊商品集合,此處需要注意,預(yù)測點擊商品集合的數(shù)量需滿足,即返回商品數(shù)量嚴格約束為 50 個。
簡要分析
僅僅看題目描述我們可以發(fā)現(xiàn),這個題目本質(zhì)上是一個召回預(yù)估問題。更具體的,這個問題應(yīng)該以 u-i 對為輸入,經(jīng)過一定模型的判斷,最終給出一個 u-i 對對應(yīng)的分數(shù),再根據(jù)每個 user 對應(yīng)的 u-i 對分數(shù)從大到小的排序,取出 top50 的 item 作為最終得到預(yù)測點擊商品集合。
同時,考慮到規(guī)模問題,對于千萬級別的獨立 user 和 item,直接去做全集的 u-i 對預(yù)測顯然既不現(xiàn)實又不經(jīng)濟,因此我們在結(jié)題初期就確定了「初篩-精排」兩階段求解框架,如圖 1 所示:
圖 1 「初篩-精排」兩階段求解框架
然而,這個題目的標(biāo)題為用戶行為預(yù)測,在賽題官方的描述里也多次提到 Graph 的概念。從這一角度思考,這個問題可以描述為 u-i 二部圖的 link prediction 問題,雖然從模型的角度來看可能和剛剛說到的類似,但這一特點似乎在暗示圖結(jié)構(gòu)信息在這一比賽當(dāng)中的重要性。
因此,我們決定從兩個角度對此問題進行分析和求解:傳統(tǒng)的基于靜態(tài)屬性信息的統(tǒng)計特征工程,以及基于 u-i 二部圖的結(jié)構(gòu)特征工程。
統(tǒng)計特征的提取在我們的工作中相對簡略,因此在本節(jié)中,我們著重介紹我們對圖結(jié)構(gòu)特征的思考和使用。
算法動機
為了可以預(yù)測用戶未來的點擊行為,我們需要對用戶和商品進行更為精準(zhǔn)的刻畫和表達,由于本次賽題的主視角是用戶視角(用戶會點哪些商品),所以我們認為,解決 u-i 對預(yù)測問題的核心思想是:如何更好的表達用戶的偏好。即什么樣的商品用戶會點擊,歷史的交互行為所傳達出來的哪些信息對未來點擊的預(yù)測是有效的。
通過對用戶的行為進行思考和分析,我們發(fā)現(xiàn)用戶的偏好存在如下兩類的關(guān)系:
如果一名用戶點擊了某個商品,那么該用戶對該商品所在類目的商品具有一定程度的偏好,如:iPhone,Mate 30->MI MIX Alpha(智能手機類目);
如果一名用戶點擊了某個商品,那么該用戶對該商品所在主題的商品具有一定程度的偏好,如:沙灘褲,太陽眼鏡->防曬霜(沙灘旅行主題)。
層次關(guān)系
更深入的,我們發(fā)現(xiàn)這兩類關(guān)系存在相對明晰的層次關(guān)系,如:
基于類目的層次偏好:iPhone,Mate 30->MI MIX Alpha(智能手機)->Canon EOS 相機(電子產(chǎn)品);
基于用戶興趣主題的層次偏好:沙灘褲,太陽眼鏡->防曬霜(沙灘旅行)->運動鞋(戶外旅行)。這里的沙灘旅行和戶外旅行都是用戶興趣層面的表達。
這兩類偏好關(guān)系廣泛存在與用戶的歷史行為中,具體如圖 2 所示;因此,如何合理捕捉這兩類層次特征,是我們接下來算法的重點。
圖 2 層次偏好特征表達示意圖
在接下來的算法中,我們將基于類目的層次偏好稱為顯式層次偏好,將基于用戶興趣主題的層次偏好稱為隱式層次偏好。我們的解決方案一共包含以下四部分:
圖 3 解決方案大綱
數(shù)據(jù)預(yù)處理
由于數(shù)據(jù)集本身是存在不同日期,不同交互行為(點擊,購買,加購,收藏)的,我們首先通過引入時間衰減因子和行為衰減因子兩個超參數(shù),對原始數(shù)據(jù)集進行處理,并構(gòu)建完成 user-item 二部圖(如圖 4)。
與此同時,也根據(jù) user 特征數(shù)據(jù)集和 item 特征數(shù)據(jù)集構(gòu)建一系列統(tǒng)計特征,以及 user 和 item 的屬性特征。
圖 4 user-item 二部圖
顯式層次特征提取
顯式層次特征主要基于 item-cate-cate1 的層次關(guān)系,通過將歷史行為與 item 特征進行匹配,可以分別構(gòu)建出 user-item,user-cate,user-cate1 三張二部圖,對三個層次分別實現(xiàn)協(xié)同過濾算法,從而得出 user 對不同 item,不同 cate 以及不同 cate1 的相似性得分。我們可以看到顯性的層次特征是只有 item 維度的。
圖 5 顯性層次特征提取
隱式層次特征提取
隱式層次特征的提取相對困難,因為興趣主題并不像類目一樣,每個商品并沒有被標(biāo)定一個顯式的興趣主題。為了比較好的解決這一問題,我們提出 Hierarchical Graph Neural Network(HGNN)算法,對圖結(jié)構(gòu)進行表達。
具體的,我們對原始的 u-i 二部圖做 GraphSAGE 算法,以具有邊的 user,item 的向量表達相似(余弦相似度)為目標(biāo)(注意,這里嚴格意義上應(yīng)該區(qū)分兩個向量空間,在比賽中我們?yōu)榱颂岣咝蕦蓚€向量空間的維度設(shè)定成了相同的 16 維,因此可以實現(xiàn)余弦相似度的計算),做無監(jiān)督的 Graph Embedding 訓(xùn)練。待網(wǎng)絡(luò)穩(wěn)定后,我們可以得到每個 user 和 item 的向量表達。這一向量即為該 user/item 的一級隱式特征。
為了表達出層次特性,我們根據(jù) user/item 的一級隱式特征,分別在 user 和 item 的向量空間中做聚類(比賽中采用 K-means 聚類),以聚類簇的平均特征向量作為簇節(jié)點的向量,以簇間原始節(jié)點關(guān)聯(lián)關(guān)系的統(tǒng)計作為簇與簇之間的關(guān)聯(lián)(邊)。這樣,我們便通過聚類操作,將原始 u-i 二部圖粗化,變?yōu)榱艘粋€以主題用戶簇和主題商品簇為節(jié)點,節(jié)點數(shù)量更少的粗化圖。對粗化圖做和原始 u-i 二部圖相同基于 GraphSAGE 的 Graph Embedding 操作,我們便可以得到粗化隱式特征,原始節(jié)點的二級隱式特征即為其所屬簇的粗化隱式特征。
對于每個 user/item,將其一級隱式特征和二級隱式特征級聯(lián),即得到該節(jié)點的隱式層次特征。在實際計算 u-i 對相似度時,將層次隱式特征分級比較即可得到這一部分的相似分。我們可以看到隱性層次特征是既有 user 維度,也有 item 維度的。
圖 5 隱性層次特征提取
排序模型
在 Candidate Generation 階段(初篩階段),我們采用計算效率相對較高的顯式層次特征(即采用協(xié)同過濾分)對所有商品進行初篩,對每個 user,保留其最有可能點擊的 2000 個商品進行 Ranking 階段的精排。需要注意的是,在初賽中歷史商品也可能在未來曝光并被點擊,所以歷史商品無需特殊處理。而復(fù)賽階段由于歷史商品不會在未來曝光,所以復(fù)賽階段在初篩階段的結(jié)尾要對歷史出現(xiàn)過的商品做篩除,以避免無效精排。
Ranking 階段基本上每個 user 要處理 2000 個左右的商品,因此我們的預(yù)測模型選擇了相對簡單高效的 LR 模型,將前置工作中得到的顯式層次特征,隱式層次特征和統(tǒng)計特征進行不同階的特征交叉后引入 LR 模型后,將 LR 模型的輸出作為排序分數(shù), 取分數(shù) top50 作為最終的預(yù)測結(jié)果進行輸出。
這里交叉特征的引入本質(zhì)是一個 kernel 函數(shù)的思想, 輔助提高了 LR 模型的非線性能力,我們先后采用了顯性層次特征和隱性層次特征之間 2 階的特征交叉以及 3 階特征交叉; 分別對最后的模型效果有一定提升。
圖 6 排序模型圖
以下是我們算法迭代過程中的一些重要節(jié)點:
version1 基于協(xié)同過濾+統(tǒng)計特征
version2 基于顯性層次特征+統(tǒng)計特征
version3 基于顯性/隱形層次特征+統(tǒng)計特征
version4 基于二階結(jié)構(gòu)特征交叉+統(tǒng)計特征
version5 基于三階結(jié)構(gòu)特征交叉+統(tǒng)計特征
圖 7 重要節(jié)點示意圖
可以發(fā)現(xiàn),通過引入層次結(jié)構(gòu)特征,尤其是隱式層次結(jié)構(gòu)特征的提取,我們對這一問題進行了較好的求解,從結(jié)論上可以看出,結(jié)構(gòu)特征確實對整個預(yù)測準(zhǔn)確度帶來了較大的性能提升,后續(xù)對結(jié)構(gòu)特征信息做了特征交叉之后,性能也有了進一步的提高。
本次比賽我們嘗試了 Hierarchical GNN 模型來獲取用戶和商品的隱性層次特征,獲得了非常不錯的效果,由于比賽時間非常有限,我們的排序模型使用了 LR, 以便于快速迭代并調(diào)整相應(yīng)參數(shù),使用了 point-wise 的訓(xùn)練方式。
如果還有足夠的時間,我們還會嘗試更多的排序模型,比如 xgboost, deepFM, wide&deep 等,并對模型做相應(yīng)的融合,再采樣 pair-wise 的訓(xùn)練方式,相信還會進一步提升模型效果。
圖 8 冠軍獲獎合影
更多信息請參考大賽官網(wǎng):
雷鋒網(wǎng) AI 開發(fā)者
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。