今天,算法分发已经成为几乎所有软件的标准,如信息平台,搜索引擎,浏览器,社交软件等,但与此同时,算法开始面临挑战,挑战和误解。今天的标题推荐算法自2012年9月第一版以来一直在开发中,经过了四次重大调整和修订。
今天,标题委托高级算法架构师曹焕欢博士宣传当今头条新闻的算法原理,以推广整个行业的查询算法和建议算法;使算法透明化,消除对算法的误解,逐步推动整个行业更好地受益。社会。
以下是《今日头条算法原理》的全文。
此共享将介绍当今标题推荐系统的概述以及内容分析,用户标记,评估和分析以及内容安全性的原则。
首先,系统概述
如果用于以正式方式描述的推荐系统实际上是适合用户对内容的满意度的函数,则该函数需要输入三维的变量。
第一个维度是内容。标题现在是一个全面的内容平台,图形,视频,UGC视频,问答和微型标题。每个内容都有自己的特点。有必要考虑如何提取不同内容类型的功能以提出建议。
第二个维度是用户功能。包括各种兴趣标签,职业,年龄,性别等,以及一些模型嵌入的隐含用户兴趣。
第三个维度是环境特征。这是移动互联网时代的推荐功能。用户可以随时随地在不同的情况下移动,例如工作,通勤,旅行等,并且信息偏好被抵消。结合三个维度,该模型将估计在此方案中推荐内容是否适合此用户。
这里还有另一个问题,如何引入无法直接衡量的目标?
在推荐模型中,点击率,阅读时间,喜欢,评论和转发,包括赞美,都是可量化的目标。您可以使用该模型直接拟合估算值,并查看在线促销情况以了解如何执行此操作。然而,大规模推荐系统具有许多服务用户,并且不能通过指标完全评估。引入数据指标以外的元素也很重要。
如广告和特殊内容频率控制。问答卡是一种特殊形式的内容。建议的目标不是让用户浏览,而是吸引用户回答社区内容。如何将这些内容与普通内容混合,以及如何控制频率控制需要考虑。
此外,该平台基于对内容生态和社会责任的考虑,例如压制粗俗内容,压制标题派对,低质量内容,重要新闻的顶部,加权和强插入,以及降低下级帐户的内容是算法本身无法完成的。需要进一步干预内容。
下面我将简要介绍如何基于上述算法目标实现它。
上述公式y=F(Xi,Xu,Xc)是一种非常经典的监督学习问题。有许多可实现的方法,如传统的协同过滤模型,监督学习算法Logistic回归模型,基于深度学习的模型,分解机器和GBDT。
一个优秀的工业级推荐系统需要一个非常灵活的算法实验平台,可以支持各种算法组合,包括模型结构调整。因为很难为所有推荐的场景建立通用的模型架构。结合LR和DNN现在非常流行。在过去几年中,Facebook还结合了LR和GBDT算法。今天的头条新闻使用了同样强大的算法推荐系统,但模型架构将根据不同的业务场景进行调整。
在模型之后,查看典型的推荐功能。有四种主要类型的功能将在推荐中发挥重要作用。
第一类是相关性功能,即评估内容的属性以及它是否与用户匹配。显式匹配包括关键字匹配,分类匹配,源匹配,主题匹配等。在FM模型中还存在一些隐式匹配,其可以从用户矢量和内容矢量之间的距离导出。
第二类是环境特征,包括地理位置和时间。这些都是偏置功能,可用于构建一些匹配功能。
第三类是加热功能。包括全球热量,分类热量,主题热量和关键词热量。内容流行度信息在大型推荐系统中非常有效,尤其是当用户冷启动时。
第四类是协同特征,它可以帮助解决所谓的算法更窄更窄的问题。协作功能未考虑用户的历史记录。相反,用户行为用于分析不同用户之间的相似性,例如点击相似度,类似兴趣分类,类似主题,类似兴趣词,甚至矢量相似性,从而扩展模型的探索能力。
在模型的培训中,标题是使用实时培训的最推荐的产品。实时培训可以节省资源和反馈,这对于信息流产品非常重要。用户需要可以由模型快速捕获的行为信息,并反馈到下一个画笔的推荐效果。我们目前基于Storm集群实时处理示例数据,包括点击,显示,收集和共享等操作类型。
模型参数服务器是内部开发的高性能系统。由于标题数据增长太快,无法满足类似开源系统的稳定性和性能,而我们自行开发系统的底层已经进行了许多有针对性的优化。改进操作和维护工具,以更好地适应现有的业务场景。
目前,标题推荐算法模型在世界范围内相对较大,包括数百亿原始特征和数十亿个矢量特征。整个培训过程是记录在线服务器的实时特征,将其导入Kafka文件队列,然后将其导入Storm集群以使用Kafka数据。客户端返回推荐标签以构建训练样本,然后根据最新样本在线培训更新模型参数。最终的在线模型已更新。此过程中的主要延迟是用户操作的反馈延迟,因为用户不一定在推荐文章后立即查看它。无论这部分时间如何,整个系统几乎都是实时的。
然而,由于标题的当前内容非常大,并且小视频内容具有数千万级别,因此推荐系统不可能通过模型预测所有内容。因此,有必要设计一些召回策略,以便在每次推荐时从大量内容中过滤出数千个内容库。召回策略最重要的要求是极端性能。通常,超时不能超过50毫秒。
有许多类型的召回策略,我们主要使用倒置的想法。离线维护一个倒排,这个倒置键可以分类,主题,实体,来源等,排序考虑热量,新鲜度,动作等。在线调用可以根据用户的兴趣标签快速切断反转行中的内容,并有效地从大型内容库中过滤少量内容。
二,内容分析
内容分析包括文本分析,图像分析和视频分析。在标题的开头,我主要做的是信息。今天我们主要谈论文本分析。文本分析在推荐系统中的一个非常重要的作用是用户兴趣建模。没有内容和文本标签来获取用户兴趣标签。例如,只知道文章标签是Internet,用户可以阅读Internet标签文章,以便知道用户有Internet标签,其他关键字是相同的。
另一方面,文本内容的标签可以直接帮助推荐功能。例如,可以向关注魅族的用户推荐魅族的内容,这是用户标签的匹配。如果主要频道的推荐在一段时间内不满意,推荐范围缩小,用户会在阅读特定频道推荐(如技术,体育,娱乐,军事等)后发现,然后返回主饲料,推荐效果会更好。由于整个模型是开放的,子通道探索空间更小,更容易满足用户需求。仅通过单信道反馈来提高推荐准确率更加困难,并且很好地完成子信道非常重要。这也需要良好的内容分析。
上图是今天标题的实际案例。如您所见,本文具有文本功能,如分类,关键字,主题和实体单词。当然,没有文字功能,推荐系统无法正常工作,推荐系统是亚马逊最早的应用,甚至在沃尔玛时代,包括Netfilx视频推荐和无文字功能的直接协同过滤推荐。但是,对于信息产品,大多数都是消费当天的内容。没有文字功能。新内容很难冷酷地开始。协作类功能无法解决文章的冷启动问题。
今天由标题推荐系统提取的文本特征包括以下类别。第一个是语义标记类功能,它使用语义标记显式标记文章。标签的这一部分是由人定义的特征,每个标签具有明确的含义,并且标签系统是预定义的。此外,还有隐含的语义特征,主要是主题特征和关键字特征。主题特征是词概率分布的描述,没有明确的含义;虽然关键字功能基于一些统一的功能描述,但没有明确的设置。
此外,文本相似性功能也非常重要。在标题中,用户反馈的一个最大问题是它总是建议重复内容。这个问题的难点在于每个人都有不同的重复定义。例如,有些人认为这篇关于皇家马德里和巴塞罗那的文章昨天看到了类似的内容。今天,据说这两支球队正在重复。但对于一个沉重的球迷,特别是巴塞罗那的球迷,我迫不及待地想看到所有的报道。为了解决这个问题,我们需要根据类似文章的特征制定在线策略,例如主题,文本和主题。
同样,有时间和空间特征,分析内容发生的位置和及时性。例如,限于武汉的事情可能对北京用户没有意义。最后,考虑质量相关的特点,判断内容是否粗俗,色情,是软文,鸡汤吗?
上图是标题语义标签的特征和使用场景。它们之间的级别不同,要求也不同。
分类的目标是覆盖整个情况。我希望每段视频都对每段视频进行分类。实体系统需要精确度。相同的名称或内容应明确区分它所指的人或事物,但不需要涵盖它。概念系统负责解决更精确且属于抽象概念的语义。这是我们的初步分类。在实践中,发现分类和概念在技术上是可互操作的,后来使用了统一的技术框架。
目前,隐式语义特征对推荐非常有帮助,而语义标签需要不断标记,新名词的新概念不断出现,注释不断迭代。难度和资源投入远大于隐含的语义特征。为什么需要语义标签?有一些产品需求,例如需要明确定义的类别和易于理解的文本标签系统的渠道。语义标签的作用是检查公司NLP技术水平的试金石。
今天的标题推荐系统的在线分类使用典型的分层文本分类算法。在Root的顶部,下面第一层的分类是一个很大的类别,如技术,体育,金融,娱乐,体育,然后细分为足球,篮球,乒乓球,网球,田径,游泳...国际足球,中国足球,中国足球细分在中间,超级,国家队......与单独的分类器相比,采用分层文本分类算法可以更好地解决数据偏差问题。有一些例外。如果你想改善召回,你可以看到我们连接了一些飞行线。这组体系结构很常见,但是根据问题的难度,每个元分类器都可以是异构的。一些SVM运行良好,一些必须与CNN结合,一些必须与RNN结合。
上图是实体字识别算法的情况。基于分词结果和词性标注候选,根据知识库可能需要一些拼接。一些实体是几个单词的组合。有必要确定组合哪些单词来映射实体的描述。如果结果映射多个实体,则仍然通过单词矢量,主题分布或甚至词频本身消除歧义,最后计算相关模型。
三,用户标签
内容分析和用户标签是推荐系统的两个基石。内容分析涉及更多的机器学习,用户标记比工程更具挑战性。
今日头条新闻的常见用户标签包括用户感兴趣的类别和主题,关键字,来源,基于兴趣的用户群集以及各种垂直兴趣功能(模型,运动队,股票等)。还有性别,年龄,地点和其他信息。通过使用用户的第三方社交帐户登录获得性别信息。年龄信息通常由模型预测,并通过模型,阅读时间分布等估计。驻留位置来自用户授权的访问位置信息,并且通过传统的聚类方法基于位置信息获得驻留点。驻留点与其他信息相结合可用于猜测用户的工作地点,营业地点和旅行地点。这些用户标签对建议非常有用。
当然,最简单的用户标签是被查看的内容标签。但这里涉及一些数据处理策略。主要包括:
首先,过滤噪音。点击短暂停留时间过滤标题派对。
二,热点惩罚。用户对一些热门文章(例如前一段时间PG One的新闻)的行为减少了。理论上,如果内容分布在大范围内,则置信水平会降低。
第三,时间衰退。用户兴趣被抵消,因此策略更倾向于新用户行为。因此,随着用户的运动增加,旧的特征权重将随时间衰减,并且新动作贡献的特征权重将更大。
第四,惩罚表明。如果未单击向用户推荐的文章,则相关功能(类别,关键字,来源)权重将受到惩罚。当然,与此同时,我们还必须考虑全球背景,相关内容是否被推得更多,以及相关的关闭和不喜欢信号。
整体用户标签挖掘相对简单,主要是由于刚刚提到的工程挑战。标题用户标签的第一个版本是批量计算框架。这个过程相对简单。在过去的两个月中,每天提取昨天每日用户的操作数据,并在Hadoop集群上分批计算结果。
问题是随着用户快速增长,兴趣模型和其他批处理任务的类型正在增加,并且涉及的计算量太大。 2014年,Hadoop批量处理数百万用户标签更新的任务在同一天完成。紧密的集群计算资源很容易影响其他工作。专注于分布式存储系统的压力也在增加,用户兴趣标签更新延迟越来越高。
面对这些挑战,在2014年底,今天的头条新闻推出了用户标记的Storm集群流计算系统。更改为流模式后,只要用户操作更新标签,CPU成本相对较小,可以节省80%的CPU时间,大大降低计算资源开销。同时,每天只有几十台机器可以支持数千万用户的兴趣模型更新,并且功能更新速度非常快,并且可以实现基本的实时。该系统自成立以来一直在使用。
当然,我们还发现并非所有用户标签都需要流媒体系统。诸如用户的性别,年龄和居住地点之类的信息不需要实时重新计算,并且仍然保留每日更新。
四,评估分析
上面描述了推荐系统的总体架构。那么你如何评估推荐效果呢?
我认为有一句非常明智,“ldquo;没有优化就无法评估一件事。推荐系统也是如此。
事实上,许多因素都会影响推荐。例如,候选集合改变,召回模块的改进或添加,推荐特征的增加,模型架构的改进,算法参数的优化等不是示例。评估的重要性在于许多优化可能最终产生负面影响,并且在优化启动后效果不会改善。
综合评估推荐系统需要全面的评估系统,强大的实验平台和易于使用的实证分析工具。所谓的完整系统不是单一指标测量,不仅可以查看点击率或停留时间等,还需要全面评估。我们一直在努力,过去几年,我们能否结合大多数指标来综合唯一的评估指标,但仍在探索中。目前,我们仍将由一个由经验丰富的学生组成的评审小组进行深入讨论。
许多公司在算法方面表现不佳。这不是因为工程师的能力不足。相反,他们需要一个强大的实验平台和方便的实验分析工具来智能地分析数据指标的可信度。
建立良好的评估体系需要遵循几个原则,从短期和长期指标的组合开始。当我负责公司的电子商务方向时,我观察到许多策略在短期内被调整为新鲜,但从长远来看,它没有帮助。
其次,我们必须考虑用户指标和生态指标。今天的标题作为内容创作平台,不仅要为内容创作者提供价值,让他更有尊严的创作,还要有义务满足用户,两者应该是平衡的。广告商也有兴趣考虑,这是一个多方游戏和平衡过程。
另外,要注意协同效应的影响。实验中严格的流动隔离很难实现,注意外部效应。
强大的实验平台的直接优势在于,当有多个同时在线实验时,平台可以自动分配流量而无需人工通信,实验结束后流程立即恢复,提高了管理效率。这可以帮助公司降低分析成本,加快算法的迭代效果,并使整个系统的算法优化能够快速推进。
这是标题A/B测试实验系统的基本原理。首先,我们将在离线状态下进行用户分组,然后在线分发实验流量,在桶中标记用户,并将其分配给实验组。例如,打开10%流量实验,两个实验组中的5%,一个5%是基线,策略与在线市场相同,另一个是新策略。
在实验期间收集用户动作,这基本上是准实时的并且可以每小时看到。但由于每小时数据波动,通常以天数来衡量。收集动作后,将进行日志处理,分布式统计和写入数据库,非常方便。
在该系统中,工程师只需设置流量需求,实验时间,定义特殊过滤条件,并自定义实验组ID。系统可以自动生成:实验数据比较,实验数据置信度,实验结论和实验优化建议。
当然,只有实验平台是不够的。在线实验平台只能通过数据指标的变化来推测用户体验的变化,但数据指标和用户体验之间存在差异,许多指标无法完全量化。仍需要通过手动分析进行许多改进,主要改进需要手动评估二级确认。
V.内容安全
最后,我们将介绍今天关于内容安全的头条新闻中的一些举措。头条新闻现在是该国最大的内容创作和发行收据,必须越来越多地关注社会责任和行业领导者的责任。如果1%的推荐内容出现问题,则会产生很大影响。
因此,标题从一开始就将内容安全性置于公司的最高优先级队列中。在成立之初,已经成立了一个审计小组来负责内容安全。那时,只有不到40名学生开发了所有客户端,后端和算法。标题非常重视内容审查。
如今,今日头条新闻的内容主要来自两个部分,一个是具有成熟内容制作能力的PGC平台,另一个是UGC用户内容,如问答,用户评论和微型标题。这两部分需要通过统一的审查机制。如果它是一个相对较少的PGC内容,它将直接进行风险审查,并且不会广泛推荐任何问题。 UGC内容需要通过风险模型进行过滤,如果有问题,则会进入二级风险评估。
审核批准后,将真正推荐内容。目前,如果您收到超过一定数量的评论或报告负面反馈,您将返回评论部分,您将直接从问题中删除。整个机制相对健全。作为行业领导者,在内容安全方面,今天的头条新闻始终要求自己拥有最高标准。
内容识别技术主要集中在黄色模型,谩骂模型和粗俗模型上。今天标题的粗俗模型是通过深度学习算法训练的,样本库非常大,同时分析图片和文本。这部分模型更注重召回率,准确率甚至可以牺牲一些。谩骂模型的样本库也超过一百万,召回率为95%+,准确率为80%以上。如果用户经常说不当或评论不当,我们会有一些惩罚机制。
泛低质量识别涉及许多情况,例如假新闻,黑色草稿,不一致的文本,标题派对,低内容质量等。这部分内容很难被机器理解,并且需要很多反馈,包括其他样本信息。比较。目前,低质量模型的准确率和召回率不是特别高,还需要结合人工审查来提高门槛。目前,最终召回率已达到95%。事实上,仍有许多工作要做。标题人工智能实验室李航先生还与密歇根大学合作建立研究项目并建立谣言识别平台。