YouTube推薦系統(上):The YouTube Video Recommendation System

這是最先的一篇YouTube的推薦系統的文章,原文來自The YouTube Video Recommendation System。發表於2010年。markdown

YouTube擁有世界上最大的視頻推薦系統之一,在2010年,整個系統還比較簡略,不過也值得了解一下。session

Goal

用戶使用YouTube時通常有三種目的:1. 觀看特定的video;2.觀看特定topic的video;3.瀏覽並尋找感興趣的視頻。推薦系統主要爲第三種需求服務,所以,推薦系統的目標是爲用戶推薦高質量並貼合他們的興趣的視頻,推薦結果應該隨時間和用戶最近的行爲更新。 在YouTube的推薦應用中,存在一些特殊的挑戰:ide

  • 用戶在YouTube上傳的視頻通常沒有很是全的metadata,不少除了題目之外就沒有什麼有價值的信息。
  • YouTube上的視頻通常很短(小於10分鐘),所以用戶行爲也短暫、多變並且噪聲不少。
  • YouTube上的視頻生命週期很短。

這是YouTube的推薦和普通視頻網站的推薦不同的地方,也是如今的不少段視頻公司會關注的問題。函數

系統設計

推薦系統的輸入主要由內容相關的信息和用戶行爲相關的信息組成。其中,用戶行爲包括explicit和implicit feedback。前者是指用戶評分、明確表示喜歡、不喜歡等行爲,後者是瀏覽、觀看等行爲。原始數據中還含有很是多的噪聲,不少不可控因素會影響原始數據的質量。oop

爲了肯定要推薦哪些視頻,文章給出了相關視頻的定義:視頻v的相關視頻是指可能在視頻v以後被用戶觀看的視頻。兩個視頻的相關性由關聯規則挖掘方法來肯定。視頻i和j的相關性定義爲: r(v_i, v_j) = c_{i,j} / f(v_i, v_j),其中c_{i,j}表示v_iv_j共同出現的次數,f(v_i, v_j)是一個和視頻v_iv_j的出現次數相關的函數,最簡單的一個此類函數爲f(v_i, v_j) = c_i *c_j。利用這個相關係數能夠選出與種子視頻v_i相關的視頻集合R_i = r(v_i, v_j)。簡單地說,這個視頻集合是由一個threshold肯定的。測試

Generating Recommendation Candidates

將用戶觀看過的視頻、喜歡過的視頻、收藏過的視頻等等做爲種子集合,再把它們的相關視頻集合合併到一塊兒,就獲得了一個最簡單的召回策略。但實際上,因爲用戶的口味在必定時期每每保持一致,這些種子視頻的範圍每每很狹窄。網站

爲了擴大多樣性,YouTube選擇召回的不是1步相關視頻,而是n-步相關視頻,即種子視頻迭代n次後獲得的相關視頻集合。spa

Ranking

在獲得召回的視頻集合之後,須要對這些相關視頻進行排序。 用於排序的數據主要包括:設計

  • 視頻質量:包括觀看次數、視頻評分、評論、喜歡和分享次數等等
  • 用戶數據:視頻和當前用戶的興趣的match程度
  • 多樣性:要在被推薦的視頻集合的類別中作一個平衡,以保持結果的多樣性

這些數據最終被線性組合起來,獲得ranking的評分。code

其餘

文章還提到了其餘一些細節:

  • 推薦理由:推薦視頻時會給出相關種子視頻的連接,以解釋爲何推薦了該視頻
  • 底層使用了BigTable和MapReduce
  • 使用A/B測試系統來測試結果
  • 使用click through rate (CTR), long CTR (only counting clicks that led to watches of a substantial fraction of the video), session length, time until first long watch, 和recommendation coverage (the fraction of logged in users with recommendations)等做爲評價指標。
相關文章
相關標籤/搜索