《转载》http://geek.csdn.net/news/detail/38182?spm=5176.100239.blogcont54403.24.cdrYaA

作者:Alexander Spangher
译者:李雅慧
原文链接:Building the Next New York Times Recommendation Engine


《纽约时报》每天发布超过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则通过妥协方法计算出来。

妥协方法允许我们在处理噪音数据时更稳健。我们还注意到,这个方法还令推荐给读者的冷门信息减少了,读者被推荐了更多的与其偏好不太相同但又感到意外欣喜的内容。

通过进一步提高算法速度技术,我们能在一毫秒内计算出读者偏好,将推荐算法应用于所有注册用户。

结论

通过使用话题对文章内容和读者偏好进行建模,然后基于阅读模式调整,我们“重组”了《纽约时报》推荐系统。

如今,该系统已大规模应用了协同话题建模中的前沿技术,与以往的推荐算法相比,性能显著提升。

我们希望推荐系统能够使《纽约时报》不断变化,在恰当的时机为读者推送有意思的文章。推荐系统还能为我们提供文章如何选材和可能吸哪些读者方面的建议。


《纽约时报》如何打造新一代推荐系统相关推荐

  1. 纽约时报杂志关于区块链最好的一篇深度报道

    编译:张震.Edison.Rik 来源:纽约时报杂志 原文网址:http://suo.im/3EK3mC 最近,奇虎360创始人周鸿祎发布朋友圈,转载纽约时报杂志文章<骗子.假先知们一夜暴富背后 ...

  2. 独家:被纽约时报、华尔街日报报道的Senior Living是如何成为美国养老产业的“流量IP”?

    开篇: 如果说养老行业有什么"竞争壁垒",那么"流量"无疑是最重要的那一个,未来,掌握老年流量入口的企业将拥有更多的话语权,以及基于这些流量的各种创新业务. 图 ...

  3. 纽约时报:硅谷企业兵败中国 但硅谷文化已落地生根

    北京时间12月5日消息,据<纽约时报>报道称,最近几年,中国科技产业欣欣向荣,展现出强大的创新力,从某种程度上讲,中国科技企业在网络上做得比美国企业还要好.中国既不主张反抗,也不主张破坏, ...

  4. 《纽约时报》最新撰文:AI已成必需品,机器人记者正在崛起

    原作:纽约时报  腾讯科技 编译  量子位 转载 | 公众号 QbitAI AI狂飙突进,机器人记者迅速崛起. <纽约时报>广泛调研后撰文称,随着记者和编辑发现自己成为数字出版商和传统报业 ...

  5. 麻将算什么? 纽约时报竟然暗藏着世界上最早的区块链

     图片来自Ittai Abraham / Twitter 树大招风易,人红是非多.区块链的火爆带来了层出不穷的段子,就比如,有一种观点"认为"区块链起源于中国:比特币算什么,麻 ...

  6. 纽约时报:近1/3美国顶尖AI科学家来自中国,88%中国籍博士会留下建设美利坚...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 一璞 雷刚 发自 凹非寺  量子位 报道 | 公众号 QbitAI 「Make Ame ...

  7. 试水区块链出版?纽约时报在招人了

    本周三纽约时报发布了一份招聘信息,"正在寻找帮助新闻出版商设计基于区块链的概念证明的人",这意味着纽约时报也要试水区块链技术了. 据外媒报道,为了启动这个项目,纽约时报正在寻找一个 ...

  8. 纽约时报:人们正成为移动通讯的奴隶

    北京时间8月22日消息,纽约时报发表美国著名经济学家.政经评论家.电视节目主持人本•斯坦(Ben Stein)的评论文章,指出在现代生活中,人们因为无处不在的移动通讯,丧失独立思考.体会孤独的能力,正 ...

  9. 帝国cms重置管理员_重新设计《纽约时报》 CMS飞行员

    帝国cms重置管理员 1.什么是飞行员? (1. What Is Pilot?) For 10 weeks, I joined The New York Times's Story Formats t ...

最新文章

  1. apache强制https访问
  2. 07Oracle Database 数据表
  3. iBATIS.NET 学习笔记(五)
  4. Spring-学习笔记07【银行转账案例】
  5. 职业高中计算机网络试讲稿,2021教师资格证考试面试高中信息技术试讲稿——《建立数据库的基本过程》...
  6. toj 4612 A Shooting Game
  7. 详细讲解C++ 类的继承
  8. Doris之DataX doriswriter
  9. Bailian3728 Blah数集【数学+set】
  10. 【Python学习笔记之一】Python关键字及其总结
  11. 1.Ubuntu Server下搭建LAMP环境
  12. scrollbar wpf 高度_Wpf ScrollBar自定义样式
  13. php编网页版计算器,php编程实现简单的网页版计算器功能
  14. 分布式高可靠:流量控制
  15. 修改谷歌浏览器ua的简单方法
  16. 国家高新技术企业即将启动
  17. webpack - 基础打包实现
  18. 应对百度“清风算法”的策略和方法
  19. 火鸡节日特辑,亚马逊12.99超值午餐配送开始啦
  20. 一键换机或者克隆的原理分析

热门文章

  1. 2.6 情态动词must 被动语态
  2. J2SE在线中文API
  3. UE4第三人称射击游戏总结二
  4. 用友java笔试_用友Java类笔试题大全
  5. 好用的机电revit软件丨revit中怎么画球体,半球体,椭球体?
  6. 2023 点击微信号复制跳转微信网页源码
  7. python 中os.path 的一些路径常用函数
  8. 从SplashScreen深度探讨App启动画面的前世今生
  9. 惠普envy x360 15 MAC安装
  10. MIMEMultipart类型