天天看點

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

作者:阿裡雲MVP田亮

一、産品背景

克拉克拉(KilaKila)是國内專注二次元、主打年輕使用者的娛樂互動内容社群軟體。KilaKila 推出互動語音直播、短視訊、對話小說等功能,滿足當下年輕使用者個性化、碎片化的文娛需求。其中短視訊每天都有海量的視訊素材産生,這對使用者造成了嚴重的資訊過載,難以從中自主挑選感興趣的内容。每一位視訊内容的消費者同時也是生産者,期望自己的作品能夠被更多的志同道合者所看到,獲得最大的曝光度。

為解決以上沖突,考慮建構個性化推薦系統,在不需要使用者明确說明更多資訊的情況下僅僅依靠分析使用者的曆史行為資料,為使用者推薦他可能感興趣的内容。同時,推薦系統能夠有效挖掘長尾内容,使一些小衆的主題作品能夠獲得盡可能多的展示機會。面對以上業務訴求,經技術調研後決定使用阿裡雲PAI平台搭建基于KilaKila二次元UGC的個性化智能推薦系統,即個性化和排序技術為基礎的熱門視訊推薦服務。

二、整體架構:

推薦系統整體架構分為兩個階段,即召回階段+排序階段。召回階段可以由若幹召回通道組成,根據使用者的曆史興趣和曆史行為從千萬級别的視訊庫中挑選出一個候選集,候選集遠小于視訊庫但大于最後呈現給使用者的推薦清單。

在推薦系統中采用協同過濾算法生成視訊候選集,候選集中都是使用者可能會感興趣的内容。

排序階段則是在召回的候選集上根據相應的名額,如覆寫率、滿意度、新穎度等綜合各個召回通道的結果對候選集中的内容進行更加精準的計算并排序,達到從候選集中進一步挑選出使用者最可能的感興趣的高品質内容,生成推薦清單,一般為1000左右。我們使用LR+GBDT算法模型對召回階段的視訊候選集進行打分排序,該模型首先被Facebook在2014年提出,模型內建了LR和GBDT的優點。GBDT發現有效的特征組合Feature Set,然後将Feature Set引入到LR模型中。該技術方案目前廣泛使用在各大網際網路公司推薦系統中。KilaKila推薦系統整體架構如下圖1所示:

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

▲圖1 KilaKila推薦系統整體架構

該視訊推薦系統主要以阿裡雲機器學習平台(PAI)和MaxCompute

數加平台搭建的,如下圖2所示:

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

▲圖2 阿裡雲機器學習平台

三、日志采集

使用者在使用KilaKila APP時會産生各類行為日志。針對行為日志采集環節,我們選擇了阿裡雲日志服務(Log Service)。該元件首先在本地伺服器部署Logtail服務,該服務将日志實時傳輸到LogHup所配置Log Store中(Topic)。在Log Store基礎上通過投遞服務将海量日志同步到MaxCompute資料倉庫中供批處理離線計算。與此同時,該海量日志也會被storm叢集用于實時消費,滿足實時業務和模型實時回報。 如下圖3所示:

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

▲圖3 阿裡雲日志采集

四、特征工程

  1. 特征正确性

    特征正确是保證模型訓練有效性的前提,該過程需要注意平滑方式、值域上下限。

  2. 特征離散化
  3. 大規模組合
  4. 加強重要特征的作用

    由于模型的參數估計環節存在受多種因素影響的可能性,這種影響會導緻重要特征作用不足。是以可以增強該特征與訓練目标的相關性,例如個性化特征。

  5. 向量化 - embedding

    相關或相似的詞可使用embedding表征使用者和内容來做推薦,避免分别模組化的損耗。如下圖4所示:

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

▲圖4 特征工程

五、召回階段

1. 基于協同過濾的召回

這裡使用基于物品的協同過濾算法,即為使用者推薦與曆史喜歡過物品所相似的物品,這個過程稱之為基于物品的協同過濾算法(ItemCF)。但該過程不是利用物品内容屬性計算物品之間的相似度而是通過分析使用者行為來計算物品之間的相似度。如下圖5所示

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

圖5

該算法主要分為兩步

1計算物品之間的相似度;

2根據物品的相似度和使用者的曆史行為生成推薦清單。

定義物品的相似度

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

其中 |𝑁(𝑖)|表示喜歡物品 i 的使用者數。但該公式會造成任何物品都會和熱門物品有很大的相似度,這不利于挖掘長尾資訊。為了避免推薦出熱門的物品,改進為:

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

2. 基于内容的召回

