愛奇藝WSDM比賽高精度單模方案分享
來源:投稿 作者:kon
編輯:學姐
Kon
擅長自然語言處理、推薦系統(tǒng),愛好是cv;著有cv相關專利一篇,西安交通大學軟件專業(yè)本碩。
01?賽題任務
愛奇藝是中國和世界領先的高品質視頻娛樂流媒體平臺,每個月有超過5億的用戶在愛奇藝上享受娛樂服務。愛奇藝秉承“悅享品質”的品牌口號,打造涵蓋影劇、綜藝、動漫在內的專業(yè)正版視頻內容庫,和“隨刻”等海量的用戶原創(chuàng)內容,為用戶提供豐富的專業(yè)視頻體驗。
愛奇藝手機端APP,通過深度學習等最新的AI技術,提升用戶個性化的產品體驗,更好地讓用戶享受定制化的娛樂服務。我們用“N日留存分”這一關鍵指標來衡量用戶的滿意程度。例如,如果一個用戶10月1日的“7日留存分”等于3,代表這個用戶接下來的7天里(10月2日~8日),有3天會訪問愛奇藝APP。預測用戶的留存分是個充滿挑戰(zhàn)的難題:不同用戶本身的偏好、活躍度差異很大,另外用戶可支配的娛樂時間、熱門內容的流行趨勢等其他因素,也有很強的周期性特征。
本次大賽基于愛奇藝APP脫敏和采樣后的數(shù)據(jù)信息,預測用戶的7日留存分。參賽隊伍需要設計相應的算法進行數(shù)據(jù)分析和預測。
關鍵詞:數(shù)據(jù)挖掘、時序建模、回歸
一句話理解:通過時序信息建模用戶的歷史信息,回歸預測未來七天內的登錄天數(shù)。
02?寫在前面
這次方案分享為大家?guī)淼氖且粋€本次比賽A榜最好取得86.20(第一名86.43),B榜最好取得第24名85.98(第一名86.44)的單模詳解。因為時間原因,我在比賽期間未作多模融合,因此在接下來的章節(jié),我將通過數(shù)據(jù)處理、模型細節(jié)等方面為大家講解本次比賽中我個人使用的單個深度學習模型的主要思路流程。
另外,本次比賽的top1方案公開分享中,作者說他們團隊進行ensemble的模型單模精度只有85,但最終卻在A、B榜雙雙達到了穩(wěn)定86.3的好成績。那么他們究竟做了什么點睛之筆,又有哪些地方值得我們學習?我會在文章最后給出分析,以及對該比賽其它一些潛在方案的構想。
關注公眾號【學姐帶你玩AI】回復“愛奇藝”獲取比賽Baseline
03?數(shù)據(jù)探索
本次比賽提供的數(shù)據(jù)一共為5個表,每個表內都有數(shù)個字段。在比賽開始前,我們最好對每個表都進行大量的數(shù)據(jù)探索,包括但不限于:數(shù)據(jù)分布、主鍵去重、內連接查看重合主鍵、樹模型重要性結果評分等。
其中,我認為最重要的一步就是通過樹模型對各因子的重要性結果進行評分,更好地認識數(shù)據(jù)。做法為:不做任何特征工程,將原始數(shù)據(jù)輸入XgBoost(LightGBM、CatBoost亦可),通過重要性評分評判各特征的重要程度。
(1)用戶自畫像
內容:包含用戶的年齡、性別等離散特征。
探索結果評價:此表重要性程度高,在建模user embedding的方面有相當高的使用價值。
優(yōu)先級:第二優(yōu)先
(2)登錄日志
內容:包含用戶的登錄情況。
探索結果:此表重要性程度極高,因為其包含了最為重要的時序信息,也是構造label的數(shù)據(jù)來源。
優(yōu)先級:第一優(yōu)先
(3)視頻相關
內容:包含視頻庫內的tag、時長信息等。
探索結果評價:此表重要性程度較低,在建模item embedding的方面有一定的使用價值。應較后考慮使用此表信息。
優(yōu)先級:第四優(yōu)先
(4)用戶播放
內容:包含用戶歷史視頻的觀看時長、日期信息。
探索結果評價:此表重要性程度中等。它也包含著一定的時序信息,可以同用戶日志結合使用。
優(yōu)先級:第三優(yōu)先
(5)用戶交互
內容:包含用戶歷史視頻的交互信息,如收藏、點贊等。
探索結果評價:此表數(shù)據(jù)極少、重要性程度低,可以不考慮使用此表信息。
優(yōu)先級:不建議使用
04?方案框架
Label構造:首先通過官網得到先驗知識:
(1)雖然每個用戶的取樣時間起始結束點不同,但訓練集保證,每個用戶[date 131, date 160]這1個月的行為都會取樣到(如果有)。
(2)假如1個用戶在訓練集中給出的行為范圍是[date_min, date_max],那么這個用戶在[date_min, date_max]的行為,一定完整地在訓練集中給出了。這個時間范圍外的,不保證取樣到(除非滿足第一點)。
(3)如果1個用戶需要在測試集中被預測,那么會給定end_date。end_date>=該用戶的date_max。如果end_date>date_max,會保證(date_max, end_date]之間用戶沒有登錄行為。
通過這些先驗,對用戶日志進行“補全”,未登錄記為0,以0狀態(tài)登錄記為1,以1狀態(tài)登錄記為2。由此,我們可以得到各用戶最大確定登錄信息。接著,劃定一個長度為42的窗口,后7天構造label,前35天構造時間序列。構造時間序列可以加入用戶觀看視頻個數(shù)、時間等。
將用戶自畫像進行l(wèi)abel encoding,編碼為32維的特征向量構造user embedding層。
將視頻相關信息通過user的觀看序列進行排名得到sequence,對所有sequence通過w2v構造32維的item embedding。對每個sequence取mean pooling得到用戶的preference embedding。通過preference embedding召回測試集top15的用戶。
模型選擇:
BiLstm+Attention處理時間序列信息,將結果與user embedding、preference embedding連接后送入MLP得到回歸結果。
后處理:設定閾值0.45,即對整數(shù)正負0.45部分的回歸結果作ceil或者floor操作。
通過微調,單模結果在A榜最好取得86.20(第一名86.43),B榜最好取得第24名85.98(第一名86.44)的成績。
05?結果分析
該模型在A榜取得了86.2的高分,翻榜后卻出現(xiàn)了較大幅度的性能下降,究其原因,還是因為單模的不穩(wěn)定性。在top1方案中,top1團隊融合了4個樹模型、1個深度學習模型,可以看出,對多個模型ensemble是取得高名次的必要手段。
同時,top1方案團隊通過提交結果倒推結果分布,分段分層精心設計了后處理的閾值,這才在最終翻榜時沒有出現(xiàn)明顯的波動。
06?構想展望
目前,該賽題已開放所有比賽數(shù)據(jù),大家可自行去官網下載以便學習。最后,我為大家提出值得探索的幾個方向和思路:
(1)構造user-item圖,采取GNN聚合信息。如LightGCN、GraphSage
(2)構造user-item圖,采取圖嵌入聚合信息。如Line、Node2Vec
(3)DeepFM
(4)對測試集多路向量召回
希望大家可以在本文收獲多多。
關注公眾號【學姐帶你玩AI】回復“愛奇藝”獲取比賽Baseline