今日头条的核心架构解析

踏雪无痕 踏雪无痕     2022-08-01     491

关键词:

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

一、产品背景

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

  • 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、延展思考

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

 

作者:杜江。21CTO(21cto.com)社区创始人。多年架构与管理经验, 原赶集网创始工程师,正和岛CTO以及今日头条今日特卖技术负责人。 著有《PHP5与MySQL5 Web开发技术详解》、《PHP5完全攻略》、《PHP与MySQL高性能应用开发》(即将出版)。

原文链接:http://mp.weixin.qq.com/s?__biz=MjM5NTg2NTU0Ng==&mid=2656593843&idx=1&sn=6a96c9221fd45d0f72c5a4c1c99a02e3&scene=0#wechat_redirect

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

今日头条核心技术“个性推荐算法”揭秘最近面试华兴资本,他们比较关注今日头条算法的实现,今天特转载网上今日头条算法解密  【IT168 评论】互联网给用户带来了大量的信息,满足了用户在信息时代对信息的需求,... 查看详情

今日头条架构演进之路——高压下的架构演进专题(含ppt)

今日头条架构演进之路——高压下的架构演进专题(含PPT)导读:高可用架构在6月25日举办了『高压下的架构演进』专题沙龙,进行了闭门私董会研讨及对外开放的四个专题的演讲,期望能促进业界应对峰值方法及工具的讨论,... 查看详情

资深架构师首次公开揭秘:今日头条推荐算法原理

...战和误解。网友整理的各大平台推荐算法(搞笑版) 今日头条的推荐算法,从2012年9月第一版开发运行至今,已经经过四次大的调整和修改。今日头条委托资深算法架构师曹欢欢博士,公开今日头条的算法原理,以推动整个... 查看详情

超级简单的下载今日头条和西瓜视频的方法

我们每天用今日头条看新闻资讯,有时候看到一个视频,想要保存下来,但今日头条App里没有提供保存视频的功能。这个时候我们需要借助第三方工具来下载视频,今天介绍一个超级好用的工具,不需要安装任何软件和插件,并... 查看详情

[新浪]今日头条被高估了吗?

今日头条被高估了吗?   欢迎关注“创事记”的微信订阅号:sinachuangshiji  文/华生  来源:砺石商业评论(ID:libusiness)  砺石导言  对于今日头条这样一家缺乏核心竞争力,并且始终头顶较大法律与道德风险... 查看详情

个性化推荐系统---今日头条等的内容划分分类

...。            今日头条以前进入各大app的流量主要被几部分刮分,一个是app内搜索、一个是固定频道、、一个是用户在闲逛 查看详情

ppt详解曹欢欢:今日头条算法原理

【PPT详解】曹欢欢:今日头条算法原理悟空智能科技 4月8日公众号后台回复:“区块链”,获取区块链报告公众号后台回复:“sq”,进入区块链分享社群热文推荐:1000位专家推荐,20本区块链必读书籍(附PDF)中国首个区... 查看详情

今日头条和今日头条极速版有什么区别

3C数码您的浏览器不支持HTML5视频zymedia(\'video\')参考技术A今日头条和今日头条极速版区别为:安装包大小不同、占用运行内存不同、特色功能不同。一、安装包大小不同1、今日头条普通版:今日头条普通版的安装包大小为22.8M。2... 查看详情

今日头条的惊惶时刻

今日头条到底怎么了?昨天上午,国家知识产权局用一纸决定书驳回了今日头条关于UC一条专利的无效宣告请求,这意味着今日头条很可能要面临巨额的专利侵权罚款。不过UC并不是唯一和今日头条“对簿公堂”的企业。在1月26... 查看详情

“今日头条”和“今日头条极速版”有啥不同?

...A面对客户人群不一样,界面不一样,功能体验不一样。今日头条界面比较复杂,体验功能更加多元化。今日头条极速版界面简单,功能体验比较少。今日头条:基于个性化推荐引擎技术,根据每个用户的兴趣、位置等多个维度... 查看详情

全网首发《android性能优化—实战》解析一线大厂性能优化之路(支付宝抖音百度今日头条网易携程....)

前言为什么要性能优化?也许是想要支持更高的吞吐量,想要更小的延迟,或者提高资源的利用率等,这些都是性能优化的目标之一。不过需要提醒的是,不要过早的进行性能优化。如果当前并没有任何性能... 查看详情

如何区分今日头条与今日头条极

参考技术A今日头条和今日头条极速版区别有:内存大小不一样、定位人群不一样、功能特色不一样、界面设计不一样。1、内存大小不一样今日头条极App:4.7M。今日头条极速版App:安装包4.7M。2、定位人群不一样普通版:面向的... 查看详情

今日头条ios高级工程师面试总结(代码片段)

面试形式:电话面试作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:761407670进群密码‘博客’,不管你是小白还是大牛欢迎入驻,分享BAT,阿里面试题、面试经验,讨论技术,大家一... 查看详情

几种软件架构

...件架构一.阿里云大数据架构     二.今日头条推荐算法架构推荐系统,如果用形式化的方式去描述实际上是拟合一个用户对内容满意度的函数,这个函数需要输入三个维度的变量。第一个维度是内容。头条现... 查看详情

怎么在今日头条上发布新闻,或者做广告投放的?

怎么在今日头条上发布新闻,或者做广告投放的?就是把信息,主动推送给用户的那种广告,或者新闻。广告投放自己不好做,要说自己在上边发新闻或许还可以今日头条如何发布文章?第一步,登陆今日头条官网申请账号第二... 查看详情

今日头条算法

...u014114990/article/details/48165781 日头条涉及到算法:(1)今日头条服务器1000台左右,通过代码实现的爬虫功能,在其他传媒的网站和门户上抓取各种信息。如果在网站上抓取到纸媒的内容,优先从纸媒门户上抓取信息(2)抓取... 查看详情

php+phantomjs实现今日头条的首页推送抓取

...效果也不是很好,记录一下吧。 认识的哥们最近在爬今日头条的数据,不过他是做java的。之前也想用php做点爬数据的东西,于是直接也搞今日头条,万一有不明白的地方还能有个人商量。话不多说,上点干货。  关... 查看详情

今日头条——面试案例

今日头条面试案例1-数据结构中堆的概念,堆排序-死锁的概念,怎么避免死锁-ReentrantLock、synchronized和volatile(n面)-HashMap-singleTask启动模式-用到的一些开源框架,介绍一个看过源码的,内部实现过程。-消息机制实现-ReentrantLock... 查看详情