泉源:运营大叔
本次分享将首要先容本日头条保举体系概览和内容分析、用户标签、评估分析,内容安全等道理。
1、一败涂地体系概览
保举体系,假如用情势化的方式去形貌现实上是拟合一个用户对内容满足度的函数,这个函数必要输入三个维度的变量。
第一个维度是内容。头条如今已是一个综合内容平台,图文、视频、UGC小视频、问答、微头条,每种内容有许多本身的特性,必要思量如何提取差别内容范例的特性做好保举。
第二个维度是用户特性。包罗各种爱好标签,职业、年事、性别等,另有许多模子刻划出的隐式用户爱好等。
第三个维度是情况特性。这是移动互联网期间保举的特点,用户随时随地移动,在工作场所、通勤、旅游等差别的场景,信息偏好有所偏移。
联合三方面的维度,模子会给出一个预估,即推测保举内容在这一场景下对这一用户是否适宜。
这里另有一个题目,怎样引入无法直接权衡的目的?
保举模子中,点击率、浏览时间、点赞、批评、转发包罗点赞都是可以量化的目的,可以或许用模子直接拟合做预估,看线上提拔环境可以知道做的好欠好。
但一个大要量的保举体系,效劳用户浩繁,不能完全由指标评估,引入数据指标之外的要素也很紧张。
好比广告和特型内容频控。像问答卡片就是比力特别的内容情势,其保举的目的不完满是让用户欣赏,还要思量吸引用户答复为社区奉献内容。这些内容和平凡内容怎样混排,如何控制频控都必要思量。
别的,平台出于内容生态和社会责任的考量,像低俗内容的打压,标题党、低质内容的打压,紧张消息的置顶、加权、强插,低级别账号内容降权都是算法自己无法完成,必要进一步对内容举行干预。
下面我将简朴先容在上述算法目的的根底上怎样对实在现。
前面提到的公式y = F(Xi ,Xu ,Xc),是一个很经典的监视学习题目。可实现的方法有许多,好比传统的协同过滤模子,监视学习算法Logistic Regression模子,基于深度学习的模子,Factorization Machine和GBDT等。
一个优异的工业级保举体系必要非常机动的算法实行平台,可以支持多种算法组合,包罗模子构造调解。由于很难有一套通用的模子架构实用于全部的保举场景。
如今很盛行将LR和DNN联合,前几年Facebook也将LR和GBDT算法做联合。本日头条旗下几款产物都在相沿同一套强盛的算法保举体系,但根据业务场景差别,模子架构会有所调解。
模子以后再看一下典范的保举特性,首要有四类特性会对保举起到比力紧张的作用。
第一类是相干性特性,就是评估内容的属性和与用户是否匹配。显性的匹配包罗关键词匹配、分类匹配、泉源匹配、主题匹配等。像FM模子中也有一些隐性匹配,从用户向量与内容向量的间隔可以得出。
第二类是情况特性,包罗地理位置、时间。这些既是bias特性,也能以此构建一些匹配特性。
第三类是热度特性。包罗全局热度、分类热度,主题热度,和关键词热度等。内容热度信息在大的保举体系特殊在用户冷启动的时间非常有用。
第四类是协同特性,它可以在部门水平上资助办理所谓算法越推越窄的题目。
协同特性并非思量用户已有汗青。而是通过用户举动分析差别用户间相似性,好比点击相似、爱好分类相似、主题相似、爱好词相似,乃至向量相似,从而扩展模子的探索本领。
模子的练习上,头条系大部门保举产物接纳及时练习。及时练习省资源而且反应快,这对信息流产物非常紧张。用户必要举动信息可以被模子快速捕获并反应至下一刷的保举结果。
我们线上现在基于storm集群及时处置惩罚样本数据,包罗点击、揭示、收藏、分享等动作范例。
模子参数效劳器是内部开辟的一套高性能的体系,由于头条数据规模增进太快,雷同的开源体系稳固性和性能无法满意,而我们自研的体系底层做了许多针对性的优化,提供了美满运维工具,更适配现有的业务场景。
现在,头条的保举算法模子在天下范围内也是比力大的,包罗几百亿原始特性和数十亿向量特性。
团体的练习过程是线上效劳器记载及时特性,导入到Kafka文件队列中,然后进一步导入Storm集群消耗Kafka数据,客户端回传保举的label构造练习样本,随后根据最新样本举行在线练习更新模子参数,终究线上模子得到更新。
这个过程中首要的耽误在用户的动作反应延时,由于文章保举后用户不肯定立刻看,不思量这部门时间,整个体系是险些及时的。
但由于头条现在的内容量非常大,加上小视频内容有万万级别,保举体系不大概全部内容全部由模子预估。
以是必要计划一些召回计谋,每次保举时从海量内容中筛选出千级别的内容库。召回计谋最紧张的要求是性能要极致,一样平常超时不能凌驾50毫秒。
召回计谋种类有许多,我们首要用的是倒排的思绪。离线维护一个倒排,这个倒排的key可所以分类,topic,实体,泉源等。
排序思量热度、奇怪度、动作等。线上召回可以敏捷从倒排中根据用户爱好标签对内容做截断,高效的从很大的内容库中筛选比力靠谱的一小部门内容。
二、内容分析
内容分析包罗文天职析,图片分析和视频分析。头条一开始首要做资讯,本日我们首要讲一下文天职析。文天职析在保举体系中一个很紧张的作用是用户爱好建模。
没有内容及文本标签,无法得到用户爱好标签。举个例子,只有知道文章标签是互联网,用户看了互联网标签的文章,才气知道用户有互联网标签,其他关键词也一样。
另一方面,文本内容的标签可以直接资助保举特性,好比魅族的内容可以保举给关注魅族的用户,这是用户标签的匹配。
假如某段时间保举主频道结果不抱负,出现保举窄化,用户会发现到详细的频道保举(如科技、体育、娱乐、军事等)中浏览后,再回主feed,保举结果会更好。
由于整个模子是买通的,子频道探索空间较小,更轻易满意用户需求。只通过单一信道反应进步保举正确率难度会比力大,子频道做的好很紧张。而这也必要好的内容分析。
上图是本日头条的一个现实文本case。可以看到,这篇文章有分类、关键词、topic、实体词等文本特性。
固然不是没有文本特性,保举体系就不能工作,保举体系最初期早起运用英魂在Amazon,乃至沃尔玛期间就有,包罗Netfilx做视频保举也没有文本特性直接协同过滤保举。
但对资讯类产物而言,大部门是消耗当天内容,没有文本特性新内容冷启动非常困难,协同类特性无法办理文章冷启动题目。
本日头条保举体系首要抽取的文本特性包罗以下几类。起首是语义标签类特性,显式为文章打上语义标签。
这部门标签是由人界说的特性,每个标签有明白的意义,标签体系是预界说的。
别的另有隐式语义特性,首要是topic特性和关键词特性,此中topic特性是对于词概率分布的形貌,无明白意义;而关键词特性会基于一些同一特性形貌,无明白聚集。
别的文本相似度特性也非常紧张。在头条,曾用户反应最大的题目之一就是为什么总保举重复的内容。这个题目的难点在于,每个人对重复的界说不一样。
举个例子,有人以为这篇讲皇马和巴萨的文章,昨天已看过雷同内容,本日还说这两个队那就是重复。
但对于一个重度球迷而言,尤其是巴萨的球迷,恨不得全部报道都看一遍。办理这一题目必要根据判定相似文章的主题、行文、主体等内容,根据这些特性做线上计谋。
同样,另有时空特性,分析内容的发生所在以实时效性。好比武汉限行的事变推给北京用户大概就没成心义。
末了还要思量质量相干特性,判定内容是否低俗,色情,是否是软文,鸡汤?
上图是头条语义标签的特性和利用场景。他们之间层级差别,要求差别。
分类的目的是覆盖全面,盼望每篇内容每段视频都有分类;而实体体系要求精准,雷同名字或内容要能明白区分毕竟指代哪一个人或物,但不消覆盖很全。
概念体系则负责办理比力准确又属于抽象概念的语义。这是我们最初的分类,实践中发现分类和概念在技能上能互用,厥后同一用了一套技能架构。
现在,隐式语义特性已可以很好的资助保举,而语义标签必要连续标注,新名词新概念不停出现,标注也要不停迭代。其做好的难度和资源投入要宏大于隐式语义特性,那为什么还必要语义标签?
有一些产物上的必要,好比频道必要有明白界说的分类内容和轻易明白的文本标签体系。语义标签的结果是查抄一个公司NLP技能程度的试金石。
本日头条保举体系的线上分类接纳典范的条理化文天职类算法。
最上面Root,下面第一层的分类是像科技、体育、财经、娱乐,体育如许的大类,再下面细分足球、篮球、乒乓球、网球、田径、泅水…,足球再细分国际足球、中国足球,中国足球又细分中甲、中超、国家队…,相比单独的分类器,使用条理化文天职类算法能更好地办理数据倾斜的题目。
有一些破例是,假如要进步召回,可以看到我们毗连了一些飞线。这套架构通用,但根据差别的题目难度,每个元分类器可以异构,像有些分类SVM结果很好,有些要联合CNN,有些要联合RNN再处置惩罚一下。
上图是一个实体词辨认算法的case。基于分词效果和词性标注选取候选,期间大概必要根据知识库做一些拼接,有些实体是几个词的组合,要确定哪几个词联合在一起能映射实体的形貌。
假如效果映射多个实体还要通过词向量、topic分布乃至词频自己等去歧,末了盘算一个相干性模子。
三、用户标签
内容分析和用户标签是保举体系的两大基石。内容分析涉及到呆板学习的内容多一些,相比而言,用户标签工程挑衅更大。
本日头条常用的用户标签包罗用户感爱好的种别和主题、关键词、泉源、基于爱好的用户聚类和各种垂直爱好特性(车型,体育球队,股票等)。另有性别、年事、所在等信息。
性别信息通过用户第三方交际账号登录得到。年事信息通常由模子展望,通过机型、浏览时间分布等预估。
常驻所在来自用户授权访问位置信息,在位置信息的根底上通过传统聚类的方法拿到常驻点。
常驻点联合其他信息,可以推测用户的工作所在、出差所在、旅游所在。这些用户标签非常有助于保举。
固然最简朴的用户标签是欣赏过的内容标签。但这里涉及到一些数据处置惩罚计谋。
首要包罗:
1、一败涂地过滤噪声。通过停顿时间短的点击,过滤标题党。
二、热门处罚。对用户在一些热门文章(如前段时间PG One的消息)上的动作做降权处置惩罚。理论上,流传范围较大的内容,置信度会降落。
三、时间衰减。用户爱好会发生偏移,因此计谋更方向新的用户举动。因此,随着用户动作的增添,老的特性权重会随时间衰减,新动作奉献的特性权重会更大。
四、处罚揭示。假如一篇保举给用户的文章没有被点击,相干特性(种别,关键词,泉源)权重会被处罚。固然同时,也要思量全局配景,是不是相干内容推送比力多,和相干的关闭和dislike信号等。
用户标签发掘整体比力简朴,首要照旧刚刚提到的工程挑衅。头条用户标签第一版是批量盘算框架,流程比力简朴,天天抽取昨天的日活用户已往两个月的动作数据,在Hadoop集群上批量盘算效果。
但题目在于,随着用户高速增进,爱好模子种类和其他批量处置惩罚使命都在增添,涉及到的盘算量太大。
2014年,批量处置惩罚使命几百万用户标签更新的Hadoop使命,当天完成已开始委曲。集群盘算资源告急很轻易影响别的工作,会合写入分布式存储体系的压力也开始增大,而且用户爱好标签更新耽误愈来愈高。
面临这些挑衅。2014年底本日头条上线了用户标签Storm集群流式盘算体系。改成流式以后,只要有效户动作更新就更新标签,CPU代价比力小,可以节流80%的CPU时间,大大低落了盘算资源开销。
同时,只需几十台呆板就可以支持天天数万万用户的爱好模子更新,而且特性更新速率非常快,根本可以做到准及时。这套体系从上线不停利用至今。
固然,我们也发现并非全部用户标签都必要流式体系。像用户的性别、年事、常驻所在这些信息,不必要及时重复盘算,就仍旧保存daily更新。
四、评估分析
上面先容了保举体系的团体架构,那么怎样评估保举结果好欠好?
有一句我以为非常有聪明的话,“一个事变没法评估就没法优化”。对保举体系也是一样。
究竟上,许多因素都会影响保举结果。好比侯选聚集变革,召回模块的改良或增添,保举特性的增添,模子架构的改良在,算法参数的优化等等,不逐一举例。
评估的意义就在于,许多优化终究大概是负向结果,并不是优化上线后结果就会改良。
全面的评估保举体系,必要完备的评估体系、强盛的实行平台和易用的履历分析工具。
所谓完备的体系就是并非单一指标权衡,不能只看点击率大概停顿时长等,必要综合评估。
许多公司算法做的欠好,并非是工程师本领不敷,而是必要一个强盛的实行平台,另有便捷的实行分析工具,可以智能分析数据指标的置信度。
一个精良的评估体系创建必要遵守几个原则,起首是分身短期指标与恒久指标。我在之前公司负责电商方向的时间观察到,许多计谋调解短期内用户以为奇怪,但是恒久看实在没有任何助益。
其次,要分身用户指标和生态指标。既要为内容创作者提供代价,让他更有尊严的创作,也有任务满意用户,这两者要均衡。
另有广告主长处也要思量,这是多方博弈宁静衡的过程。
别的,要注重协同效应的影响。实行中严酷的流量隔离很难做到,要注不测部效应。
强盛的实行平台非常直接的长处是,当同时在线的实行比力多时,可以由平台主动分配流量,无需人工沟通,而且实行完毕流量立刻接纳,进步管理服从。
这能资助公司低落分析本钱,加速算法迭代效应,使整个体系的算法优化工作可以或许快速往前推进。
这是头条A/B Test实行体系的根本道理。起首我们会做在离线状态下做好用户分桶,然后线上分配实行流量,将桶里用户打上标签,分给实行组。
举个例子,开一个10%流量的实行,两个实行组各5%,一个5%是基线,计谋和线上大盘一样,别的一个是新的计谋。
实行过程中用户动作会被搜集,根本上是准及时,每小时都可以看到。但由于小时数占有颠簸,通常是以天为时间节点来看。动作搜集后会有日记处置惩罚、分布式统计、写入数据库,非常便捷。
在这个体系下工程师只必要设置流量需求、实行时间、界说特别过滤条件,自界说实行组ID。体系可以主动天生:实行数据比照、实行数据置信度、实行结论总结和实行优化发起。
固然,只有实行平台是远远不敷的。线上实行平台只能通过数据指标变革推测用户体验的变革,但数据指标和用户体验存在差别,许多指标不能完全量化。
许多改良仍旧要通过人工分析,庞大改良必要人工评估二次确认。
五、内容安全
末了要先容本日头条在内容安全上的一些办法。头条如今已是国内最大的内容创作与分发凭条,必须愈来愈器重社会责任和行业向导者的责任。假如1%的保举内容出现题目,就会产生较大的影响。
本日头条的内容首要泉源于两部门,一是具有成熟内容生产本领的PGC平台
一是UGC用户内容,如问答、用户批评、微头条。这两部门内容必要通过同一的考核机制。假如是数目相对少的PGC内容,会直接举行风险考核,没有题目会大范围保举。
UGC内容必要颠末一个风险模子的过滤,有题目的会进入二次风险考核。考核通事后,内容会被真正举行保举。这时候假如收到肯定量以上的批评大概举报负向反应,还会再回到复审环节,有题目直接下架。