天天看點

幹貨 | 全球頂級算法賽事Top5選手,跟你聊聊推薦系統領域的“戰鬥機”摘要

作者簡介

朱麟,攜程酒店研發部排序算法組資深算法工程師,主要負責攜程酒店排序相關的AI項目,多年行業相關經驗。博士畢業于中國科技大學,專注于推薦系統算法的應用和研發。

摘要

随着人工智能和大資料技術的飛速發展,推薦系統近年來非常流行,應用于各行各業。推薦的對象包括:電影、音樂、新聞、書籍、學術論文、搜尋查詢、分衆分類、以及其他産品。

推薦系統産生推薦清單的方式通常有兩種:協同過濾和基于内容的推薦,近年來很多基于這些方法的創新層出不窮。

攜程酒店研發部排序推薦算法團隊也在該領域的實踐中作了很多有意義的探索,并在業務中得到應用。帶着這些積累,我們在今年參加了一些關于推薦系統的國際知名資料挖掘競賽,2018 ACM WSDM挑戰賽和2018 ACM RecSys 挑戰賽, 均取得Top5的好成績。

以下将結合兩次比賽的實際内容,談談我們所采用的算法政策和心得。

一、比賽簡介

2018年ACM WSDM競賽[1],作為網絡資料挖掘頂級學術會議WSDM的一部分,由ACM和亞洲頂級的音樂流媒體服商KKBOX聯合舉辦。 比賽目标是搭建一個推薦系統,通過預測在一定時間内使用者再次點播曆史收聽過歌曲給使用者進行推薦,競賽使用的資料集由音樂流媒體平台KKBOX提供,包含以下資訊:使用者、歌曲的metadata,聽歌活動與App的資訊等等。

2018年ACM RecSys競賽[2],作為推薦系統頂級會議RecSys的一部分,由ACM和國際知名音樂服務商Spotify聯合舉辦。比賽的目标是搭建一個推薦系統,自動延續使用者歌單。競賽所用的資料集由Spotify提供,包含以下資訊:使用者、歌曲的中繼資料,,一百萬個使用者自建的歌單以及這些歌單的中繼資料。

二、方法創新

1、對于特征工程的創新

坊間常說:“資料和特征決定了機器學習的上限,而模型和算法隻是逼近這個上限而已”。可見特征工程在機器學習過程占有非常重要的地位。

在ACM WSDM競賽中,我們在特征工程上做了充分的探索 ,除了構造正常的類别和統計特征,值得一提的是我們挖掘出了蘊藏在資料中的時序資訊。考慮到給定的資料集是按出現的時間順序排序的,是以盡管沒有給明顯的時間戳,我們依然可以從兩方面探索考慮到輸入資料的時間序列特性的特征:

1.1 物品的“年齡”相關特征

不像通常推薦比賽的設定,物品集和使用者集都被假設是固定的,在KKBOX提供的為期兩年的資料集(2016和2017)中,新發的歌曲被不斷地加入到音樂庫,新的使用者也不斷地使用KKBOX,可以了解為新的物品和使用者不斷加入到已有推薦系統。

一方面,推薦近期新發歌曲是非常重要的,因為在實際中使用者往往偏好新的内容;另一方面,考慮歌曲的“年齡”和使用者的“年齡”對偏差糾正也是很重要的,這是因為大量的物品和使用者在資料集中不是“均一”分布的。

基于這些觀測,我們首先構造了一些特征來衡量對應的客戶/歌曲/藝術家/作曲家/譜曲家在此次使用者-歌曲聽歌活動前的出現時間。相似地,我們也構造了一些特征,表示對應客戶/歌曲/藝術家/作曲家/譜曲家在此次使用者-歌曲聽歌活動後出現頻率。

1.2 “會話”特征

對于線上流系統的推薦任務而言,通常從基于會話的角度來考慮使用者和系統/物品更為有益。會話是一組發生在給定時間間隔内的互相聯系。

舉個例子,一個使用者可能在較短的時期内,會不時地聽屬于同一個藝術家或者同一個風格的音樂,識别這樣的會話很有可能提高推薦準确率。

之前提到過,在此次競賽中,聽歌活動的時間戳并沒有被直接給出,是以取而代之的是,我們貪心地将臨近的屬于同一個使用者的聽歌記錄歸為一個會話。

