zoukankan      html  css  js  c++  java
  • 浅析新闻推荐及个性化推荐的领域相关性

    http://www.resyschina.com/2010/10/news_recommendation.html

    关于推荐系统是不是可以做成跨领域的通用系统,有过很多讨论。但从做一个好的推荐系统的角度来看,我们觉得和领域知识的结合是密不可分的。然而,目前我们所接触到的较为普遍的做法是比较重算法,而忽略了之前的领域问题分析和对数据的把握。一般是准备好数据(抽取成经典的user-item矩阵)之后,选几个比较经典通用的算法(user/item-KNN, 矩阵分解等)跑一跑,选个好的结果。 这样做比较方便快捷,但往往因为忽略了领域自身的特点,而错过了很多改进的机会。

    因为我们组之前做过些新闻(这里的新闻除了包括传统的新闻外,还指博客、微博、rss feed等, 因为它们具有以下的共性)推荐方面的工作,而且我个人对Google News的个性化一直也比较关注,今年初在IUI开会时,遇到做Google做news推荐的Peter Dolan,正好有一篇他们的paper(Personalized News Recommendation Based on Click Behavior)讲最近news推荐的情况,结合之前他们在www2007发表的Google News Personalization: Scalable Online Collaborative Filtering,可以让我们对Google做新闻推荐的过程有个相对清晰的了解。尤其是最近这篇paper,就向我们展示了如何考虑领域特点和数据特点,有效改进推荐系统。下面我就顺着这个思路,谈一下新闻推荐的几个特点,以及Google和我们在这方面做的一些工作。

    Google的第一篇文章,也可以看做他们做新闻推荐的第一个阶段,是一个从无到有的过程。 他们采用了三种方法做推荐,LSH/Minhash, PLSI 和co-visition。前两种都是用于聚类,把每一个用户都分到他所属的类中,然后将该类用户的集体点击行为聚合在一起,作为对当前用户的推荐。 Co-visition就是一种item-based的推荐方法,通过发行item之间的关联性来做推荐。可以看到,在这一阶段,他们最关心的是可扩展性scalability的问题,LSH/Minhash是很快速并且很容易并行化的方法;而PLSI又在各领域表现不俗,因而他们也实现了mapreduce版本,并用到新闻推荐里面来。最后的实验表明,这3种方法综合运用起来能取得最好的结果,比向用户推荐popular的新闻提高了38%。后来Amazon出来的Greg评价说这个数值,比他们在电子商务中用CF来做推荐相对于推荐流行商品,提高的要少得多。我想这可能跟算法有一定关系,但也跟两个领域不同相关,因为在新闻领域,由于用户对热门流行的需求相对较强,所以popular的方法效果不会很差,因此在这个基础上提高38%也算不错的结果了。

    今年IUI上他们的这篇paper, 可以看作是第二阶段。针对新闻领域自身的特点,直接用前面的协同过滤解决不了的时候,对原有算法做的补充和增强。新闻领域有如下几个特点:一是新闻这种item的时效性很强,更新速度快。比如一个大的新闻网站,新闻条目的总数和Amazon上商品的总数是差不多的,但是新闻条目的更新速度是远远快于商品的,即它的生命周期非常短,可能只有几个小时或几天。这对推荐系统的性能架构和推荐质量(用户满意度)都提出了更高的要求。随之而来就产生了first rater问题,即一则新的新闻,可能才出来的一段时间,浏览点击的人非常少或基本没有,这样一般推荐算法就推不出来;如果等到数据积累够了,可能已经过了若干小时了。二是新闻领域里的用户—读者,更容易受流行和热门的item影响。因为毕竟大家都对当时当地的热点事件很好奇,而且点击一则热门新闻的成本显然比购买一本流行书的成本低很多。因此,如果一则新闻非常流行,很多人都去看,就像大家的购物篮里面都有这个东西一样,计算和其他item的相关性时,它就很占便宜,往往容易被推荐出来。

    为了解决上面两点问题,首先他们对新闻读者提出两点假设:即新闻读者的点击行为是受其长期的兴趣点(也处于不断演化的过程中)影响的;新闻用户是受当前热点流行趋势影响的;两者共同作用,导致了用户的点击行为。接着从log分析中印证了这两点假设,给出了个体用户和群体用户的行为统计特征。这一步往往是我们容易忽略的地方。

    从这里,也可以看出为什么要用profile-based的推荐去对协同过滤做补充。Profile-based的推荐是为每个用户显式的生成一个若干维的兴趣特征向量,表明用户在每个维度上的兴趣程度,这可以看作是一种基于内容分析(content-based)的做法,因此文章的一个要点,就是用content去和原来的CF推荐做融合hybrid,一定程度上解first-rater问题。因此后面做算法设计的时候,也是先基于每个用户的profile,用概率来判断用户对某类文章的感兴趣程度。另外抓得比较好的一个点,就是利用当时当地的趋势,来影响用户,并且也都统一到一个概率框架下。从在实际上线系统中测试的效果来看,这种profile和CF hybrid的方法,平均提高了30.9%的CTR, 同时将网站访问频率提高了14.1%。

    整篇文章读起来感觉问题明确,条理清晰,方法也简单有效。当时和Peter聊的时候,他也反复强调的是对数据的理解和问题的建模,用多么高级的算法倒在其次了。注:对解决新闻推荐中新item新用户问题,有兴趣的同学,也可以看看Yahoo的这篇文章Personalized Recommendation on Dynamic Content Using Predictive Bilinear Models,发表在WWW2009。

    此外,我们觉得新闻领域的另一特点是新闻的展现问题。通常一条条新闻排列的方式,让用户很难快速的从中找到感兴趣的东西;时间长了也会视觉疲劳。因此去年我们做的一个工作,就是希望通过引入可视化和交互式推荐的方式来一定程度解决这个问题,发表在今年的ACM RecSys上Who is Talking about What: Social Map-based Recommendation for Content-Centric Social Websites。虽然用户浏览时通常主要关心的是内容本身,但如果我们告诉用户,具有哪些特征的人,在关注并谈论这些内容,用户也会有兴趣知道。因此,我们扩展了传统的标签云,将对内容的总结(左侧红色)和人的特征的总结(右侧蓝色)同时放在一张图上,让用户可以迅速发现感兴趣的内容和知道“谁在谈论什么话题”(who is talking about what)。例如下图中带框的一部分,就是在说来自IBM Lotus产品部门的一群人,关注lotus Connection Quickr等产品相关的内容。

    无独有偶,最近 DailyMe(美国一专门从事新闻类个性化服务的公司)发布的 Newstogram™ 个性化平台上,也体现了这一点。从下图中可以看到,左侧是一个关于内容的标签云,右侧他们用不同的人物图标和左侧相对应,比如某类女士关心的是乳腺癌,生活方式等;某类男士关心的是运动,通用汽车等。


  • 相关阅读:
    ElasticSearch Index API && Mapping
    jQuery静态方法type使用和源码分析
    jQuery原型属性和方法总结
    jQuery原型方法first,last,eq,slice源码分析
    jQuery原型方法.pushStack源码分析
    解决浏览器窗口变小后右侧出现空白背景颜色或者图片不能全屏填充的方法
    js方法实现rgb颜色转换成16进制格式的代码的方法
    一个解决表单中的文字和文本区域(textarea)上对齐的方法
    jquery原型方法map的使用和源码分析
    jQuery原型方法each使用和源码分析
  • 原文地址:https://www.cnblogs.com/lexus/p/2268935.html
Copyright © 2011-2022 走看看