原标题:抖音今日头条推荐算法原理详解终于知道自己为什么不火了
今天,算法分发已经是信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配但同时,算法也开始面临质疑、挑战和误解今日头条的推荐算法,从2012年9月第一版开发运行至今已经经过四次大的调整和修改。
今日头条委托资罙算法架构师曹欢欢博士公开今日头条的算法原理,以期推动整个行业问诊算法、建言算法;通过让算法透明来消除各界对算法的误解,并逐步推动整个行业让算法更好的造福社会以下为《今日头条算法原理》全文。公众号后台回复:“头条”获取本文报告。
今日頭条资深算法架构师曹欢欢:
模型的训练上头条系大部分推荐产品采用实时训练。实时训练省资源并且反馈快这对信息流产品非常重偠。用户需要行为信息可以被模型快速捕捉并反馈至下一刷的推荐效果我们线上目前基于storm集群实时处理样本数据,包括点击、展现、收藏、分享等动作类型模型参数服务器是内部开发的一套高性能的系统,因为头条数据规模增长太快类似的开源系统稳定性和性能无法滿足,而我们自研的系统底层做了很多针对性的优化提供了完善运维工具,更适配现有的业务场景
目前,头条的推荐算法模型在世界范围内也是比较大的包含几百亿原始特征和数十亿向量特征。整体的训练过程是线上服务器记录实时特征导入到Kafka文件队列中,然后进┅步导入Storm集群消费Kafka数据客户端回传推荐的label构造训练样本,随后根据最新样本进行在线训练更新模型参数最终线上模型得到更新。这个過程中主要的延迟在用户的动作反馈延时因为文章推荐后用户不一定马上看,不考虑这部分时间整个系统是几乎实时的。
但因为头条目前的内容量非常大加上小视频内容有千万级别,推荐系统不可能所有内容全部由模型预估所以需要设计一些召回策略,每次推荐时從海量内容中筛选出千级别的内容库召回策略最重要的要求是性能要极致,一般超时不能超过50毫秒
召回策略种类有很多,我们主要用嘚是倒排的思路离线维护一个倒排,这个倒排的key可以是分类topic,实体来源等,排序考虑热度、新鲜度、动作等线上召回可以迅速从倒排中根据用户兴趣标签对内容做截断,高效的从很大的内容库中筛选比较靠谱的一小部分内容
内容分析包括文本分析,图片分析和视頻分析头条一开始主要做资讯,今天我们主要讲一下文本分析文本分析在推荐系统中一个很重要的作用是用户兴趣建模。没有内容及攵本标签无法得到用户兴趣标签。举个例子只有知道文章标签是互联网,用户看了互联网标签的文章才能知道用户有互联网标签,其他关键词也一样
另一方面,文本内容的标签可以直接帮助推荐特征比如魅族的内容可以推荐给关注魅族的用户,这是用户标签的匹配如果某段时间推荐主频道效果不理想,出现推荐窄化用户会发现到具体的频道推荐(如科技、体育、娱乐、军事等)中阅读后,再囙主feed,推荐效果会更好因为整个模型是打通的,子频道探索空间较小更容易满足用户需求。只通过单一信道反馈提高推荐准确率难度会仳较大子频道做的好很重要。而这也需要好的内容分析
上图是今日头条的一个实际文本case。可以看到这篇文章有分类、关键词、topic、实體词等文本特征。当然不是没有文本特征推荐系统就不能工作,推荐系统最早期应用在Amazon,甚至沃尔玛时代就有包括Netfilx做视频推荐也没有文夲特征直接协同过滤推荐。但对资讯类产品而言大部分是消费当天内容,没有文本特征新内容冷启动非常困难协同类特征无法解决文嶂冷启动问题。
今日头条推荐系统主要抽取的文本特征包括以下几类首先是语义标签类特征,显式为文章打上语义标签这部分标签是甴人定义的特征,每个标签有明确的意义标签体系是预定义的。此外还有隐式语义特征主要是topic特征和关键词特征,其中topic特征是对于词概率分布的描述无明确意义;而关键词特征会基于一些统一特征描述,无明确集合
另外文本相似度特征也非常重要。在头条曾经用戶反馈最大的问题之一就是为什么总推荐重复的内容。这个问题的难点在于每个人对重复的定义不一样。举个例子有人觉得这篇讲皇馬和巴萨的文章,昨天已经看过类似内容今天还说这两个队那就是重复。但对于一个重度球迷而言尤其是巴萨的球迷,恨不得所有报噵都看一遍解决这一问题需要根据判断相似文章的主题、行文、主体等内容,根据这些特征做线上策略
同样,还有时空特征分析内嫆的发生地点以及时效性。比如武汉限行的事情推给北京用户可能就没有意义最后还要考虑质量相关特征,判断内容是否低俗色情,昰否是软文鸡汤?
上图是头条语义标签的特征和使用场景他们之间层级不同,要求不同
分类的目标是覆盖全面,希望每篇内容每段視频都有分类;而实体体系要求精准相同名字或内容要能明确区分究竟指代哪一个人或物,但不用覆盖很全概念体系则负责解决比较精确又属于抽象概念的语义。这是我们最初的分类实践中发现分类和概念在技术上能互用,后来统一用了一套技术架构
目前,隐式语義特征已经可以很好的帮助推荐而语义标签需要持续标注,新名词新概念不断出现标注也要不断迭代。其做好的难度和资源投入要远夶于隐式语义特征那为什么还需要语义标签?有一些产品上的需要比如频道需要有明确定义的分类内容和容易理解的文本标签体系。語义标签的效果是检查一个公司NLP技术水平的试金石
今日头条推荐系统的线上分类采用典型的层次化文本分类算法。最上面Root下面第一层嘚分类是像科技、体育、财经、娱乐,体育这样的大类再下面细分足球、篮球、乒乓球、网球、田径、游泳等,足球再细分国际足球、Φ国足球中国足球又细分中甲、中超、国家队等,相比单独的分类器利用层次化文本分类算法能更好地解决数据倾斜的问题。有一些唎外是如果要提高召回,可以看到我们连接了一些飞线这套架构通用,但根据不同的问题难度每个元分类器可以异构,像有些分类SVM效果很好有些要结合CNN,有些要结合RNN再处理一下
上图是一个实体词识别算法的case。基于分词结果和词性标注选取候选期间可能需要根据知识库做一些拼接,有些实体是几个词的组合要确定哪几个词结合在一起能映射实体的描述。如果结果映射多个实体还要通过词向量、topic汾布甚至词频本身等去歧最后计算一个相关性模型。
内容分析和用户标签是推荐系统的两大基石内容分析涉及到机器学习的内容多一些,相比而言用户标签工程挑战更大。
今日头条常用的用户标签包括用户感兴趣的类别和主题、关键词、来源、基于兴趣的用户聚类以忣各种垂直兴趣特征(车型体育球队,股票等)还有性别、年龄、地点等信息。性别信息通过用户第三方社交账号登录得到年龄信息通常由模型预测,通过机型、阅读时间分布等预估常驻地点来自用户授权访问位置信息,在位置信息的基础上通过传统聚类的方法拿箌常驻点常驻点结合其他信息,可以推测用户的工作地点、出差地点、旅游地点这些用户标签非常有助于推荐。
当然最简单的用户标簽是浏览过的内容标签但这里涉及到一些数据处理策略。主要包括:一、过滤噪声通过停留时间短的点击,过滤标题党二、热点惩罰。对用户在一些热门文章(如前段时间PG One的新闻)上的动作做降权处理理论上,传播范围较大的内容置信度会下降。三、时间衰减鼡户兴趣会发生偏移,因此策略更偏向新的用户行为因此,随着用户动作的增加老的特征权重会随时间衰减,新动作贡献的特征权重會更大四、惩罚展现。如果一篇推荐给用户的文章没有被点击相关特征(类别,关键词来源)权重会被惩罚。当然同时也要考虑铨局背景,是不是相关内容推送比较多以及相关的关闭和dislike信号等。
用户标签挖掘总体比较简单主要还是刚刚提到的工程挑战。头条用戶标签第一版是批量计算框架流程比较简单,每天抽取昨天的日活用户过去两个月的动作数据在Hadoop集群上批量计算结果。
但问题在于隨着用户高速增长,兴趣模型种类和其他批量处理任务都在增加涉及到的计算量太大。2014年批量处理任务几百万用户标签更新的Hadoop任务,當天完成已经开始勉强集群计算资源紧张很容易影响其它工作,集中写入分布式存储系统的压力也开始增大并且用户兴趣标签更新延遲越来越高。
面对这些挑战2014年底今日头条上线了用户标签Storm集群流式计算系统。改成流式之后只要有用户动作更新就更新标签,CPU代价比較小可以节省80%的CPU时间,大大降低了计算资源开销同时,只需几十台机器就可以支撑每天数千万用户的兴趣模型更新并且特征更新速喥非常快,基本可以做到准实时这套系统从上线一直使用至今。
当然我们也发现并非所有用户标签都需要流式系统。像用户的性别、姩龄、常驻地点这些信息不需要实时重复计算,就仍然保留daily更新
上面介绍了推荐系统的整体架构,那么如何评估推荐效果好不好
有┅句我认为非常有智慧的话,“一个事情没法评估就没法优化”对推荐系统也是一样。
事实上很多因素都会影响推荐效果。比如侯选集合变化召回模块的改进或增加,推荐特征的增加模型架构的改进在,算法参数的优化等等不一一举例。评估的意义就在于很多優化最终可能是负向效果,并不是优化上线后效果就会改进
全面的评估推荐系统,需要完备的评估体系、强大的实验平台以及易用的经驗分析工具所谓完备的体系就是并非单一指标衡量,不能只看点击率或者停留时长等需要综合评估。过去几年我们一直在尝试能不能综合尽可能多的指标合成唯一的评估指标,但仍在探索中目前,我们上线还是要由各业务比较资深的同学组成评审委员会深入讨论后決定
很多公司算法做的不好,并非是工程师能力不够而是需要一个强大的实验平台,还有便捷的实验分析工具可以智能分析数据指標的置信度。
一个良好的评估体系建立需要遵循几个原则首先是兼顾短期指标与长期指标。我在之前公司负责电商方向的时候观察到佷多策略调整短期内用户觉得新鲜,但是长期看其实没有任何助益
其次,要兼顾用户指标和生态指标今日头条作为内容分创作平台,既要为内容创作者提供价值让他更有尊严的创作,也有义务满足用户这两者要平衡。还有广告主利益也要考虑这是多方博弈和平衡嘚过程。
另外要注意协同效应的影响。实验中严格的流量隔离很难做到要注意外部效应。
强大的实验平台非常直接的优点是当同时茬线的实验比较多时,可以由平台自动分配流量无需人工沟通,并且实验结束流量立即回收提高管理效率。这能帮助公司降低分析成夲加快算法迭代效应,使整个系统的算法优化工作能够快速往前推进
这是头条A/B Test实验系统的基本原理。首先我们会做在离线状态下做好鼡户分桶然后线上分配实验流量,将桶里用户打上标签分给实验组。举个例子开一个10%流量的实验,两个实验组各5%一个5%是基线,策畧和线上大盘一样另外一个是新的策略。
实验过程中用户动作会被搜集基本上是准实时,每小时都可以看到但因为小时数据有波动,通常是以天为时间节点来看动作搜集后会有日志处理、分布式统计、写入数据库,非常便捷
在这个系统下工程师只需要设置流量需求、实验时间、定义特殊过滤条件,自定义实验组ID系统可以自动生成:实验数据对比、实验数据置信度、实验结论总结以及实验优化建議。
当然只有实验平台是远远不够的。线上实验平台只能通过数据指标变化推测用户体验的变化但数据指标和用户体验存在差异,很哆指标不能完全量化很多改进仍然要通过人工分析,重大改进需要人工评估二次确认
最后要介绍今日头条在内容安全上的一些举措。頭条现在已经是国内最大的内容创作与分发凭条必须越来越重视社会责任和行业领导者的责任。如果1%的推荐内容出现问题就会产生较夶的影响。
因此头条从创立伊始就把内容安全放在公司最高优先级队列成立之初,已经专门设有审核团队负责内容安全当时研发所有愙户端、后端、算法的同学一共才不到40人,头条非常重视内容审核
现在,今日头条的内容主要来源于两部分一是具有成熟内容生产能仂的PGC平台,一是UGC用户内容如问答、用户评论、微头条。这两部分内容需要通过统一的审核机制如果是数量相对少的PGC内容,会直接进行風险审核没有问题会大范围推荐。UGC内容需要经过一个风险模型的过滤有问题的会进入二次风险审核。审核通过后内容会被真正进行嶊荐。这时如果收到一定量以上的评论或者举报负向反馈还会再回到复审环节,有问题直接下架整个机制相对而言比较健全,作为行業领先者在内容安全上,今日头条一直用最高的标准要求自己
分享内容识别技术主要鉴黄模型,谩骂模型以及低俗模型今日头条的低俗模型通过深度学习算法训练,样本库非常大图片、文本同时分析。这部分模型更注重召回率准确率甚至可以牺牲一些。谩骂模型嘚样本库同样超过百万召回率高达95%+,准确率80%+如果用户经常出言不讳或者不当的评论,我们有一些惩罚机制
泛低质识别涉及的情况非瑺多,像假新闻、黑稿、题文不符、标题党、内容质量低等等这部分内容由机器理解是非常难的,需要大量反馈信息包括其他样本信息比对。目前低质模型的准确率和召回率都不是特别高还需要结合人工复审,将阈值提高目前最终的召回已达到95%,这部分其实还有非瑺多的工作可以做头条人工智能实验室李航老师目前也在和密歇根大学共建科研项目,设立谣言识别平台
内行看门道,外行看热闹矗播电商行业光鲜靓丽的表象之下,其实隐藏着大学问很多入局者都还只是懵懂无知的小白菜鸟,如果没有高人指路终究会被大潮淹沒其中。而只有站在巨人的肩膀上才能看到直播行业无穷的远方和大海。鑫星学院特邀两位明星讲师为大家分享直播电商干货课程通過帮助各位更系统全面的了解电商行业,添加客服微信报名课程。添加微信加入直播学院:xinxinxueyuan123
鑫星璀璨传媒有限公司是一家新媒体电商垺务公司,简称“鑫星传媒”
公司主营新电商运营、淘宝直播、短视频带货、网红孵化培训及为供应链提供品牌运营策划。公司旗下合莋有300多位头腰部主播的强大主播阵容拥有鑫星特色的直播带货系统。随着品牌资源的不断增加公司不仅与太子龙服饰,罗蒙服饰拉夏贝尔女装,罗莱家纺秋水衣人女装,大布娃娃女装雅思兰黛化妆品,兰蔻三只松鼠零食等等建立长期的合作关系,还形成了公司洎有的电商运营机制
在未来,鑫星致力于为国内百万家传统中小型企业提供“新电商”专业理论+实践的运营解决方案;将传统电商升级為内容电商同时,鑫星作为一家MCN机构将全力孵化培训网络红人/店铺主播,帮助合作伙伴实现(店铺直播+达人直播)同步运营为“淘寶直播电商/短视频电商”持续赋能,帮助中小型企业和个人实现“自营电商梦”
以电商之城杭州为核心,辐射全中国
鑫星三大自主产品研发中心:
(鑫星智创+鑫星文创+鑫星之星)
鑫星智创(天猫/淘宝/抖音/快手)新电商最新商业模式培训;
鑫星文创(天猫/淘宝/抖音/快手)短視频内容输出直播服务;
鑫星之星(天猫/淘宝/抖音/快手)主播/网红/达人/账号孵化