本文来自链接:https://blog.csdn.net/mucaoyx/article/details/84498468,如有侵权,请告知我删除。
今日头条创立于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,在发送量特别大,消耗带宽较严重。可以使用类似阿里云的服务,可有效节省成本。
二、今日头条系统架构
三、头条微服务架构
今日头条通过拆分子系统,大的应用拆成小应用,抽象通用层做代码复用。
系统的分层比较典型。重点在基础设施,希望通过基础设施提高快速迭代、容灾和一系列的工作,希望各个业务团队能更快做业务上的迭代以及架构上的调整。
四、今日头条的虚拟化PaaS平台规划
通过三层实现,通过 PaaS 平台统一管理。提供通用 SaaS 服务,同时提供通用的 App 执行引擎。最底层是 IaaS 层。
IaaS 管理所有的机器,把公有云整合起来,头条有一些热点事件会全国推广推送,对网络带宽比较高,我们借助公有云,需要哪一种类型计算资源,统一抽象起来。基础设施结合服务化的思路,比如日志,监控等等功能,业务不需要关注细节就可以享受到基础设施提供的能力。
五、总结
今日头条重要的部分在于: 数据生成与采集
数据传输。Kafka做消息总线连接在线和离线系统。
数据入库。数据仓库、ETL(抽取转换加载)
数据计算。数据仓库中的数据表如何能被高效的查询很关键,因为这会直接关系到数据分析的效率。
常见的查询引擎可以归到三个模式中,Batch 类、MPP 类、Cube 类,头条在 3 种模式上都有所应用。
逆锋起笔
相关推荐
站在更高的维度做架构,来自一线互联网大厂的经验总结,少走弯路少踩坑,值得拥有。
【今日头条技术架构分析】 今日头条,作为一个快速成长的个性化资讯客户端,自2012年成立以来,经历了从十几名工程师到数百人的团队扩张,其产品线涵盖内涵段子、今日头条、今日特卖、今日电影等多个领域。该平台在...
《今日头条推荐系统架构设计实践》是一本深入探讨现代推荐系统构建和优化的专业书籍。它主要聚焦于今日头条这一知名信息分发平台所采用的推荐技术,为读者揭示了如何利用大数据、机器学习和人工智能来实现精准的信息...
今日头条在行业内以其强大的新闻聚合能力、个性化推荐功能和良好的用户体验而闻名,因此,其源码分析将涵盖Android或iOS平台的开发技术,包括但不限于Java或Kotlin(Android)、Swift或Objective-C(iOS)语言,以及...
根据提供的文件信息,以下是对《今日...总结而言,今日头条的商业计划书将详细阐述其业务模式、市场策略、技术优势、团队实力、财务规划等,旨在向投资者展示公司的成长潜力和价值,吸引资金支持其业务的进一步发展。
【今日头条Android客户端源码】是针对Android开发人员的一个宝贵资源,尤其适合新手学习和提升编程技术。这个源码提供了实际应用中的项目结构和编程实践,让开发者能够深入了解一个大型、复杂的Android应用程序是...
在2018年1月,今日头条资深算法架构师曹欢欢博士首次公开了该平台的推荐算法原理,希望借此推动整个行业在算法方面进行交流与讨论。 推荐系统的核心功能是向用户推荐其感兴趣的内容,而今日头条推荐算法的核心则是...
【标题】"今日头条初步代码"涉及的是开发今日头条应用的基础...这些技术和实践是构建类似今日头条这样的大型互联网应用的基础。随着项目的进展,还会涉及到更复杂的功能如社交分享、评论互动、广告系统、数据分析等。
本项目"模仿今日头条"是基于微信小程序框架构建的一个资讯类应用,旨在复刻今日头条的核心功能,如新闻浏览、分类搜索、个性化推荐等,帮助开发者学习和理解微信小程序的开发流程与技术要点。 一、小程序框架基础 ...
今日头条推荐模型的核心在于对点击率、阅读时间、点赞、评论、转发等数据进行量化分析,但同时也引入了非数据要素,以更好地反映用户的实际偏好。推荐系统面临的挑战包括如何在满足大量用户需求的同时,控制计算成本...
总之,“仿今日头条安卓客户端”是一个集成了多种前沿技术的实战项目,对于想要深入学习Android开发、提升技能的开发者来说,具有很高的参考价值。通过分析和研究这个项目,开发者不仅可以掌握MVP架构的应用,还能...
今日头条在微服务架构中,通过五元组概念对RPC调用进行抽象,实现了服务注册与发现、负载均衡、熔断、降级等一系列功能。自研的微服务框架kite,兼容Thrift协议,提供了丰富的服务治理功能,确保了系统的稳定性和高...
通过分析"Android仿今日头条APP源码(1).zip"这个压缩包中的源代码,我们可以学习到许多关键的Android开发技术和实践。 首先,源码中的主要技术栈可能包括: 1. **MVVM(Model-View-ViewModel)架构**:现代Android...
在Android开发领域,今日头条客户端源码是一份宝贵的教育资源,它为开发者提供了深入理解移动应用架构、性能优化以及个性化推荐算法的实践案例。这份源码涵盖了众多Android开发的关键知识点,包括但不限于以下几个...
【标题】"精仿今日头条App趣头条App源码.zip" 提供的是一个新闻资讯类应用程序的源代码,模仿了知名的“今日头条”应用。这个源码主要用于教学和学习目的,可以帮助开发者深入了解新闻咨询类App的开发流程和技术实现...
今日头条推荐系统的架构设计是一个复杂而精细的过程,涉及到多个层面的技术挑战。通过对用户行为数据的深入挖掘以及推荐算法的不断优化,可以显著提升用户体验,增强平台竞争力。同时,随着技术的发展,诸如3D打印...