专栏名称: AI前线
我们专注大数据和机器学习,关注前沿技术和业界实践。每天发布高质量文章,技术案例等原创干货源源不断。同时有四千人的社群微课堂,每周一次业界大牛技术分享,也希望你能从这里分享前沿技术,交流深度思考。
目录
相关文章推荐
51好读  ›  专栏  ›  AI前线

推你想看的,Twitter如何在信息流中大规模应用深度学习

AI前线  · 公众号  · 大数据  · 2017-06-02 19:58

正文

不知道微博上多久没有收到主动推送的关心的亲友消息了;广告除外。可见信息流做好不是一件容易的事情。Twitter 在信息流排序方面,运用了最新的深度学习模型,并在准确度方面获得了显著的成果,促进了用户增长和参与度的提升。更为重要的是这为我们打开了一扇大门,说明我们可以使用由深度学习社区提供的各种新颖的技术,让基于机器学习的产品从这些技术中获益。看到这篇文章之后,我们的社区编辑马上申请了授权,Twitter 的作者表示得很重视,要求翻译后要让他们懂 Mandarin 的工程师审校。
最后Twitter 工程师在我们专业的翻译上,进行了一字一句的审校,如下图:

下面我们看看该文正文吧:)

这篇文章由来自 Twitter 的 Nicolas Koumchatzky 和 Anton Andryeyev 共同撰写,最初发表在 Twitter 的博客上。以下内容已经获得 Twitter 的翻译授权,并已通过 Twitter 的审校,点击阅读原文可查看英文原文:Using Deep Learning at Scale in Twitter's Timelines。

从我们开始对信息流进行改进到现在已经有一年多时间了,我们进一步改进了底层的算法,从而为用户呈现具有更高相关度的内容。

我们将会在这篇文章里介绍我们基于深度神经网络的信息流排序算法,以及由 Twitter 内部 AI 团队 Cortex 构建的 AI 平台和它提供的建模功能。简而言之,现在和未来的 Twitter 信息流将具有更高的相关度。这为我们打开了一扇大门,我们可以使用由深度学习社区提供的各种新颖的技术,特别是在 NLP(自然语言处理)、对话理解和媒体领域。

我们如何对信息流进行排序?

在引入排序算法之前,信息流的组成非常简单:收集所有由你的关注对象在你最后一次登录 Twitter 之后发送的推文,再将它们按照时间倒序显示出来。这个看起来很简单,但要为数以亿计的 Twitter 用户提供这种稳定的体验对我们来说是一个巨大的挑战,它对我们的基础设施和运维能力提出了很高的要求。

在引入排序算法之后,信息流的组成变得更加丰富。在收集推文之后,我们使用相关度模型对它们打分。这个分数是针对每个用户对推文感兴趣程度的预测。具有较高分数的推文被展示在信息流的最上面,其他推文紧随其后显示。根据你的信息流中已有的推文数量以及从你最后一次登录 Twitter 至今的时间长短,我们还可能专门为你提供一个“你可能错过的推文”模块。这个模块只包含少量具有最高相关度的推文。这样做的目的是希望你能够先看到重要的推文,然后再进一步查看按照时间排序的部分。

为了预测推文的相关度,我们的模型考虑到了以下几个特征。

  • 推文本身:鲜活度(recency)、是否包含媒体卡(图像或视频)、互动情况(如转发或点赞次数)。

  • 推文的作者:你过去与作者的互动情况、你与作者之间关系的紧密程度、你与作者之间的关系是如何建立的。

  • 你自己:你参与过互动的推文、你使用 Twitter 的频率和使用程度。我们使用的特征和各种特征之间的关系在不断增长,我们的模型因此能够识别出更为精确的行为模式。

每次在你打开手机或刷新信息流的时候,我们都会对推文进行打分,以便确定哪些推文可以被展示在信息流的最上面。打分这一举动对我们的信息流服务基础设施提出了很高的计算要求,因为我们现在每秒钟要对数千条推文进行打分。虽然更丰富的模型可以提高推文排序的质量,但对于像 Twitter 这样的实时社交公司来说,速度与质量同样重要。Twitter 独特的挑战在于如何为查看信息流的用户进行快速实时的打分,并且拥有足够强大的模型来保证排序质量以及后续的改进。

选择正确的方式来构建和运行预测模型深切影响着每一个用户使用 Twitter 的体验。

信息流排序对机器学习平台的要求

在上一个小节中,我们已经得出这样的结论:要在 Twitter 的生产环境运行这些模型,它们必须满足很多要求。

  • 预测的质量和速度

  • 资源的利用率

  • 可维护性

我们通过两种方式来衡量模型的质量。首先,在进行模型训练过程中,我们使用定义明确的准确率度量指标。这些指标可以告诉我们任务的执行情况,并为相关度高的推文打较高的分数。最终模型的准确率虽然可以作为早期指标,但并不能可靠的预测 Twitter 用户会如何与推文互动。

我们通过运行 AB 测试和比较实验结果来衡量 Twitter 用户的受影响程度。我们所使用的一系列度量指标与 Twitter 的使用情况和受欢迎程度有关。例如,我们跟踪每个用户的参与次数,或者他们在 Twitter 上所花费的时间。在结束一次 AB 测试后,我们不仅能判断新模型是否能够为用户带来更愉悦的体验,还能衡量出模型改进的程度。在像 Twitter 这么大规模的信息流排序系统里,模型的一个很小改进就可以对用户体验带来重大的影响。

最后,即使我们能够达到模型质量和速度方面的要求,要启用一个新模型还会受到一些其他的限制,这个与发布其他功能特性是一样的。我们需要知道模型将会带来什么样的影响,并将它与这个模型可能增加的成本进行对比,在两者之间做出权衡。增加的成本可能来自硬件或者更复杂的运维和支持。

除了预测模型之外,信息流对机器学习框架也提出了类似的要求。我们可以基于这些框架定义、训练、计算和运行预测模型。我们着重关注以下几个问题。

  • 大数据集的训练速度和伸缩性

  • 对新技术的可扩展性

  • 易用的训练、调试、计算和部署的工具

在使用机器学习的开始阶段,选择好的模型(不管它是如何生成的)是最重要的。毕竟,我们是想要验证预测模型的可行性。

不过,随着预测流水线的日渐成熟,机器学习框架的易用性、伸缩性和可扩展性变得越来越重要。一个脆弱复杂且只能被少数几个工程师理解或扩展的框架是不会长久的,就算它有性能方面的优势。随着数据挖掘、特性工程和快速实验等方面工作的不断深入,系统的核心工程特征变得越来越重要。一个稳定灵活的框架可以带来可重复的性能收益。AI 社区提供了大量的新算法和模型,一个支持深度学习和复杂图的平台正是我们利用这些新算法和模型的关键。

在信息流排序算法中引入深度学习

因为早期在图像和语言理解方面的成果,深度学习成为很多科技公司必备的技术。大型的研究团队被组建起来,很多野心勃勃的项目基于各种原因开始使用深度学习。







请到「今天看啥」查看全文


推荐文章
全球健身指南  ·  穿短裤,秀美腿,内外脂肪一招毁!
8 年前
普象工业设计小站  ·  厨房这么装修,实用又美观
7 年前
好奇心研究所  ·  鬼才要升级嘞
7 年前