紐約時報:如何打造新一代推薦系統

《紐約時報》每天發布超過300篇文章、博客和鮮活的故事。

通過精煉讀者獲取這些內容的途徑,即在移動應用和網站上基於讀者喜好調整文章布局,能夠幫助讀者找到與他們相關的內容,比如在正確的時間推送讀者感興趣的內容、重大事件的個性化補充內容、符合他們偏好的多媒體格式故事等。

本文將介紹最近在改造《紐約時報》推薦演算法的過程中所做的工作,目前該演算法主要應用於《紐約時報》網站「Recommended for You」(為您推薦)欄目。

歷史

基於內容的過濾

新聞推薦必須要適用於新鮮的內容:許多讀者還沒有瀏覽過的突發新聞。因此,在發布時可用的文章數據就顯得至關重要,這些數據包括:話題、作者、頻道和每篇文章相關的關鍵字標籤。

我們的第一個推薦系統就是根據這些關鍵詞標籤來做出推薦的。通過使用文章的標籤和用戶30天內的閱讀歷史,演算法找出已經被閱讀過的內容相似的文章。

這種方法依賴於內容模型,基於內容的推薦演算法有很多種,它是其中之一。

該方法從一開始就具有很強的吸引力:如果一位讀者閱讀了10篇含有「Clinton」(柯林頓)標籤的文章,那麼以後如果出現含有「Clinton」標籤的文章他們很可能會喜歡。這種方法不僅適用於過去的內容,也同樣適用於新內容,因為它依賴於內容發布時可用的數據。

然而,依賴於內容模型,有時可能產生意想不到的效果。因為演算法是基於標籤在語料庫中的稀缺性來賦予權重的,少見的標籤影響大。絕大多數情況下這種方法有效,但偶爾也會降低用戶的體驗。比如,有位讀者指出,雖然她關注與同性相關的新聞,但她偶爾會在「婚禮」欄目中看到系統給她推薦與異性戀夫婦婚禮相關的報道。這就是因為「婚禮和訂婚」這個低頻標籤曾經在一篇之前的文章中被讀者點擊,因此權重高於其他也許更符合這位讀者興趣的標籤。

協同過濾

為了彌補前述方法的不足,我們測試了協同過濾方法。協同過濾基於有共同特徵的讀者所閱讀的內容來過濾文章;在我們的案例中,「共同特徵」是由閱讀歷史來決定的。

這種方法也頗有吸引力:如果一位讀者的閱讀偏好與另一位讀者非常相似,那麼這位讀者讀過的文章,另一位讀者也可能感興趣,反之亦然。

然而,這種方法在推薦最新發布的未閱讀文章時並不奏效:與某個讀者群相關的最新文章並沒有被這個讀者群中的任何一個讀者閱讀過。協同過濾可能也會在假設情況下以一種狹隘的視角聚集一些閱讀模式。

現行做法

現在看來,結合兩種技術可以取二者所長。我們建立了一種演算法,靈感來源於「協同話題模型」(Collaborative Topic Modeling, CTM)技術,演算法由四部分組成:

  1. 基於內容建模;

  2. 根據監測來自於讀者的信號來調整模型;

  3. 基於讀者偏好建模;

  4. 基於偏好和內容之間的共同特徵來做出推薦。

概述

演算法建模的第一步是把每篇文章處理成與其相關的話題集合。可以把話題看成是一個沒有被觀察到的主題,比如「政治」或「環境」,這個主題影響了文章中我們能夠觀察到的文字。舉個例子,如果一篇文章與環境相關,那麼我們期望文章中出現類似「樹」或「保護」這類單詞。

我們基於每位讀者的話題偏好來對他們建模。然後可根據文章話題與讀者偏好話題的匹配程度來推送相關文章。

下面舉個例子:假設所有上個月《紐約時報》發布的文章都可歸屬於兩個話題,我們基於這個假設來運行演算法。在這個條件下,演算法會大致將這些話題識別為兩類:「政治」和「藝術」。當演算法發現這樣一篇文章:《美國在伊拉克的足跡進一步深入》,這篇文章會被標記為100%的「政治」;當發現A.O.Scott(譯者注:《紐約時報》首席影評人)的一篇影評時,這篇文章會被標記為100%「藝術」。演算法還可對文章混合標記,比如一篇與藝術政治相關的文章:《弗里克博物館放棄遭受質疑的翻新方案》,被標記為50%的「政治」文章和50%的「藝術」文章。

在「政治」–「藝術」空間圖中,也許可以用這種方式來描述:

下一步,假設讀者60%的時間里喜歡閱讀「藝術」文章,在40%的時間里喜歡閱讀「政治」文章。我們可以在圖中用紅色的x表示這位讀者。最為神奇的一點是,他們在空間上接近於與自己興趣一致的文章,即便他們還沒有閱讀過這些文章;我們給讀者推薦的就是在空間上最接近於他們的文章。

還有一些需要進一步回答的問題。這個話題空間圖能捕捉模稜兩可的單詞用法嗎?還有,如何才能最好地觀察讀者偏好?畢竟,用戶點擊並不是最穩健的數據來源:我相信在有時你點擊的內容並不是自己真正喜歡的,有時又錯過了自己會感興趣的內容。

我們仔細測試了很多方案,建立的演算法讓能夠更好的回答這些問題,並且提供了一個新的理解《紐約時報》的強大方法。

演算法由三部分組成:

  1. 如何基於一篇文章的文本來建立該文章的模型。

  2. 如何基於受眾的閱讀模式更新模型。

  3. 如何基於閱讀歷史描述讀者。

