一、系统概览推荐系统,如果用形式化的方式去形貌实际上是拟合一个用户对内容满足度的函数,这个函数需要输入三个维度的变量。第一个维度是内容。头条现在已经是一个综合内容平台,图文、视频、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漫衍甚至词频自己等去歧,最后盘算一个相关性模型。
三、用户标签内容分析和用户标签是推荐系统的两大基石。内容分析涉及到机械学习的内容多一些,相比而言,用户标签工程挑战更大。今日头条常用的用户标签包罗用户感兴趣的种别和主题、关键词、泉源、基于兴趣的用户聚类以及种种垂直兴趣特征(车型,体育球队,股票等)。
另有性别、年事、所在等信息。性别信息通过用户第三方社交账号登录获得。年事信息通常由模型预测,通过机型、阅读时间漫衍等预估。
常驻所在来自用户授权会见位置信息,在位置信息的基础上通过传统聚类的方法拿到常驻点。常驻点联合其他信息,可以推测用户的事情所在、出差所在、旅游所在。这些用户标签很是有助于推荐。固然最简朴的用户标签是浏览过的内容标签。
但这里涉及到一些数据处置惩罚计谋。主要包罗:一、过滤噪声。
通过停留时间短的点击,过滤标题党。二、热点处罚。
对用户在一些热门文章(如前段时间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%,这部门其实另有很是多的事情可以做。头条人工智能实验室李航老师现在也在和密歇根大学共建科研项目,设立谣言识别平台。
以上是头条推荐系统的原理分享,希望未来获得更多的建议,资助我们更好革新事情。
本文来源:yobo体育app官网入口-www.jshahy.com