今日頭條成功的核心技術秘訣是什麼?
AI 研習社按:本文系知名 IT 技術資訊博主@龍星鏢局 獨家投稿,雷鋒網(公眾號:雷鋒網)首發。
資訊產品近幾年持續火爆,賺足了人們的眼球。以今日頭條披露的數據為例:日活躍用戶超過一億,單用戶日均使用時長超過 76分鐘,資訊類產品的火爆程度可見一斑。資訊類產品的火爆讓BAT巨頭坐卧不安,紛紛站出來反擊。手機百度除了搜索框之外,大部分已經被一條條新聞佔據。阿里則是依託UC瀏覽器上線了自己的頭條。騰訊在騰訊新聞之外,從頭搞起了天天快報。
頭條為何能取得成功?很多人會說是頭條的個性化推薦技術做得好,個人認為其實不盡然。本文羅列了相關的個性化推薦技術,特別是資訊推薦常用的演算法,帶大家從「內行」的角度來解密下個性化資訊推薦技術。希望讀者讀後能發自內心地覺得:頭條其實也就那麼回事。
本文主體分以下三個大的部分。除此以外也會在最後用一小節展望下個性化資訊推薦的未來。
個性化資訊產品:先介紹資訊推薦產品是什麼,著重分析其業務特點。
個性化推薦方案:接著介紹資訊推薦所需的技術,著重分析其技術難點。
個性化推薦演算法:最後介紹業界常用的個性化推薦演算法。
個性化資訊產品
資訊推薦產品要解決用戶需求很簡單,一句就可以概括:為用戶找到有趣的資訊。而做到這個需求就要做好兩個關鍵點:
新聞聚合。用戶希望在一個產品里獲取任何他想要或者可能想要的東西,這就要求產品要聚合其他app、網站、甚至線下媒體里的各種資訊,這也是最基本的一個產品特性。
個性化。要去最大程度地理解、猜測用戶的興趣,結合興趣為其推薦相關資訊,這是資訊產品後期衍生出來的一個產品特性。
更進一步,如果將上述兩個關鍵點展開,一個好的個性化資訊產品就要具備以下亮點:
1. 時效性
這是所有資訊類產品共同的特性,而不僅僅是資訊推薦類產品。人們總是希望通過你的產品看到最近發生了什麼,而不是很久之前的老新聞。
2. 精準性
每天發生的事情有很多,對應的新聞稿子也非常多,如果每個都看,信息過載的問題會讓人吃不消。你能否猜出我的興趣,並精準地推薦感興趣的新聞才是用戶關心的,也是用戶能直接感受到的體驗。
3. 豐富性
這點恰是很多用戶最容易忽略的一個點。其實很多用戶才不管這個資訊類產品是怎麼推出來的,對於單個用戶而言,其第一訴求必然是通過這個產品來了解世界,知道每天都在發生什麼,所以新聞的豐富性是最最基本的。
4. 排他性
每天描述同一事件稿子很多,在自媒體時代這個問題更加突出,但用戶只會用有限時間去了解這件事,而不是去研究所有關於這件事的報道,更不想甄別不同報道的差異。所以,用戶往往需要的是一個事情的一兩個報道,保證給我差異化的內容是必須的。
5. 熱門性
誰都不想在周圍朋友們討論熱點事件時,自己是個懵逼,什麼都不知道。這點很關鍵,跟精準性和個性化看起來有點背道而馳,但人性天生就有求同的天性。沒有同樣的話題,生活將會失去太多色彩,不知道該和人交流什麼。
6. 高質量
媒體質量層次不齊,有的文章寫得很好很炫,讀的時候很過癮,但一旦你發現它是一個假新聞或者歪曲報道,你還是對這類文章嗤之以鼻。新聞可以高於事實,但不能背離事實。
7. 合法性
人總是對非法的事情感興趣,如黃賭毒之類。而對於被壓抑的需求,則更是感興趣,如色情之類。但一個偉大的產品,首先必須是一個合法的產品。所以,一切盡在不言中了。
個性化推薦方案
要做到上一節提到的產品特性,有兩條路可以走:人工運營和演算法推薦。在類頭條產品出現之前,請新聞方面專業人才來運營是最穩妥的方式。但人工運營成本越來越高,局限性越來越明顯。走演算法推薦的路,在張揚個性的年代,是一條必由之路。下表簡要對比下兩者的差別。
推薦演算法應用在資訊類產品時有一些挑戰,這也是資訊推薦能否做好的關鍵所在。
可擴展性
推薦本質是建立user和item的關聯,一般問題要麼是user側量級大,要麼是item側量級大,而資訊推薦是典型的「雙大」場景。又由於是高度依賴個性化的場景,還不能簡單地將某一側大幅降維,所以可擴展性顯得尤為重要。
稀疏性
資訊的高度個性化自然而然的帶來一個很棘手的問題就是稀疏性。舉個最簡單的例子,如果將user和item的 點擊行為用矩陣形式表示出來,會發現比一般問題更多的0項存在。而稀疏問題是一直困擾機器學習高效建模的一大難題。
冷啟動
每天都有大量的新聞產生,如何將如此多的新聞快速、合理地冷啟動,儘快將高質量的新聞推給合適的用戶是個大問題。
時效性
不同於商品、書籍、電影、視頻等的推薦,新聞一大特點是生命周期非常短,有的甚至只有幾個小時。如何在最短的時間裡把新聞推給感興趣的人,在新聞進入「暮年」之前發揮它的最大價值是個非常重要的問題。
質量保證
新聞本身量大,且時效性強,如何在短時間裡快速評估每篇稿子的質量和合法性,做到最高效、最精準的內容審核是個大課題。
動態性
這裡的動態性主要體現為用戶興趣隨時間改變、當前熱點隨時間改變。用戶在一天里的不同時刻、不同地點、不同上下文里的閱讀興趣都有所差別,動態在變化。
個性化推薦演算法
圍繞上面這幾個挑戰,業界各大資訊類產品在做推薦時想出了各種招兒來解決,接下來,我們就梳理下業界經典的做法。這裡以產品為主線,以具體要解決的問題為輔線來進行梳理,會集中介紹下Google News、Yahoo Today、今日頭條等產品的推薦演算法,並著重介紹下深度學習在這個領域的最新進展。
Google News
Google News是一款經典的資訊推薦產品,也是後來者競相模仿的對象。2007年,Google News在www上首次發表論文《Google News Personalization: Scalable Online Collaborative Filtering》公開資訊推薦技術。該論文的做法非常自然、簡潔,從論文題目就能看出是CF的落地上線。Google是這樣想的:鑒於大家都覺得CF是推薦領域公認的有效演算法,那將其直接用在產品上效果自然也不會太差。
但經典的CF有個巨大的問題,無論是user-based還是item-based,當你要算任意兩個user或者兩個item之間相似度的時候,計算量會非常巨大。因為CF的計算量直接取決於特徵維數和user、item pairs的數目,而資訊類產品這兩個數目都非常巨大:
每個user、item的特徵因為大多是曝光、點擊等行為類特徵,而資訊類產品這些行為發生的cost很小几乎可以忽略不計,導致維度往往比較高;
資訊類產品的user數目和item數目都很大,這和一般領域往往只有一方比較大是不同的。
Google這篇論文的核心就是將CF改造為支持大規模計算的方法。
其原理也很簡單:將用戶事先分成群,再做user-based CF時實際變成了(user) cluster-based CF。這樣在工程實現上就簡化了很多,線上只需要記錄每群用戶喜歡什麼(實際做法是用到了基於的內存key-value系統,key為資訊ID,而value則是資訊在用戶群上的各種統計值)。一個用戶來了之後,先找到其對應的群,再推薦這個群喜歡的資訊就好。而線下則藉助Map-Reduce實現了MinHash、PLSI兩種聚類分群演算法,定時把最新分群結果推到線上。
為什麼Google News會先選擇協同過濾演算法呢?除了CF演算法在其他場景有成功的應用之外,還有一個重要的特點:CF是一個依賴用戶行為數據就可以work的演算法,它不像其他基於內容推薦的演算法對NLP能力要求很高。選擇CF,則繞過了NLP這個攔路虎(有經驗的人都知道,NLP是一個長期積累的過程,很難一開始就做到比較出色的程度)。透過這篇文章,我們也不難發現工業界解決實際問題時的一個基本套路:重頭做一個模型時,會選擇最經典的一個實現,然後快速上線解決一大半問題。
結合前面總結的資訊推薦的挑戰,可以看到該演算法主要解決了可擴展性問題。我們也不難發現這個user cluster-based的演算法也有一些明顯的缺點:1)它不能解決新用戶、新資訊的冷啟動,因為沒有行為數據來支撐CF運轉;2)推薦精度不夠高,沒有做到真正的個性化。這是cluster-based CF演算法本身的特點決定的;3)實時性不夠。用戶聚類不能做到快速更新,這導致了對用戶最新興趣把握有不及時的風險。這些問題在Google News的另一篇論文中得到了解決。
Google News在www 2010上放出了《Personalized News Recommendation Based on Click Behavior》。這篇文章重點解決推薦精準性和新資訊的冷啟動問題,文章想法也很樸素自然,主要是基於貝葉斯理論進行建模。他們假設用戶興趣有兩個方面:個人不斷變化的興趣以及當前新聞熱點。在具體建模之前,作者先基於歷史數據進行了統計分析,驗證了他們的假設,得到如下基本結論:用戶的興趣是隨時間變化的,新聞熱點也是隨時間變化的。還有一個比較比較有趣的結論是不同地區同一時間的新聞熱點是不一樣的。下圖是不同地區不同時刻體育類新聞的閱讀佔比。
這幅圖縱軸是體育新聞閱讀量在該地區總新聞閱讀量的佔比,越高表示該地區的用戶越喜歡看體育新聞。橫軸則是時間點,用黑線標示出的三個時間點從右到左則分別對應奧運會、歐洲杯以及美國職業棒球大聯盟進行時。而圖中的三條不同(顏色)標示的線則代表西班牙、美國、英國三個地區。不難發現,這副圖不僅揭示了同一地區用戶對體育新聞的感興趣程度是隨時間變化的,更揭示出西班牙、英國等國家更愛看體育新聞。
方法主要建模用戶對當前某類新聞的感興趣的程度,這取決於兩個方面:用戶對這類新聞的興趣度以及當前某類新聞的熱度。通過貝葉斯理論,這兩個方面可以直接用如下公式聯繫在一起:
其中分子左半部分
表示用戶當前對某類新聞感興趣的概率,它是通過最近不同時間段用戶對某類新聞感興趣的程度來匯總計算,而用戶某個時間段內對一類新聞感興趣的程度則通過下式計算。
這個公式粗看起來比較複雜,實際含義其實很簡單,可以理解為簡單統計下某類新聞閱讀量佔用戶該時間段內所有新聞閱讀量的比例即可。而分子右半部分
表示當前本地區某類新聞的熱度(這類新聞被該地區點擊的概率),實際也是統計一下短時間內對這類新聞的用戶點擊佔比得到的。
總體來看,該演算法是非常簡潔自然的,它針對CF遺留的問題進行了很好的解決:1)引入新聞類別解決了新新聞的冷啟動;2)引入用戶興趣解決了個性化和推薦精確度的問題。但新用戶冷啟動還有優化的空間,因為按照這個方法,同一地區不同新用戶推薦的都是該地區最熱門的內容。
Yahoo Today
Yahoo Today團隊2009年在WWW上發表 《Personalized Recommendation on Dynamic Content Using Predictive Bilinear Models》,重點解決資訊推薦里的冷啟動問題。不同於上一篇google news的做法,這篇文章試圖同時解決新用戶和新資訊的冷啟動。本文的基本假設:用戶畫像能刻畫用戶的閱讀興趣,新聞的畫像也可以表示新聞的點擊率,而用戶喜歡一條新聞的程度則取決於靜態預測和動態預測兩個方面,都是用feature-based learning方法來建模用戶對資訊感興趣的程度。具體來講,用戶xi對資訊zj的興趣得分如下計算。
所謂的 bilinear model 的含義當你隱去一個自變數時,另一個自變數和因變數成線性關係。比如下式不考慮z時,s和x成線性關係;不考慮x時,s和z也成線性關係。進一步如果將用戶和資訊的特徵分為靜態和動態兩大類,則上式可寫為:
最後一個等式後面的第一項是靜態預測得分,第二項則是動態預測的得分。
所以當一個新的用戶到來時,第二項的特徵是沒有,相當於僅用用戶的畫像等靜態特徵來解決新用戶的預測問題。當一個新資訊時,也是同樣的道理。靜態特徵如搜集到的用戶的年齡、性別、地域等基礎屬性,以及從其他途徑獲取的如在相似產品上的行為、其他場景上的歷史信息等,還有資訊的類目、主題等。而動態特徵如用戶在Yahoo Today上的各種閱讀、點擊、評分以及加工出來的某條資訊、某類資訊分時間段的各種統計值等。有了預測分s,和真實的label (比如用戶是否點擊一個資訊r(i,j))做個比較就能得到機器學習訓練時的反饋信息。本文優化目標是基於貝葉斯理論推導出來的最大化後驗概率(maximum-a-posteriori, MAP),而優化方法則採用熟知的梯度下降法(gradient-descent, GD)。
2010年,Yahoo又發表了一篇更加有效解決冷啟動的文章《A Contextual-Bandit Approach to Personalized News Article Recommendation》。這篇文章基於傳統的Explore-Exploit(EE)套路,大家可能比較熟悉的是為新item隨機一部分流量讓其曝光,得到一些反饋,然後模型才能對其有較好的建模能力,這是最na?ve的EE策略。
稍微高大上一點的做法則是upper confidence bound(UCB)策略: 假設有K個新item沒有任何先驗,每個item的回報也完全不知道。每個item的回報均值都有個置信區間,而隨著試驗次數增加,置信區間會變窄,對應的是最大置信邊界向均值靠攏。如果每次投放時,我們選擇置信區間上限最大的那個,則就是UCB策略。這個策略的原理也很好理解,說白了就是實現了兩種期望的效果:
均值差不多時,每次優先給統計不那麼充分的資訊多些曝光;
均值有差異時,優先出效果好的。
而yahoo這篇文章,則是對UCB進行了優化,因為UCB對item沒有任何先驗知識,而linUCB可以引入一些先驗知識。比如你在推薦新聞時,可能發現娛樂類新聞天然比體育類新聞點擊率高。如果能把這個信息作為先驗知識考慮進EE策略中,就可以加速EE的效率。LinUCB假設每次曝光的回報是和Feature(user, item) 成linear關係的,然後使用model預估期望點擊和置信區間來加速收斂。
深度學習篇
點擊展開全文