基于估計的會話,我們構造了三種特征,分别衡量使用者在資料集中參與會話的數量,使用者在一個會話中平均聽歌數量,目前會話含有的歌曲數量。

在ACM RecSys中,我們考慮到出現在同一歌單的歌曲共現的性質,借用word2vec的思路,将歌單當作句子,将歌曲當作單詞進行訓練,得到每一首歌的embedding,并基于這些embedding計算歌曲間相似度作為特征。

2、對于模型的創新

在實際的推薦系統應用中,各種機器學習方法百家齊放。能夠基于已有方法,針對不同的實際問題作出自己的創新,集百家所長,往往能帶來更優異的結果。

2.1 解決冷啟動問題

冷啟動問題是協同過濾推薦算法中被廣泛關注的一個經典問題,常常為實際推薦系統帶來嚴重的挑戰,它的存在嚴重影響了推薦系統的推薦品質。對于電子商務推薦系統,每天都有大量的新使用者通路系統,每天都有相當數量的新項目添加到系統中冷啟動。

在ACM WSDM競賽中,我們亦遇到了同樣的挑戰。

在模型裡,客戶和歌曲都被表示成類别特征,是以此環境下的冷啟動問題可以被了解成帶有高基數的類别特征的“次元詛咒”:因為訓練集的有限,不太可能觀察到每個這樣類别特征的可能的值,是以,如果學習模型過于依賴這些不大可靠的類别特征提供的資訊,特征可能不能很好地推廣到未來的測試集上。

在本次競賽中,我們嘗試通過借助去噪自編碼和dropout的思想來改善這種問題,并且在沒有高基數類别特征,像使用者id,歌曲id,藝術家名字,作曲家,譜曲家等等的情況下重新訓練模型。在這樣去掉不可靠特征的情況下訓練出的模型,和原模型融合後會得到更好的實驗表現。

2.2 創新協同過濾

作為推薦系統經典方法的協同過濾可以分為基于使用者和基于物品兩種。

基于物品的協同過濾簡單來說是利用某興趣相投的群體的喜好來推薦使用者感興趣的資訊,應用很廣。但是,基于物品的協同過濾也存在缺點,往往會更傾向推薦熱門的物品,使得一些小衆的物品得不到重視而較少被推薦。

在2018 ACM RecSys Challenge中,我們針對基于物品的協同過濾進行一些改進,得到了較為不錯的模型效果。

該競賽的挑戰目标,是開發出一個自動延續歌單系統。比賽提供的資料集可以簡要概括成兩部分,第一部分是百萬歌單資料集(MPD), 包含一百萬個由使用者建立的歌單和相關的中繼資料,比如歌單的名字,描述,藝術家/專輯/歌曲的數量等多種統計資訊。

第二部分是一萬個未完成的歌單和相關中繼資料, 分别含有1-250首歌不等歌單。評測名額是對該一萬個未完成的歌單,從比賽給定的一百萬首歌曲預測出最可能在該歌單的500首歌曲。

我們推薦的核心思想是假設給歌單u自動延續(推薦),将和歌單每首歌曲平均相似度最高的歌曲選出,來自動延續歌單。如何衡量這些歌曲和歌單的相似度?

一個簡單直接的方法是,計算歌曲和歌單每首歌曲平均相似度。在參考一些以前的工作後,我們将該計算分為了以下三步:

(a) 計算每首歌的特征向量

對于每首歌曲,我們都可以得到它的特征向量, 已知資料集中有一百萬的歌單,那麼代表每首歌的特征向量将為一百萬維,每一維的計算可見以下公式:

幹貨 | 全球頂級算法賽事Top5選手,跟你聊聊推薦系統領域的“戰鬥機”摘要

T(u) - 歌單u的歌曲集合

T(v) – 對于任何包含歌曲i的歌單的歌曲集合

幹貨 | 全球頂級算法賽事Top5選手,跟你聊聊推薦系統領域的“戰鬥機”摘要

- 超參,控制着長歌單的影響

(b) 計算歌曲i和歌曲j的相似度

幹貨 | 全球頂級算法賽事Top5選手,跟你聊聊推薦系統領域的“戰鬥機”摘要

P(i) – 含有歌曲i的歌單集合

P(j) – 含有歌曲j的歌單集合

幹貨 | 全球頂級算法賽事Top5選手,跟你聊聊推薦系統領域的“戰鬥機”摘要

- 超參,控制着熱門歌曲的影響

(c) 歌曲i和歌單u的相似度

