1. 程式人生 > >2018使用者興趣建模大賽總結

2018使用者興趣建模大賽總結

Attention!
我的Dr.Sure專案正式上線了,主旨在分享學習Tensorflow以及DeepLearning中的一些想法。期間隨時更新我的論文心得以及想法。

2018使用者興趣建模大賽

我非常榮幸能夠全程參與整個比賽,當然這次大賽對於我來說也不僅僅是一個比賽,更是一個角色的轉變。記得兩三年前我還是“賽圈”的一員,每天跟小夥伴們討論到底是XGBoost更牛逼還是NN更好。往事歷歷在目,但已是過眼雲煙。兩年時間如白駒過隙,彈指一揮間,我搖身一變成為了大賽的全程組織者和見證者。在晚宴上跟選手討論的不再是技術,而是你技術這牛逼,在xx公司是不是屈才了,要不要考慮來快手試試。

好了就不感慨了,下面我就對這次的比賽進行一個總結。

## 一、賽事籌備 這次比賽的籌備時間用曠日持久來形容再貼切不過了,因為在17年10月份ChinaMM2017(中國多媒體大會)結束之後,公司高層就決定籌備一個產學研相結合的賽事,畢竟快手是一個短視訊社群,更多的就是多媒體內容。 所以選擇什麼樣的賽題就成了我們最大的難題,我們 想過一個非常簡單的題目——視訊分類。這個賽題簡單粗暴,而且不用費太大的心裡去準備資料。但是做純視覺的題目很快就被我們否定了,因為現在視覺類的比賽太多了,從學術界到工業界各種各樣的比賽層出不窮,所以我們想要結合快手的特色出一個真正在產業界才會遇到的問題。 基於多媒體內容的推薦,這個題目最後經過層層篩選成為了我們的最終選擇。當然傳統的CTR問題也已經有無數的比賽了,為了與以往的比賽有所區別,我們對資料進行了最大程度的限制: 1. 不提供任何使用者側的meta資訊,所有這些特徵需要在行為資料以及使用者觀看過得視訊上進行建模。這樣最大化的弱化了使用者的固有資訊。 2. 測試集與訓練集的視訊側資料沒有任何的交集。也就是預測使用者在新視訊上的點選率,這樣最大程度上避免了像協同過濾這種典型的推薦演算法。 如下圖,也就說這次比賽,使用者對新視訊的點選行為只能通過視訊的內容維度特徵建立聯絡,這裡我們有一個假設就是使用者的在快手平臺的興趣是穩定的。因此我們把這次比賽取名為——《使用者興趣建模大賽》。

我們當時準備了上T的原始影象資料,並且打算提供高效能的計算平臺給到選手,讓參賽選手可以盡情發揮。但是這個比賽在資料籌備階段出了一個小插曲,就是今年4月份左右Facebook鬧出來的隱私洩露醜聞。使用者對於快手來說又是最重要的,因為我們對原始資料進行了特別嚴格的脫敏工作,而資料規模也從一開始的T級別到最後的70G。當時我們以為這會使得這個比賽的可玩性大大降低,但是出乎我們意料的是,這個比賽在幾乎沒有任何宣傳的情況下,竟然吸引到了國內外的383支團隊、644名選手參加。這裡非常感謝參賽選手的支援和努力。

二、賽題分析

首先來看看資料,這次比賽給選手一共提供了6000w+的互動資料,其中包括3w+的使用者以及900w+的視訊。

當然為了不暴露使用者的隱私資訊,我們對資料進行了嚴格的脫敏工作,隱去了使用者真實id,視訊也從原始視訊替換成了視訊的特徵。其中視訊特徵包括CNN網路中間層的特徵,視訊中人臉屬性特徵,視訊中文字特徵。另外一個很重要的點,在第一部分也已經說明了——測試集與訓練集的視訊側資料沒有任何的交集。

這個賽題的目標是預測使用者對另外一批視訊的點選概率,評估使用常見的AUC作為最終結果排名。

所以這個問題的核心在於:

  1. 使用者行為習慣挖掘。
  2. 測試集與訓練集視訊的內在聯絡。
  3. 視訊、人臉、文字特徵等非結構化資料處理。

三、答辯乾貨

下面就是這次比賽Top10的答辯選手解決方案。用一句話總結就是:一個框架、兩類思路、三種融合方式。

### 1. 一個框架 首先來解釋什麼事一個框架。當然這裡說的框架並不是什麼演算法框架,而是在處理這類問題時的通用程式碼框架。這個框架能夠使演算法在處理不同資料時如何能夠簡單快速地完成驗證。 框架設計的整體思路就是特徵群分離,並且不同資料型別進行分離。特徵群分離主要指的是不同的資料來源提取的特徵進行分類,例如使用者行為特徵群、視覺特徵群等。每個特徵群又可以分為連續特徵或者離散特徵,例如視覺特徵群可以包括連續的降維特徵以及離散的視訊聚類特徵等。 這樣做有下面三點好處: 1. 對於新發現的特徵可以快速知道適用於那一側的模型,方便特徵擴容。 2. 特徵群分開,可以快速定位那些特徵對線上效果增益最大。 3. 程式碼與特徵分離,框架一次開發,後期新增特徵的成本大大降低。 下圖為一個典型的框架設計圖。

總體來看,比賽的特徵分為,原始特徵、Embedding特徵,手工特徵。這些特徵又可以分成連續特徵和離散特徵。所以一個好的框架,在設計之初就可以充分考慮到這些資料的資料,需要能夠在後期對這些特徵進行很好的擴容。

