在Twitter信息流中大规模应用深度学习——推文的相关度计算使用了深度学习
我们如何对信息流进行排序?
在引入排序算法之前,信息流的组成非常简单:收集所有由你的关注对象在你最后一次登录Twitter之后发送的推文,再将它们按照时间倒序显示出来。这个看起来很简单,但要为数以亿计的Twitter用户提供这种稳定的体验对我们来说是一个巨大的挑战,它对我们的基础设施和运维能力提出了很高的要求。
在引入排序算法之后,信息流的组成变得更加丰富。在收集推文之后,我们使用相关度模型对它们打分。这个分数是针对每个用户对推文感兴趣程度的预测。具有较高分数的推文被展示在信息流的最上面,其他推文紧随其后显示。根据你的信息流中已有的推文数量以及从你最后一次登录Twitter至今的时间长短,我们还可能专门为你提供一个“你可能错过的推文”模块。这个模块只包含少量具有最高相关度的推文。这样做的目的是希望你能够先看到重要的推文,然后再进一步查看按照时间排序的部分。
为了预测推文的相关度,我们的模型考虑到了以下几个特征。
- 推文本身:鲜活度(recency)、是否包含媒体卡(图像或视频)、互动情况(如转发或点赞次数)。
- 推文的作者:你过去与作者的互动情况、你与作者之间关系的紧密程度、你与作者之间的关系是如何建立的。
- 你自己:你参与过互动的推文、你使用Twitter的频率和使用程度。
我们使用的特征和各种特征之间的关系在不断增长,我们的模型因此能够识别出更为精确的行为模式。
每次在你打开手机或刷新信息流的时候,我们都会对推文进行打分,以便确定哪些推文可以被展示在信息流的最上面。打分这一举动对我们的信息流服务基础设施提出了很高的计算要求,因为我们现在每秒钟要对数千条推文进行打分。虽然更丰富的模型可以提高推文排序的质量,但对于像Twitter这样的实时社交公司来说,速度与质量同样重要。Twitter独特的挑战在于如何为查看信息流的用户进行快速实时的打分,并且拥有足够强大的模型来保证排序质量以及后续的改进。
摘自:http://www.infoq.com/cn/news/2017/06/Twitter-new-deep-study
在Twitter信息流中大规模应用深度学习——推文的相关度计算使用了深度学习的更多相关文章
- 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
AI早期成就,相对朴素形式化环境,不要求世界知识.如IBM深蓝(Deep Blue)国际象棋系统,1997,击败世界冠军Garry Kasparov(Hsu,2002).国际象棋,简单领域,64个位置 ...
- 人工智能深度学习Caffe框架介绍,优秀的深度学习架构
人工智能深度学习Caffe框架介绍,优秀的深度学习架构 在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要 ...
- 深度学习之PyTorch实战(1)——基础学习及搭建环境
最近在学习PyTorch框架,买了一本<深度学习之PyTorch实战计算机视觉>,从学习开始,小编会整理学习笔记,并博客记录,希望自己好好学完这本书,最后能熟练应用此框架. PyTorch ...
- 深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO)
深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO) 2018-07-17 16:54:51 Reference: https://b ...
- 深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全
深度学习与计算机视觉(12)_tensorflow实现基于深度学习的图像补全 原文地址:Image Completion with Deep Learning in TensorFlow by Bra ...
- UFLDL深度学习笔记 (三)无监督特征学习
UFLDL深度学习笔记 (三)无监督特征学习 1. 主题思路 "UFLDL 无监督特征学习"本节全称为自我学习与无监督特征学习,和前一节softmax回归很类似,所以本篇笔记会比较 ...
- 对比《动手学深度学习》 PDF代码+《神经网络与深度学习 》PDF
随着AlphaGo与李世石大战的落幕,人工智能成为话题焦点.AlphaGo背后的工作原理"深度学习"也跳入大众的视野.什么是深度学习,什么是神经网络,为何一段程序在精密的围棋大赛中 ...
- 《Redis深度历险:核心原理和应用实践》学习笔记一
1.redis五种数据结构 1.1 String字符串类型,对应java字符串类型 用户信息序列化后,可以用string类型存入redis中批量读写string类型,见效网络消耗数字类型的string ...
- 关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL))
关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 欢迎fork本项目原始链接:关于图计算&图学习的基础知识概览:前置知识点学习 ...
随机推荐
- SSH整合框架+mysql简单的实现
SSH整合框架+mysql简单的实现 1. 框架整合原理: struts2整合Spring 两种: 一种struts2自己创建Action,自动装配Service : 一种 将Action交给Spri ...
- oracle 外部表及解决ora-29400,ora-29913错误
对外部表的理解及测试,,,,如有理解不正确请大家指正 语法: create table 表名( 列名1,列名2,...... ) organization external ###说明创建外部表 ( ...
- mongodb分片集群安装教程
mongodb 集群包含副本集群,主从集群以及分片集群,分片集群比较复杂,这里测试我采用了三台机器,交差部署 blog地址:http://www.cnblogs.com/caoguo 一 .环境:#m ...
- tailf
功能说明:tailf命令几乎等同于tail -f,与tail -f不同的是,如果文件不增长,那么它不会去访问磁盘文件,也不会更改文件的访问时间.tailf命令在工作中的主要使命就是跟踪日志文件,首先将 ...
- Android控件的继承关系
1.View,ViewGroup >View: }1.所有高级UI组件都继承View类而实现的 }2.一个View在屏幕上占据一块矩形区域 }3. 负责渲染 }4.负责处理发生的事件 }5.设置 ...
- centOS7创建python虚拟环境
参考: 非常棒的2篇博客 https://www.centos.bz/2018/05/centos-7-4-%E5%AE%89%E8%A3%85python3%E5%8F%8A%E8%99%9A%E6 ...
- Slides使用
1.引入 import { ViewChild } from '@angular/core'; import { Slides } from 'ionic-angular'; export class ...
- CAD实现自定义实体夹点移动(com接口VB语言)
主要用到函数说明: MxDrawXCustomEvent::MxDrawXCustomEntity::moveGripPointsAt 自定义实体事件,自定义实体夹点被移动,详细说明如下: 参数 说明 ...
- CAD在网页中如何得到用户自定义事件的参数?
主要用到函数说明: _DMxDrawX::CustomEventParam 得到用户自定义事件的参数. js代码实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
- POJ 1088 滑雪(简单的记忆化dp)
题目 又一道可以称之为dp的题目,虽然看了别人的代码,但是我的代码写的还是很挫,,,,,, //看了题解做的简单的记忆化dp #include<stdio.h> #include<a ...