從曆史記錄中推測使用者的偏好——如果兩個人所看的視訊相似,那麼這兩個人就相似。如果兩個視訊被相同的群體消費,那麼這兩視訊就相似。是以協同過濾的做法根本沒有考慮推薦内容方面的知識結構,也可以說協同過濾算法是内容無關的,是以我們使用多路召回,也就是在協同過濾的基礎上再加上基于内容的召回。

具體思路是将視訊的圖像和音頻分别轉換為圖檔的形式,基于圖檔資料訓練一個深度學習卷積神經網絡模型,該訓練模型分别對每個視訊提取圖像embedding特征向量和音頻embedding特征向量。最後合成基于圖像和音頻的視訊内容embedding特征向量。根據特征向量的相似度對每個視訊召回候選集合。如下圖6所示:

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

▲圖6 基于深度學習的視訊内容了解模型

六、排序階段

在召回階段之後獲得了視訊候選集,但直接将候選集呈現給使用者仍然太過龐大,需要對召回結果做進一步精細化的排序處理。這裡采用流行的 GBDT+LR 模型,模型結構如圖7所示:

GBDT 是基于 Boosting 思想的 ensemble 模型,由多顆決策樹組成,具有以下優點:

(1)對輸入特征的分布沒有要求。

(2)根據熵增益自動進行特征轉換、特征組合、特征選擇和離散化,得到高維的組合特征,進而省去了人工轉換的過程并且支援了多個特征的 Interaction。

(3)預測複雜度與特征個數無關。

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

▲圖7 GBDT+LR 模型

七、模型評估

1. 準确率。

預測準确率是度量一個推薦系統的能力,是最重要的推薦系統離線評測名額。

計算方法:已知一個離線資料集,該資料集包含使用者的曆史行為資料。通過時間将該資料集分成訓練集和測試集。在訓練集上建立使用者的行為與興趣模型,而後将該模型用于預測使用者在測試集上的行為表現并計算預測行為與測試集上實際行為的重合度,TopN 推薦的預測準确率會得到precision和recall兩個度量名額。

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

3. 覆寫率

覆寫率(coverage)描述一個推薦系統對物品長尾的發掘能力,簡單定義為推薦系統能夠推薦出來的物品占總物品集合的比例。

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

其中,系統使用者集合為 U,推薦系統給每個使用者推薦一個長度為 N 的物品清單 R(u)。覆寫率也可以用資訊熵和基尼系數定義。覆寫率為 100%的推薦系統會将每個物品推薦給至少一個使用者。為了更細緻描述推薦系統發掘長尾的能力,需要統計推薦清單中不同物品出現次數的分布,如果所有物品都出現在推薦清單中且出現的次數差不多,則推薦系統具有較好的發掘長尾能力。但是在視訊推薦中視訊品質參差不齊,如果單純為追求覆寫率則會導緻高品質視訊被低品質視訊稀釋,因為在視訊推薦中可以容忍較低的覆寫率。

推薦系統一般都具有馬太效應。評測推薦系統是否具有馬太效應,可以使用基尼系數,設 G1 是從初始使用者行為中計算出的物品流行度的基尼系數,G2 是從推薦清單中計算出的物品流行度的基尼系數,如果 G1

八、 阿裡雲機器學習平台(PAI)應用

KilaKila視訊智能推薦系統是基于阿裡雲機器學習 PAI 平台搭建的,主要處理流程包括資料預處理、特征提取、模型訓練、模型評估、線上實時預測。如下圖8所示:

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

▲圖8 Kilakila模型訓練流程

在資料預處理階段,主要以阿裡雲日志服務(Log Hup)和MaxCompute為中心所建構資料處理系統。

在模型訓練階段,召回過程主要采用協同過濾算法,其根據熱門視訊、興趣視訊、qurey視訊生成召回候選集合;在排序階段使用LR+GBDT模型。在訓練過程中,根據需求和目标不斷的調整參數和融合。

模型評估階段使用PAI平台二分類評估元件和混淆矩陣元件進行模型評估。通過生成可視化評估報告來檢視模型的各種名額資料,例如AUC值,如圖9所示。通過模型評估讓推薦系統變得靈活可控。

在實時預測階段通過使用者行為實時回報提升使用者體驗。此外,根據使用者的實時回報建立使用者的長短期興趣并且建立基于人類記憶遺忘模型來搭建内容基礎品質打分體系。

模型上線後,我們使用ABTest接口系統來評判模型的好壞,主要的評判名額是人均消費視訊個數和視訊曝光點選轉化率。

克拉克拉(KilaKila):借力阿裡雲快速建構短視訊推薦系統

▲圖9 模型auc

至此,整個推薦過程結束。通過阿裡雲所提供的豐富開發套件和算法庫,大大縮短了克拉克拉(Kilakila)從想法到産品落地的研發周期。

繼續閱讀