今日头条技术剖析

转载 2017年12月31日 00:00:00

作者:杜江

来自:21CTO(21cto.com)社区创始人。多年架构与管理经验, 原赶集网创始工程师,正和岛CTO以及今日头条今日特卖技术负责人。

今日头条创立于2012年3月,到目前仅4年时间。从十几个工程师开始研发,到上百人,再到200余人。产品线由内涵段子,到今日头条,今日特卖,今日电影等产品线。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


一、产品背景


今日头条是为用户提供个性化资讯客户端。下面就和大家分享一下当前今日头条的数据(据内部与公开数据综合):

  • 5亿注册用户

2014年5月1.5亿,2015年5月3亿,2016年5月份为5亿。几乎为成倍增长。

  • 日活4800万用户

2014年为1000万日活,2015年为3000万日活。

  • 日均5亿PV

5亿文章浏览,视频为1亿。页面请求量超过30亿次。

  • 用户停留时长超过65分钟以上


二、技术与架构演进


1、文章抓取与分析

我们日常产生原创新闻在1万篇左右,包括各大新闻网站和地方站,另外还有一些小说,博客等文章。这些对于工程师来讲,写个Crawler并非困难的事。

接下来,今日头条会用人工方式对敏感文章进行审核过滤。此外,今日头条头条号目前也有为数不少的原创文章加入到了内容遴选队列中。

接下来我们会对文章进行文本分析,比如分类,标签、主题抽取,按文章或新闻所在地区,热度,权重等计算。

2、用户建模

当用户开始使用今日头条后,对用户动作的日志进行实时分析。使用的工具如下:

- Scribe

- Flume

- Kafka

 

我们对用户的兴趣进行挖掘,会对用户的每个动作进行学习。主要使用:

- Hadoop

- Storm

 

产生的用户模型数据和大部分架构一样,保存在MySQL/MongoDB(读写分离)以及Memcache/Redis中。

 

随着用户量的不断扩展大,用户模型处理的机器集群数量较大。2015年前为7000台左右。其中,用户推荐模型包括以下维度:

1 用户订阅

2 标签

3 部分文章打散推送

此时,需要每时每刻做推荐。

3、新用户的“冷启动”

今日头条会通过用户使用的手机,操作系统,版本等“识别”。另外,比如用户通过社交帐号登录,如新浪微博,头条会对其好友,粉丝,微博内容及转发、评论等维度进行对用户做初步“画像”。

分析用户的主要参数如下:

- 关注、粉丝关系 

- 关系

- 用户标签

 

除了手机硬件,今日头条还会对用户安装的APP进行分析。例如机型和APP结合分析,用小米,用三星的和用苹果的不同,另外还有用户浏览器的书签。头条会实时捕捉用户对APP频道的动作。另外还包括用户订阅的频道,比如电影,段子,商品等。

4、推荐系统

推荐系统,也称推荐引擎。它是今日头条技术架构的核心部分。包括自动推荐与半自动推荐系统两种类型:

1 自动推荐系统

-  自动候选

-  自动匹配用户,如用户地址定位,抽取用户信息

-  自动生成推送任务

这时需要高效率,大并发的推送系统,上亿的用户都要收到。

 

2 半自动推荐系统

-  自动选择候选文章

-  根据用户站内外动作

 

头条的频道,在技术侧划分的包括分类频道、兴趣标签频道、关键词频道、文本分析等,这些都分成相对独立的开发团队。目前已经有300+个分类器,仍在不断增加新的用户模型,原来的用户模型不用撤消,仍然发挥作用。

 

在还没有推出头条号时,内容主要是抓取其它平台的文章,然后去重,一年几百万级,并不太大。主要是用户动作日志收集,兴趣收集,用户模型收集。

 

资讯App的技术指标,比如屏幕滑动,用户是不是对一篇都看完,停留时间等都需要我们特别关注。 

5、数据存储

今日头条使用MySQL或Mongo持久化存储+Memched(Redis),分了很多库(一个大内存库),亦尝试使用了SSD的产品。

今日头条的图片存储,直接放在数据库中,分布式保存文件,读取的时候采用CDN。

6、消息推送

消息推送,对于用户: 及时获取信息。对运营来讲,能够 提⾼⽤用户活跃度。比如在今日头条推送后能够提升20%左右的DAU,如果没有推送,会影响10%左右 DAU(2015年数据)。

推送后要关注的ROI:点击率,点击量。能够监测到App卸载和推送禁用数量。

今日头条推送的主要内容包括突发与热点咨讯,有人评论回复,站外好友注册加入。

 

在头条,推送也是个性化:

-  频率个性化

-  内容个性化

-  地域

-  兴趣

 

比如:

按照城市:辽宁朝阳发生的某个新闻事件,发给朝阳本地的用户。

按照兴趣:比如京东收购一号店,发给互联网兴趣的用户。

 

