YouTube的推薦系統是是世界上規模最大、最復雜的推薦系統之一。最近Google的研究人員公布了他們投到今年ACM會議的一篇文章,詳細介紹了他們最近利用深度神經網絡實現YouTube推薦系統的技術細節。相關會議也會將于本月15號至19號在美國波士頓召開。
YouTube的全球用戶已經超過十億,每秒上傳的視頻長度以小時計。視頻“語料”庫存日益增長,就需要一個推薦系統及時、準確地將用戶感興趣的視頻不斷推薦給用戶。相比其他商業推薦系統,Youtube推薦系統面臨三個主要的挑戰:
規模?,F有絕大多數可行的推薦算法,在處理YouTube級別的海量視頻就力不從心了。
新鮮度。YouTube視頻“語料”庫不僅僅是儲量巨大,每時每刻上傳的新增視頻也是源源不斷。推薦系統要及時針對用戶上傳的內容進行分析建模,同時要兼顧已有視頻和新上傳視頻的平衡。
噪聲。由于用戶行為的稀疏性和不可觀測的影響因素,用戶的歷史記錄本質上難以預測。
因此YouTube推薦引擎很難獲得用戶滿意度的真實信息,取而代之的是使用帶有噪聲的反饋信號建模分析。
此外,與視頻內容相關的元數據通常結構不良、沒有明確定義的本體,這也對推薦算法的魯棒性很有挑戰。
YouTube網頁推薦效果示意圖:
和其他Google產品一樣,YouTube推薦系統也將研究重點轉移到深度學習,它是基于Google Brain開發的。而Google Brain已經開放源代碼,也就是現在風頭正旺的TensorFlow。TensorFlow給YouTube推薦系統帶來了開發測試上的靈活性,在會議文章中也有體現。
整個模型的深度網絡配置大概需要學習十億個參數,并且使用了數千億的數據進行訓練。
系統概況
YouTube推薦系統主要由兩個深度神經網絡組成:
第一個神經網絡用來生成候選視頻列表;
第二個神經網絡用來對輸入視頻列表打分排名,以便將排名靠前的視頻推薦給用戶。
候選視頻生成是依靠協同過濾算法產生一個寬泛的針對用戶的個性化推薦候選名單。排名神經網絡是基于第一個候選生成網絡的列表,提供更精細的區分細化,從來達到較高的推薦命中率。通過定義目標函數來提供一系列描述視頻和用戶的特征,排名網絡則根據目標函數來給每一個視頻打分。分數最高的一組視頻就被推薦給用戶。
兩級推薦系統的好處是可以處理海量(百萬量級)視頻,且保證推薦給用戶的視頻是個性化的或者有吸引力的。
此外,這種分級設計可以使用其他來源產生的候選視頻,而不必完全依賴于來自第一個神經網絡的輸出。
推薦系統在開發和訓練階段也和其他深度學習技術一樣,采用了各種量化指標,如準確率、覆蓋率、排名損耗等等。但是為了最終確定算法或者模型的有效性,Google團隊還采用了A/B測試。通過A/B測試,可以衡量例如鼠標點擊率、觀看時間以及其他量化指標的微妙變化和聯系。這一點相當重要,因為很多時候A/B測試跟離線實驗并不相關。
候選推薦生成
在候選生成階段,針對每個用戶,上百個相關的視頻從YouTube的視頻語料庫中被選出。推薦過程可以看作是基于排名損失的矩陣分解。Youtube推薦系統早期的迭代是使用淺神經網路,根據用戶觀看記錄,模仿矩陣分解的過程。
現在的手段則可以看作是矩陣分解的非線性實現。
實際上目前很常用的基于協同過濾的推薦算法,本質上就是針對高維度的輸入數據進行矩陣分解。而YouTube推薦系統中的候選推薦生成網絡,恰好高效準確的模擬出矩陣分解的非線性實現了。這也恰好體現了深度學習在實際工程應用里的普適性。
以分類方式進行推薦:
YouTube推薦系統中的推薦過程被當作極多種類的分類來處理。模型中含有幾百萬個種類,要從中選出N個視頻,整個過程僅耗時幾十微秒。
模型架構:
受NLP中連續詞包的啟發,推薦系統在固定詞匯表里獲取每個視頻的高維嵌入,再將這些嵌入輸入進一個前向傳輸神經網絡。嵌入是通過其他網絡參數共同學習的,通過正常的梯度下降后向傳輸來更新模型參數。
異質信號:
使用深度神經網路來實現矩陣分解一般功能的關鍵好處之一是:任意連續的特征和分類特征都可以隨時加進模型中。搜索歷史與觀看歷史同樣處理——每一個查詢用單字組和雙字組標記,每一個標記都被嵌入。
嵌入后的用戶查詢代表了總結過的密集搜索歷史記錄。人口分布信息則為新用戶推薦提供先驗信息。用戶的地理位置和設備信息都嵌入并鏈接在一起。
標簽與上下文選擇:
自然的視頻消費模式一般會導致非對稱的共同觀看概率。
針對特征與網絡深度的實驗:
增加特征和網絡深度會顯著改善推薦系統性能。
排名系統神經網絡
排名神經網絡的主要作用就是根據印象數據,針對特定用戶定制和校準推薦。采用了預期觀看時間建模測試推薦效果,正對隱藏層的實驗表明:更深更寬的ReLU層顯著減小了錯誤預測的比例。
YouTube推薦系統被分成兩部分來處理兩個截然不同的問題:候選生成和排名。這種深度協同過濾可以有效的吸收多種信號,并且通過深層網絡對信號間的相互作用建模學習。
候選生成網絡的性能優化可以從離線量化測試和在線A/B測試看出。排名網絡的性能提升,相比之前線性或樹狀方法,對觀看時長的預測更為準確。深度網絡能供有效針對上百種特征間的非線性相互作用建模分析。
對數回歸被稍作修改:用于訓練的正面例子以觀看時間加權,反面例子被設為單元值。這種方法相比于直接預測點擊率能更準確的基于觀看時間加權排名評估指標。