匡文波 陳小龍
個性化新聞推薦系統是目前最為火熱的研究領域,今日頭條、一點資訊等新聞閱讀產品都以自己的個性化算法作為吸引用戶的賣點。然而,新聞的個性化推薦系統是一個極為復雜的系統,需要自然語言處理、特征工程、機器學習、大數據計算等多個領域的知識。
個性化新聞推薦系統在實際的應用中褒貶不一,對今日頭條的一些用戶的訪談,可以發現以目前個性化推薦算法的實際效果來看,由于其往往結合了一些低質內容,利用人性的弱點,導致過度娛樂化的新聞泛濫。這些刺激感官的內容吸引人們點擊,造成了點擊量上的“虛假繁榮”,看似點擊量高,用戶喜愛,廣告效果好,其實卻是在大量推送垃圾信息,造成用戶的“信息成癮”。對于這些存在的問題,除了技術上繼續加強改進外,企業應當改變唯點擊的慣例,注意履行社會責任。政府應當加強引導和監管,對于有問題的企業和平臺予以懲戒。個人來說,應當注意到個性化推薦的雙刃劍作用,使自己不沉溺于其中。
2006年,Facebook最早在其網頁端推出了Newsfeed頁面,讓用戶能夠在個人主頁上以信息流的形式看到朋友們的更新。這個功能最開始并不是很被用戶喜歡,但是隨后Facebook對其不斷進行更新,最終使其成為社交類App的主流信息展現方式。在移動互聯網浪潮來襲之下,Facebook手機App,以及大量其他類別的App,特別是新聞信息類App,也都開始采用這種方式來構建他們的手機頁面。
一、一般熱門推薦算法
熱門推薦算法(Hot)在互聯網早期就發展起來了,新聞網站如雅虎,常常可以看到類似“Trending”的欄目,這些欄目所推薦算法就被稱為熱門推薦算法。熱門推薦算法是一類算法,其本身原理比較簡單,也沒有運用機器學習和人工智能技術,主要還是針對新聞當前瀏覽情況,對全體用戶做無差別的推薦。
(一)聚合計算
熱門推薦算法是基于聚合計算的算法,這種算法使用發表時間、點擊量、點贊量、點踩量、獨立訪客數等指標,綜合給出一個新聞推薦的排序列表。其中,所謂的聚合計算,指的就是數據的加總,包括求和、求平均值、求最大最小值等方式,如此處理完之后,再把結果排序并展示到頁面上。
(二)時間因素
新聞信息很關鍵的一個因素就是信息本身的時新性,其位列新聞價值五大要素之首。因此根據業務場景去合理考慮時間因素的作用是一個成功的Hot類算法的必要條件。
(三)案例
1.Hacker News新聞排序算法
Hacker News(https://news.Ycombinator.com/)是一個很有特色的國外技術創投信息網站。
在Hacker News看來,時間因子對信息的作用是先使其價值快速下降,之后下降的速度會越來越慢。此外,HackerNews關心用戶對新聞主動做出評價的點贊數目,而不關心點擊數本身。這樣的設計可能會使“標題黨”“灌水”類新聞因為沒人點贊快速沉下去,而真正被用戶好評的新聞會排名到比較高的位置,這體現了該網站所有者對優質內容的傾向性。
2.Reddit信息排序算法
Reddit(https://www.reddit.com)是一個國外知名的社交新聞站點。該網站的新聞條目已超過3000萬條,頁面瀏覽量達到370億次,獨立訪客超過4000萬人。
Reddit充分考慮了用戶評分絕對值, 是否正面, 以及發布時間。
第一,時間的因素
從時間角度,Hacker News的算法使得一個帖子的得分隨著時間流逝而下降。而Reddit則選擇是用帖子的發表時間來計算得分,因此一個帖子一旦發表之后得分不會隨著時間流逝而下降。但是新發表的帖子由于其時間t值較大,會有更高的得分。因此,Reddit算法事實上實現了讓一個帖子的相對排名隨著時間下降的效果。
第二,用戶評分的平滑處理
用戶評分絕對值使用了對數函數來做平滑,以適應Reddit這樣高瀏覽量網站。由于對數函數的特性,因此最開始的10票,和接下去的100票,以及接下去的1000票對得分的提升作用是相等的。對數函數的平滑作用,使得某些獲得超高用戶評分絕對值的帖子不至于常年霸榜,使得新的帖子有機會”打敗”它們。
第三,爭議性大的帖子容易得到低分
在Reddit的算法中,如果贊踩數目相當的話,容易導致帖子的得分較低。其他條件一致的話,100贊的帖子與1000贊900踩的帖子實際上會得到一樣的得分。這個特點可能會導致那些比較一邊倒的帖子被頂在頁面上方,而爭議性大的帖子容易沉下去。
二、個性化推薦系統的相關概念及變量
熱門推薦:聚合計算出實時的十大熱門新聞,如國乒退賽等推薦給用戶。這樣的新聞有很大可能會引起用戶關注。
相關推薦:與用戶當前正在閱讀文章主題相關的相關推薦。
用戶的短期興趣:根據用戶最近的行為來進行推薦,比如用戶剛剛閱讀了和“朝鮮”相關的新聞,剛剛在App中搜索了“范冰冰”關鍵詞則識別出用戶短期的興趣是“范冰冰”和“朝鮮”。短期興趣和相關推薦技術上可能是一樣的。
用戶的長期興趣:也叫用戶畫像,是用戶的長期口味,技術上的本質是一組用戶ID所對應的一組Keyword;比如某個用戶常年閱讀軍事相關的新聞,就會形成一組相應的Keyword。長期興趣還會考慮進用戶的地理、年齡、性別、畢業院校等多個人口統計學因素。當然了,長期興趣的推薦可能會不僅僅只使用用戶自身的用戶畫像,可能還會計算與用戶的用戶畫像相似的其他用戶,并找出其他用戶看過而這個用戶沒看過的新聞進行推薦,這就構成了協同過濾。
融合:把以上所述的推薦結果,都打亂了放在一起展示給用戶,就叫作融合。
例如,李老師是一個家住在北京海淀區的軍事迷,他用戶ID為10123,他的用戶畫像可能是這樣的:profiles[10123]={“戰斗機”“航母”“導彈”“重返亞太”“朝鮮”“核武器”“敘利亞”“俄羅斯”“海淀區”“北京”}。(假設系統數據庫只保存10個tag)
我們可以假設這么一個場景,李老師剛剛打開某某頭條App,點擊了兩則題為“朝鮮再次進行導彈試驗引發日本恐慌”,“范冰冰李晨快樂大本營再秀恩愛”。
算法在給李老師做推薦時,會獲取到三類新聞,第一類是當前實時的熱門新聞Top10,第二類是根據李老師長期興趣所推薦的一些軍事、國際及北京海淀區的新聞,第三類則是朝鮮、導彈、范冰冰李晨相關的最新新聞。最終,在App用戶界面上,這三類界面可能是交錯展示的,也就是按一定的比例進行了融合。
三、新聞文本的特征提取
對一篇新聞文本,我們需要對其進行特征提取,這樣才能進行相似度計算。所謂特征,就是用來表征一個新聞,或者一個電影的一組值。比如對一部電影來說,可能有男主演、女主演、導演、國家、語言等這些特征。但是對于新聞文本來說,卻沒有這么簡單。提取新聞文本的特征需要使用TF-IDF方法。
TF-IDF(Term Frequency-Inverse Document Frequency)算法,計算的是一個關鍵詞的權重值(weight)。TF-IDF權重經常被用作信息檢索和文本挖掘領域的應用。
在提供了一個語料庫的前提下,該方法通過統計手段,得出某文本中的某一個詞語的重要性/獨特性。TF-IDF方法中,當一個詞語在給定文本中的出現頻次越高,且在語料庫中包含該詞語的文檔數目越低,則該詞語的權重值(也可以說是得分)越高。TF-IDF算法,以及其的衍生變種算法,常常被搜索引擎用來給網頁打分和排序。
例如:一個文本中總共有100個詞語,其中cat這個詞出現了3次,那么cat的term frequency(TF)值就是3/100=0.03;而假設我們語料庫中有1000萬個文本。其中cat這個詞出現在1000個文本當中,那么cat的inverse document frequency(IDF)就是log(10,000,000/1,000)=4;因此,cat單詞的TF-IDF得分就是0.03*4=0.12。
四、基于內容的推薦(CB)
有兩種截然不同的技術在新聞推薦系統中十分常用:基于內容的推薦和協同過濾。
基于內容的推薦根據用戶畫像進行信息的推薦, 這些用戶畫像是通過分析用戶已經閱讀、收藏或者點贊過的信息來進行構建。 協同過濾算法則是不僅僅考慮信息內容本身, 而更主要靠相似用戶的意見來生成推薦。
兩種推薦方法被廣泛運用在內容行業中, 包括在線新聞聚合網頁、移動端新聞App、門戶網站、問答網站等。這些系統有的讓用戶在第一次進入App時選擇自己關注的領域來構建用戶畫像的標簽, 有的則是通過分析用戶點擊記錄來確定這些標簽, 然后后臺會根據用戶畫像和文章之間的相似性來選擇出個性化推薦內容。
基于內容的推薦,本質上是對用戶畫像與文章特征之間進行相似度計算。用戶畫像與文章特征形式上是完全一致的,都是一組獲得較高TF-IDF權重的關鍵詞的集合。
例如:profiles[10123]={“戰斗機”“航母”“導彈”“重返亞太”“朝鮮”“核武器”“敘利亞”“俄羅斯”“海淀區”“北京”}。
只要對用戶畫像和文章的特征之間計算相似度,然后在所有計算了相似度的文章中,選取相似度最高的K篇文章作為推薦文章發給用戶即可。
五、基于協同過濾的推薦(CF)
協同過濾算法,也叫作社會過濾方法,是一種通過他人推薦來過濾信息的有效辦法。我們生活中,都喜歡跟自己身邊的朋友來推薦一些電影、書籍和音樂,協同過濾就是這種樸素生活思想在算法上的體現。協同過濾首先為你找到和你口味相似的人群,然后把這個人群的選擇推薦給你。
以電影打分為例:
用戶X對電影I的打分,將由n個與其相似用戶的打分進行加權平均得到,每個用戶的權重取決于其與用戶X的相似度Sxy。可以借鑒基于內容推薦的方法,把用戶與用戶之間的相似度計算轉化為用戶畫像與用戶畫像之間的相似度計算,在找到n個與用戶X較為相似的用戶畫像之后,將這X個用戶的用戶畫像中X所沒有的關鍵詞與用戶X的用戶畫像進行合并,構成一個群體畫像。然后,再把這個群體畫像看作一個用戶,與各個新聞文本特征之間計算相似度,進行推薦。
六、矩陣分解方法(MD)
矩陣分解方法(Matrix Decomposition),也叫隱含因子模型(Latent Factormodel),最早出現在電影評價和商品評價類別問題上,是一種通過把用戶對商品評價矩陣分解為用戶對隱含因子的偏好矩陣和商品中包含隱含因子的情況矩陣這么兩個矩陣來實現有效推薦的模型。我們可以形象地理解,認為用戶對導演、電影類型、電影主演等多個隱含因子的偏好,那么包含了用戶偏好更多的一部電影,就會被用戶喜歡的更多。不過隱含因子模型的神奇之處在于,這些隱含因子都是通過矩陣分解方法得到的,并不是我們認為從電影中提煉出來一系列特征。因此,有時候這些隱含因子并不是很容易去用容易理解的因果關系來解釋。
在新聞推薦問題中,隱含因子的應用難度比較大,這主要是由于新聞推薦問題中我們往往只有用戶是否閱讀新聞的數據,而沒有打分的數據,因此無法進行有效的矩陣分解。另外,矩陣分解的計算量十分巨大,這也影響了其在新聞推薦問題中的應用。
七、推薦系統的融合
在實際新問題推薦中,單一使用某種推薦算法的效果往往不會有簡單熱門推薦的效果。因此,最好是將熱門推薦,基于內容的推薦,基于協同過濾方法的推薦,乃至其他推薦方法得到的結果,進行某種形式的融合,得到一個帶有各種算法推薦出來的新聞的集合,再展示給用戶。
一般的融合算法可以是簡單的線性融合,也就是說每個算法的結果被賦予一個固定的比例,然后簡單的加在一起。
八、結論與展望
個性化推薦算法的出現,是大數據和人工智能技術發展的必然結果。 個性化推薦算法成功地開辟了除搜索引擎之外又一條滿足用戶個性化信息獲取的道路, 大大提升了網絡上浩如煙海的信息被利用的效率, 因此其從技術上是一個值得肯定的進步。
有時候用戶過去所點擊的文章,并不是其真正本來想看的, 很可能是被標題吸引而點進去, 從而導致注意力轉移的一種點擊。由于被用戶的點擊所指引,算法可能進一步推薦被點擊過的話題相關的文章,從而往往導致低俗新聞泛濫和信息繭房娛樂至死的問題。
但是, 我們也應該看到,由于目前自然語言處理的局限,我們對文章內容含義無法做到深入理解,只能從其特有高頻關鍵詞層面進行標簽層面的相似度匹配,這樣產生的膚淺層面的話題、標簽推薦內容, 與用戶氣質、性格、生活方式不相匹配,不全是用戶需要的推薦。計算機只能幫助我們快速完成簡單重復工作,很難更深層次地滿足新聞閱讀中的心理需求。 這是未來個性化推薦系統需要依靠人工智能技術解決的問題。
參考文獻:
[1]Fast company.com. Fac-
ebooks News Feed just turned 10.https://www.fastcompany.com/4018352/facebooks-news-feed-just-turned-10.
[2]G.Linden,B.Smith,and J.York.Amazon.com recommendations:Item-to-item collaborative filtering.In IEEE Internet Computing,7(1):76-80,Jan.2003.
[3]Abhinandan Das,Mayur Datar,Ashutosh Garg,Shyam Rajaram.Google News Persona lization:Scalable Online Collaborative Filtering.WWW2007/Track:Industrial Practiceand Experience,p271,http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.80.4329&rep;=rep1
&type;=pdf.
[4]Jure Leskovec,Anand Rajaraman,Jeffrey David Ullman.Mining of Massive Dataset,chapter3,section4.
[5]Jure Leskovec,Anand Ra-
jaraman,Jeffrey David Ullman.Mining of Massive Dataset,chapter3,section5.
[6]Thomas Hofmann.Probabilistic Latent Semantic Analysis.http://www.iro.umontreal.ca/~nie/IFT6255/Hofmann-UAI99.pdf.
[7]IBMAnalytics.What is MapReduce?ibm.com,https://www.ibm.com/analytics/hado-
op/mapreduce.
[8]Jiahui Liu,Peter Dolan,Elin R?nby Pedersen,Personalized news recommendation based on click behavior,ACM New York,NY,USA?2010;https://dl.acm.org/citation.cfm?id=1719976.
[9]Lauren Johnson.Heres a Time line of Yahoos 22-Year History as a Digital Pioneer.Adweek.com.http://www.adweek.com/digital/heres-timeline-yahoo-s-22-year-history-digital-pioneer-172663/.
[10]Amazon.com.What is St-
reaming Data?Aws.amazon.com.https://aws.amazon.com/strea-
ming-data/.
[11]Amir Salihefendic.How Hacker News ranking algorithm works.Medium.com,https://medium.com/hacking-and-gonzo/how-hacker-news-ranking-algorithm-works-1d9b0cf2c08d.
[12]Amir Salihefendic.How Reddit ranking algorithms work.Medium.com,https://medium.com/hacking-and-gonzo/how-reddit-ranking-algorithms-work-ef111e33d0d9.
[13]Jure Leskovec,Anand Rajaraman,Jeffrey David Ullman.Mining of Massive Dataset,chapter3,section5.
[14]Jure Leskovec,Anand Rajaraman,Jeffrey David Ullman.Mining of Massive Dataset,chapter11,section1.
作者簡介:匡文波,中國人民大學新聞學院教授、博士生導師,中國人民大學新聞與社會發展研究中心研究員,全國新聞自考委員會秘書長,中國科技新聞學會常務理事;陳小龍,中國人民大學新聞學院研究生
編輯:徐 峰