第一:如何基於一篇文章的文本來建立該文章的模型

首先,演算法會檢查每篇文章的內容,然後應用「隱狄利克雷分佈」(Latent Dirichlet Allocation, LDA)模型,這是一種內容建模演算法。LDA模型可以學習每篇文章中的所有「話題」:這裡「話題」的正式定義是基於詞彙的分佈。如果一個文檔涉及某個權重值高的話題,那麼文章中可觀測到的文字就更加有可能是在某個話題下權重高的文字。

LDA模型是能夠滿足我們各種目標的快速、準確的方法,可以實現在線推理計算(或者當新文章發布后實時學習話題)。LDA模型趨向于更廣泛的話題(比如「中東」、「電影」、「醫療保健」等),這使得我們可以從不同的角度來關聯不同的片段。

LDA模型基於圖形化模型,該模型可以很容易地進行擴展,整合新的假設和信息。在我們的案例中,擴展模型的方法不僅僅是對文章的文字進行建模,還會對閱讀文章的具體讀者進行建模,這點會在下節介紹。

第二:如何基於受眾的閱讀模式更新模型

LDA模型將單詞作為輸入,但是單詞經常是模稜兩可的:語境、風格和聲音都可以該表單詞的意思。比如,如果蓋爾·科林寫了一篇包含「狗」、「車」和「屋頂」的文章,我們能據此看出來她這是在諷喻嗎?能看出她不僅僅是在寫一篇關於動物或關於汽車的文章嗎?

事實上,純粹的基於LDA模型的方法會賦予「旅行」這個標籤更多的權重,並把蓋爾·科林這篇文章放在下圖中藍點的位置。

然而,大部分閱讀過這篇文章的讀者還閱讀了與希拉里·柯林頓和特德·魯茲相關的文章(在下圖中用紅色x標出的地方),所以我們希望演算法能讓這篇文章靠近圖中綠色的區域,也就是接近「政治」話題。正如與CTM模型相關的論文中描述的那樣,通過將偏移量(offset)添加到模型話題錯誤中,演算法在內容建模基礎上包含了閱讀模式,從而創建了一種混合方法。

通過迭代調整偏移量,然後重新計算讀者評分的方式,CTM模型演算法是可行的。它會正常運行至幾乎沒有什麼需要調整的情況。一個隨機選擇的讀者樣本(稱之為「訓練樣本」)為我們提供了需要的信息。
我們測試過兩種計算偏移量的方法:

  1. CTM模型和

  2. 「協同泊松分解」(Collaborative Poisson Factorization,CPF)。

在線進行A/B測試時,CTM模型表現得更好。

第三:如何基於閱讀歷史描述讀者

用於調整文章話題的方法同樣可以計算讀者偏好,但沒法擴展到所有用戶中。因此,需要一種計算讀者偏好的快速方法,可以生成文章話題后使用。

有一種簡單的方法,即計算所有閱讀過的文章的話題的平均值:如果點擊了一篇標記為40%「政治」話題和60%「藝術」的文章,並且點擊了另一篇標記為60%「政治」話題和40%「藝術」的文章,那麼你在下圖的「政治」-「藝術」話題空間圖中所處的坐標點就是[.5,.5]。

然後,這種方法假設讀者的點擊完全反映其偏好。萬一讀者點擊的是一篇他們不喜歡的文章呢?抑或是他們錯過了可能喜歡的文章呢?解決這個問題的一種方法就是稍微妥協一點,比如說你雖然了點擊了一篇文章,但僅僅是「90%喜歡」這篇文章,而沒有閱讀的文章則是「10%喜歡」。這樣就給分析誤點擊的文章或者錯過的好文章留下了更多空間。

上圖中,綠點表示讀者已讀過的文章,紅點表示讀者尚未閱讀。黑色的x可能是讀者的偏好,這是通過根據已經閱讀過文章的平均值計算出來的,而藍色的x則通過妥協方法計算出來。

妥協方法允許我們在處理噪音數據時更穩健。我們還注意到,這個方法還令推薦給讀者的冷門信息減少了,讀者被推薦了更多的與其偏好不太相同但又感到意外欣喜的內容。

通過進一步提高演算法速度技術,我們能在一毫秒內計算出讀者偏好,將推薦演算法應用於所有註冊用戶。

結論

通過使用話題對文章內容和讀者偏好進行建模,然後基於閱讀模式調整,我們「重組」了《紐約時報》推薦系統。

如今,該系統已大規模應用了協同話題建模中的前沿技術,與以往的推薦演算法相比,性能顯著提升。

我們希望推薦系統能夠使《紐約時報》不斷變化,在恰當的時機為讀者推送有意思的文章。推薦系統還能為我們提供文章如何選材和可能吸哪些讀者方面的建議。


作者:Alexander Spangher

譯者:李雅慧

原文鏈接:Building the Next New York Times Recommendation Engine

版權聲明:本公眾號的內容部分來自互聯網,轉載請註明原文鏈接和作者,如有侵權或出處有誤請聯繫我們。


    官方微信:數據分析精選(sjfxjx),覆蓋大數據與互聯網科技行業8萬人群。

    官方網站:www.aFenxi.Com,數據分析師的網址大全。

    商務合作:請聯繫QQ1339638765


    ↓↓更多精彩內容請點擊原文鏈接精彩不斷



    ---
    資料來源:紐約時報:如何打造新一代推薦系統
    如果內容有不適當或對出處有疑慮,請立即通知客服中心
    值得看看:
    → 
    → 
    → 
    Facebook留言板
    您可能有興趣
    客服信箱
    一則未讀訊息
    發訊息給線上客服