推送平台的工具和选择,需要具备如下的标准:

 

-  通道,首先速度要快,但是要可控,可靠,并且节省资源

-  推送的速度要快,有不同维度的策略支持,可跟踪,开发接口要友好

-  推送运营的后台,反馈也要快,包括时效性,热度,工具操作方便

-  对于运营侧,清晰是否确定推荐,包括推送的文案处理

 

因此,推送后台应该提供日报,完整的数据后台,提供A/B Test方案支持。

 

推送系统一部分使用自有IDC,在发送量特别大,消耗带宽较严重。可以使用类似阿里云的服务,可有效节省成本。

7、延展思考

现在很多客户端都会需要推荐技术,比如电商、旅游类的商品推荐,也可以有娱乐头条、健康头条、体育头条等类似的应用,这些产品在技术侧的实现,包括用户,模型,数据都是相通的。

推荐阅读:

技术:分布式事务架构实践

技术:分布式唯一ID极简教程

分享:2T架构师学习资料干货分享

觉得有帮助?请转发给更多人!

0?wx_fmt=png0?wx_fmt=png

架构师小秘圈,聚集10万架构师的小圈子!不定期分享技术干货,行业秘闻!汇集各类奇妙好玩的话题和流行动向!长按左侧图片,扫码加入架构师微信群!


↓↓↓点这里查看今日头条技术架构演变之路

浅谈 MySQL 集群高可用架构

作者:霸都民工哥,原名储成友 关注于Linux系统运维及各类运维架构技术,目前正研究学习大数据与自动化运维,热爱开源,拥抱开源。一,前言高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务...
  • g6U8W7p06dCO99fQ3
  • g6U8W7p06dCO99fQ3
  • 2018年01月05日 00:00
  • 128

今日头条核心技术“个性推荐算法”揭秘

今日头条核心技术“个性推荐算法”揭秘 最近面试华兴资本, 他们比较关注今日头条算法的实现, 今天特转载网上 今日头条算法解密   【IT168 评论】互联网给用户带来了大量的信...
  • u014114990
  • u014114990
  • 2015年08月31日 22:07
  • 3698

论今日头条背后的产品逻辑分析

论今日头条背后的产品逻辑分析
  • blueheart20
  • blueheart20
  • 2017年04月30日 22:06
  • 1152

今日头条app数据包分析

数据包分析wireshark+Connectify Hotspot(也可以是其他wifi共享工具),参考:http://jingyan.baidu.com/article/19192ad85ca947...
  • u011747443
  • u011747443
  • 2017年06月13日 16:24
  • 2062

今日头条技术岗(实习)面试算法题

  • 2017年12月26日 18:51
  • 104KB
  • 下载

深度解密今日头条的个性化资讯推荐技术

资讯产品近几年持续火爆,赚足了人们的眼球。以今日头条披露的数据为例:日活跃用户超过一亿,单用户日均使用时长超过 76分钟,资讯类产品的火爆程度可见一斑。资讯类产品的火爆让BAT巨头坐卧不安,纷纷站出来...
  • xgjianstart
  • xgjianstart
  • 2017年08月09日 09:24
  • 225

时隔一个月今日头条又宕机了 这个技术公司的“月经宕”有点频繁

上个周末,头条的用户又看了一回“UFO”,在贴吧上,来自各地的网友都表示无论是手机还是电脑都无法打开,贴吧上再次出现了“头条有难,八方点赞”的情况。而这次距离上次宕机(11月21日)仅仅过去了一个月,...
  • sinat_32970179
  • sinat_32970179
  • 2017年01月10日 16:09
  • 158

今日头条联手密歇根大学打造 AI 反谣言全球技术平台

1月10日雷锋网消息,两天前,今日头条宣布与密歇根大学联合成立AI反谣言研究联盟,通过人工智能技术,联手打造反谣言全球技术平台。据雷锋网(公众号:雷锋网)了解,此次由梅俏竹教授率领的美国密歇根大学团队...
  • Dzz2seiN13YV
  • Dzz2seiN13YV
  • 2018年01月10日 16:30
  • 38

今日头条成立技术战略委员会 解读人工智能重要性

12月1日,今日头条在北京举办首届人工智能与人类文明论坛。今日头条创始人、CEO张一鸣发表峰会致辞,谈论了AI给全球带来的机遇和挑战,强调今日头条要做一家更负责任的高科技公司,利用人工智能能更好地服务...
  • Dzz2seiN13YV
  • Dzz2seiN13YV
  • 2017年12月01日 14:35
  • 139

今日头条核心技术“个性推荐算法”揭秘

互联网给用户带来了大量的信息,满足了用户在信息时代对信息的需求,也使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低了,而通常解决这个问题最常规的办法是推荐系统,...
  • kl28978113
  • kl28978113
  • 2017年12月20日 16:01
  • 69
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:今日头条技术剖析
举报原因:
原因补充:

(最多只允许输入30个字)