通過(a)和(b)計算得到歌曲與歌曲之間的相似度,對于一個未完成的歌單u,我們計算歌曲i和歌單u中每一首歌曲的相似度,權重平均分即為該歌曲與歌單u的相似度。

幹貨 | 全球頂級算法賽事Top5選手,跟你聊聊推薦系統領域的“戰鬥機”摘要

至此,我們實作了基于物品的協同過濾推薦,通過超參α和超參β得以控制當歌單較長以及物品過于熱門的影響,但是該方法步驟(c)中的權重平均計算歌曲與歌單相似度過于平等得看待所有的特征,使得相對的特征重要性被忽略了隻能得到次優解。

針對以上問題,我們提出判别式重新權重方法(Discriminative Reweighting)進一步改進。

2.3 判别式重新權重

我們采用的判别式重新權重算法主要借鑒了SLIM算法。

SLIM(Sparse Linear Model) [3],中文名是稀疏線性推薦算法,該方法基于物品相似度的推廣形式, 以M表示評分矩陣,S表示相似度矩陣,在計算評分時作為對應物品的權重,優化目标即為使得M和MS內插補點最小,同時通過添加對權重的正則使得權重更加稀疏以此達到更好的模型推薦效果。

相似SLIM模型,對于以上平均看待權重而忽略特征重要性的問題,通過求解以下L2正則SVC問題,我們可以有效地學習到更多具有判别意義的權重,進而學得更精準的歌曲和歌單的相似度:

幹貨 | 全球頂級算法賽事Top5選手,跟你聊聊推薦系統領域的“戰鬥機”摘要

其中标簽

幹貨 | 全球頂級算法賽事Top5選手,跟你聊聊推薦系統領域的“戰鬥機”摘要

表示i是否屬于T(u)。

2.4 判别式重排序與模型內建

如今推薦系統領域,乃至機器學習各領域,常常用多種不同類别的模型內建來完成推薦,比如Facebook利用XGBoost和LogisticRegression內建,得到的模型在點選率得以極大的提升。多模型內建不僅能充分挖掘資料特性,也能更好綜合預測結果,提升模型表現。

在ACM RecSys挑戰賽中,考慮到協同過濾方法僅僅依靠歌曲和歌曲,歌曲和歌單共同出現的頻率來計算相似度,但還有其他資料,像歌曲名,歌單名等等的資訊我們尚未使用,是以我們內建了原有的協同過濾模型和GDBT,将協同過濾做粗排,篩選出初步的候選集,然後通過中繼資料構造特征,與協同過濾計算的機率分特征一起,通過GDBT進一步作精排,得到最終的推薦結果。

在ACM WSDM Cup中,通過嵌入式模型,如Factorization Machine[4]或深度神經網絡,将類别id嵌入低次元空間來表示潛在的偏好,這種方法能推廣到先前未觀測到的類别特征對,是以除了基于特征工程的分類模型-Gradient Descent Boosting Tree(GDBT),我們還采用了factorization machine來學習每個使用者歌曲對的潛在因素,并基于觀測到的似然值而排序給定的歌曲。

三、總結

在推薦系統領域,通過對資料集不斷挖掘更為有效的特征,針對已有方法在特定問題上的創新,以及更充分有效挖掘資料特性的模型內建往往能帶來更加優質的推薦,帶來更好效益的模型,更充分發揮人工智能的優勢去服務廣大的消費者。

在攜程的日常服務中,個性化的推薦算法以及不斷提升的推薦品質,也将為旅行者帶去更良好的消費體驗,找到讓每一位旅行者都滿意的旅行産品。

(攜程酒店研發部陳毅鴻,何博文對本文亦有貢獻)

參考文獻:

[1] Y.Chen, X. Xie, S.-D. Lin, and A. Chiu, "WSDM Cup 2018: Music Recommendationand Churn Prediction," in WSDM,Marina Del Rey, CA, USA, 2018, pp. 8-9.

[2] C.-W. Chen, P. Lamere, M. Schedl, and H.Zamani, "Recsys challenge 2018: automatic music playlistcontinuation," in RecSys, 2018,pp. 527-528.

[3] X. Ning and G. Karypis, "Slim: Sparselinear methods for top-n recommender systems," in ICDM, 2011, pp. 497-506.

[4] S. Rendle, "Factorization machines,"in ICDM, 2010, pp. 995-1000.