※深度學習下的醫學圖像分析(一)
※讓ML決定貸款:由人工智慧判斷貸款風險
※詳解自動識別驗證碼,LSTM大顯身手
※AI 也能藝術創作了?Facebook說I CAN
※只需 130 行代碼!用 GAN 生成二維樣本的小例子
TAG:唯物 |
※戒色的最核心秘訣:就是修心!
※成功做事的十條秘訣
※羽生結弦的成功秘訣
※好皮膚的秘訣是什麼?
※古今事業成功者的秘訣,全在這裡!
※馬雲能夠成功的六個秘訣
※八成醫生患癌後都成功治癒了,他們有什麼秘訣?
※孩子成功的秘訣
※商湯科技成為獨角獸的秘訣,是人才「黑洞效應」
※熱劇《宮心計2》-李隆基太子能夠成功的秘訣是什麼?
※念佛的秘訣是什麼?
※周人克商的「成功秘訣」——封建制,究竟是怎樣的呢
※「表達的藝術」成功的秘訣
※工作生活都出彩,劉雯成為「硬核女神」的秘訣是什麼?
※成功的十大秘訣
※這些書法巨匠逆襲成功的秘訣,你可知道?
※富商白圭:為何後人稱為商業鼻祖?他成功的核心秘訣……
※成為大熱畫師的秘訣竟然是!
※成功的秘訣,就是這麼簡單!
※劉備成功的秘訣在哪兒,這則成語故事道出關鍵之處