大部分選手針對大賽提供的資料把特徵分成了若干個特徵群,每個特徵群對應一大類資料的輸入,然後分別針對每個特徵群進行特徵的提取。在框架設計的時候,會把特徵按照不同的類別進行劃分。這樣做可以儘可能複用程式碼框架。

2. 兩大類思路

選手的思路大致可以分為兩大類,一個是以特徵工程加模型調參為代表的傳統機器學習演算法,另一類是以模型構造加註意力機制的深度學習演算法。特徵工程主要是以第一名為代表的伏地魔團隊,模型主要是以第二三名為代表的xxx_sense團隊。當然這兩種演算法在具體的實現過程中存在一定的交叉,但是不同的實現都有所側重。

#### 特徵工程 第一名伏地魔團隊是把特徵工程做到了極致,下圖是他們提取的特徵的概覽

可以看到他們針對大賽所有提供的資料進行有效的特徵提取,他們的演算法裡面有一點特別有意思就是ID類Embedding特徵提取方式,與我們經常使用的One-hot Embedding不同的是,他們使用了DeepWalk的思路。

將左邊的二部圖,通過隨機遊走的方式,構建成一個類似於文件向量的矩陣,然後通過Skip-Gram的方式計算使用者的Embedding特徵。

在建立訓練集合測試集聯絡方面,他們使用的是聚類演算法。聚類演算法的好壞直接受制於特徵的選擇,由於賽題中給的特徵維度較高,所以他們嘗試了2中降維的方式,PCA的降維是最常見的,但是由於PCA是一個線性變換,總體效果要遜色於AutoEncoder的方法。當然在建立起訓練集與測試集連線之後,又在聚類的類別上提取了一些視訊類別上的一些特徵。

#### 模型構造 第二三名的團隊的主要思路在於構建高效的深度網路。下圖分別是第二、三名的網路結構 第2名的網路結構 第3名的網路結構

可以看到,這兩種網路模型幾乎大同小異,大致的思路就是沿用Google的Wide&Deep的網路模型,然後在模型上進行一些針對資料的特殊構造。

##### Wide側 > 這一側主要輸入的是使用者的資訊,主要是一些強記憶的一些特徵,這些特徵大多使用的是離散特徵。 ##### Deep側 > 這一側主要輸入的是一些連續特徵,主要是內容維度的特徵。 除了通用的Wide&Deep的基本網路結構之外,第二名還把手工提取的特徵放入到了網路結構中進行擬合,主要體現在中的網路結構,當然這些特徵需要由於User的不同,而產生不同的特徵表示,所以在輸入到`Item expression`時經過了一個User的Attention。這個Attention學習出了使用者和視訊的互動屬性。 另外值得一提的是,第二名的團隊在對特徵進行降維的時候,並沒有使用AutoEncoder這樣的方法,雖然這種方法要優於PCA。他們使用了一種VAE(差分編碼)的方式,可以將未知影象特徵空間進一步縮小。

第三名的團隊則將使用者以及視訊側的特徵進行顯式地相互作用,主要體現在dense_4desne_6的特徵拼接輸入到FM(Factorization Machines)層以及dense_6desne_4的Cosine相似度特徵。

總結

總起來說,特徵工程是一個需要十分小心的工作,需要對資料及其敏感,而且需要對快手這個App有很深入的瞭解,知道使用者的使用習慣。

設計模型則顯得簡單粗暴一些,最多的工作則是調整網路引數,這需要對模型不同層,不同網路之間有極高的造詣。

### 3. 模型融合 模型融合,俗稱Ensemble。在比賽的過程中,每個團隊都不可能只做出一個模型,也就是說不可能對一份資料只有一份預測結果,所以下面最主要的工作就是怎麼融合這些模型的結果。 比賽中,選手使用到的模型融合方式大致分為3種: 1. 簡單平均。 2. Stacking方式。 3. 反Sigmoid方式,加權平均。 第一種方式相對簡單,就不再詳細介紹。 第二種方式是使用的最多的方法,該方法的主要思路就是把一個模型預測的結果,再輸入到另外的模型中,去擬合最終的目標函式。典型的代表如下。

第三種方式則是對預測結果求反Sigmoid函式(換句話說是logit加權),然後對結果進行加權平均,由於結果相對介紹,加權的全是可以採用暴利窮舉的方式,例如權重在[0.01, 1.33]進行分佈,解析度為0.01,也是很快的。

四、一點點思考

下面就是關於這個比賽的一點點思考,可以看到比賽的思路主要圍繞在兩個方向——特徵工程和深度模型,但是最後使用特徵工程的團隊打敗了深度模型的團隊。這可能跟我們常識有些相違背——深度模型吊打特徵工程。

深度模型可以隱式地提取資料的特徵,具有很好的資料抽象能力。而特徵工程則是顯式提取資料的特徵,需要演算法人員對資料具有極強嗅覺。

具體這兩種方法孰好孰壞留作大家討論。

五、One more thing

最後還是要插播一條硬廣(感覺角色變換的不僅僅是選手到評委,更是技術宅男到皮條客。:)。我們發現有些團隊的成員活在實習或已經工作,但是實習或者工作的部門並不是推薦部門或者不具備一些能夠放到線上應該用的場景。既然大家對推薦、對多媒體內容推薦有這麼高的熱情為何要委屈自己。

俗話說得好,良禽擇木而棲,快手有足多的資料,足夠大的推薦場景,這才是鍛鍊技術最好的舞臺。所以如果你真的對推薦3.0感興趣,歡迎加入我們。