论新闻个性化推荐系统
2018-06-30匡文波陈小龙
匡文波 陈小龙
个性化新闻推荐系统是目前最为火热的研究领域,今日头条、一点资讯等新闻阅读产品都以自己的个性化算法作为吸引用户的卖点。然而,新闻的个性化推荐系统是一个极为复杂的系统,需要自然语言处理、特征工程、机器学习、大数据计算等多个领域的知识。
个性化新闻推荐系统在实际的应用中褒贬不一,对今日头条的一些用户的访谈,可以发现以目前个性化推荐算法的实际效果来看,由于其往往结合了一些低质内容,利用人性的弱点,导致过度娱乐化的新闻泛滥。这些刺激感官的内容吸引人们点击,造成了点击量上的“虚假繁荣”,看似点击量高,用户喜爱,广告效果好,其实却是在大量推送垃圾信息,造成用户的“信息成瘾”。对于这些存在的问题,除了技术上继续加强改进外,企业应当改变唯点击的惯例,注意履行社会责任。政府应当加强引导和监管,对于有问题的企业和平台予以惩戒。个人来说,应当注意到个性化推荐的双刃剑作用,使自己不沉溺于其中。
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.
作者简介:匡文波,中国人民大学新闻学院教授、博士生导师,中国人民大学新闻与社会发展研究中心研究员,全国新闻自考委员会秘书长,中国科技新闻学会常务理事;陈小龙,中国人民大学新闻学院研究生
编辑:徐 峰