今日头条的核心架构解析

 新闻资讯     |       来源:优游ub8平台    发布时间:2024-06-25 00:46:59

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  作者:杜江。21CTO(创办人。多年架构设计,技术管理经验,原赶集网创始团队,正和岛CTO以及今日头条技术负责人。 著有《PHP5与MySQL5 Web开发技术详解》、《PHP5完全攻略》、《PHP与MySQL高性能开发与最佳实践》(即将出版)。

  欢迎关注“互联网架构师”,我们分享最有价值的网络技术干货文章,助力您成为有思想的全栈架构师,我们只聊互联网、只聊架构,不聊其他!打造最有价值的架构师圈子和社区。

  本公众号覆盖中国主要首席架构师、高级架构师、CTO、首席技术官、技术负责人等人 群。分享最有价值的架构思想和内容。打造中国互联网圈最有价值的架构师圈子。