这几年,质量把控一直是微信看看推荐的基石。我们在不断的迭代升级中积累了一定的技术和经验。本文主要和大家分享整体框架的设计思路,以及如何通过平台泛化来解决组合爆炸的问题。为了尽可能向读者描述一个完整的质量控制系统的框架,文章不仅包括技术和架构方面的考虑,还包括产品和业务方面的考虑。一、看简介1.1看场景微信作为中国用户群最大的应用,不仅在人们的生活、工作、学习中提供社交功能,还提供工具、游戏、购物等、支付、内容、搜索、小程序等服务。看看作为微信的重要组成部分,在原有公众平台信息阅读的基础上,为用户提供一个集中的内容消费平台,旨在提高内容发现效率,优化内容质量,丰富内容类型。1.2看看的质量控制有别于很多其他信息产品上线之初的野蛮生长。质量控制从一开始就被提出作为康康的标准,并进行了大量的投资。质量控制的必要性由多种因素决定。(内在属性)一个产品的出身和环境决定了它的调性,微信的内在属性也决定了一个眼神的调性。在这里,调性这个词更多的是用来描述用户能够接受的内容质量的底线。用户对微信的期待也拉高了底线。(外部压力)微信的每一次变革都会受到广泛关注,在功能上线初期面临着比其他应用更大的舆论压力和监管压力。(打击非法生产)由于用户量大、流量大、经济效益强,非法生产的参与导致内容生产环境恶劣,低质量数据充斥各个角落;问题在不断变化,识别难度和控制难度也在不断增加。2.总体框架既然质量控制是推荐系统不可或缺的一部分,那么推荐系统中的质量控制在哪里,包括哪些子模块,控制哪些方面呢?首先我们来看一下推荐系统中数据的生命周期。2.1数据生命周期数据由内容生产者发布,由平台收集。这里的制作者来自世界各地,制作内容五花八门,质量也参差不齐。因此,平台接入数据后,首先要做的就是对内容进行格式化和特征提取,以便后续流程对这些内容数据进行泛化处理。内容经过初步处理后,质控模块根据内容已有特征进行过滤,主要过滤不符合平台规则的低质量数据,为后续排序提供需要考虑的质量因素。这就涉及到过滤效率的问题,一般分为粗滤和精滤。排名推荐模块会根据内容特征和用户行为对数据进行排序。最后,平台将内容推荐给用户进行消费,在消费过程中会与内容进行多次互动。这些行为数据可用于平台的质量控制和推荐排名;也可以反馈给生产者,让生产者了解内容消费情况,生产出更多满足用户需求的内容。2.2数据的多维度把控在生命周期中,我们可以看到平台通过对发布内容本身进行测试来进行质量把控,这显然是不够的。控制框架的有效运行不能仅在一个地方进行监控,而是需要全方位、多维度的配合。我们可以抽象出平台、生产和用户。我们会发现,除了提升平台自身的检测能力外,还可以对生产者和用户进行指导和评价。根据制作者制作的内容质量和用户对内容的反馈,平台可以对制作者进行分级。不同级别的生产者采用不同的质量控制策略。例如,优质账号会被贴上免检标签,避免在品控过程中发生意外伤害。并且部分被检测出内容质量低劣的账号将被封禁一段时间,以减少类似问题的爆发,增加长尾问题的召回率,提高系统的响应速度。不同类别也是如此。例如,需要控制高风险内容类别(社会民生、医疗保健、娱乐)。对于用户,我们也可以根据用户的基本数据(地区、年龄、性别)和微信阅读信息对用户进行分类。不同的用户可以使用不同的控制策略。这样,在保证用户对体验有不同要求的前提下,尽可能保证推荐系统的效率。2.3辅助模块除了上述三个部分外,还有几个同样重要的质量控制辅助模块,它们对于保证整个质量控制的正常运行至关重要。监控系统:监控系统需要对平台、生产、用户等各个环节进行监控。有些数值监控指标可以通过机器持续监控,而有些数据问题则需要人工轮询和审计,发现新问题并总结。最重要的是能够涵盖方方面面,不同的范围,不同的领域,有时浩瀚的市场数据中可能隐藏着问题。干预系统:干预系统是出现问题后快速处理的一种手段。这可以在模型策略迭代缓慢时暂时抑制问题,减小影响范围。干预系统除了起效快之外,还有一个重要的搜索相似内容的能力(去除重复指纹),比如禁止相似的标题和相似的图片。标注系统:标注系统作为提高样本采集效率的平台,不仅可以有效提高标注人员的标注效率,还可以有效提高模型的迭代效率;标签系统方便了各领域图书馆知识的收集、总结、归纳和形成。三、数据与质量前面介绍了质量控制的必要性和质量控制的总体框架。那么数据是指什么样的数据呢?所谓质量指的是什么质量指标?这些数据和这些质量指标给我们带来了哪些问题和挑战?3.1内容数据来源查看数据来源包括公众平台、腾讯新闻、腾讯视频、企鹅、微视、快手等。内容方面有文章、新闻、视频、图片等。数据样式丰富,既满足了不同用户的内容需求,也增加了监管难度。3.2质量指标同时看一下基于用户体验和具体业务需求的质量指标体系的建立。这里的指标随着业务的发展不断增加,含义也在不断丰富。多维指标可以为业务质量筛选和推荐排名提供更多个性化选择。3.3问题与挑战那么,我们面临的问题与挑战是什么?让我们来看看我们在日常工作中经常遇到的一些对话。事物的本质往往隐藏在复杂的表面之下。丰富的数据源、多维度的质量指标、个性化的业务场景,带来了组合爆炸的问题。如果每个组合单独处理,不仅会造成大量的人力浪费;同时,将无法快速响应需要高速的质量控制问题。毫无疑问,泛化、模板化、复用、从系统迁移是我们解决问题的方向。在下一节中,我们将从一个常见任务的迭代周期出发,分析迭代过程中与上述对话对应的部分,并据此概括相应的部分。4.系统演进4.1规则、特征、样本、模型下图展示了一个迭代循环中的几个关键过程。1、规则制定:规则制定可以说是解决质量问题中最重要的工作。问题分析清楚了,解决方案也就出来了。这里简单罗列几个小原则,不展开。主要构成:需要对问题进行综合分析,包括场景数据是什么,问题有多少子类型,问题所占比例,影响范围有多大,行业是否存在相同问题,方法是什么。Requirement-based:在这个阶段,应该根据需求分解问题,尽量减少技术方面的考虑。很多时候,人们往往会将“需要做什么”与“如何做”混为一谈。因为做这件事情很难或者不可能,所以认为没有必要做这件事情。基于数据:规则的制定需要结合数据进行讨论,不能凭主观想法由少数人制定规则。数据往往会提供许多我们没有预料到的相互矛盾的情况。指标:规则必须可以在人与人之间转移。2、特征提取:这涉及到如何将业务需求转化为技术需求。根据问题分析结论,提取直接特征,如标题、正文、封面图、隐藏内容、页面结构、跳转链接、锚文本、账号、统计特征等。3、样本采集:采集一定量根据需要从原始数据中提取正样本和负样本。这些样本可以通过相似样本进行挖掘或人工标记。4.模型训练:利用模型对提取的特征进行组合,对采集到的样本分布进行拟合。特征组合:模型将问题中需要考虑的特征组合在一起。有些题只需要考虑标题(标题党),有些题需要考虑文章标题的匹配度(文字不正确),有些题需要考虑文字和图片的结合(低俗色情);有些问题只需要考虑关键字(广告),有些问题需要考虑上下文(假新闻)。数据分布:模型会尽量去拟合样本数据的分布,以减少Loss。有些数据源的问题比例高,有些数据源的问题比例低。在切换数据源时,如果样本分布与目标数据源的分布不一致,往往效果会大相径庭。4.2泛化看了上一节的描述,不知道你有没有把对话和迭代循环过程匹配起来。接下来,尝试概括迭代周期的每个部分,包括细粒度化、共享特征、样本增强、模型重用和模型迁移。1、细粒度:在规则制定阶段,避免指定大质量问题进行优化,尽量将问题定义为“独立”、“清晰”、“与业务无关”的细粒度问题。这样可以减少后期业务变化带来的不确定监管问题,提高模型的适用性。比如:我们之前有个质量问题,是黑四类(广告、活动、通知、招聘),标注的时候没有区分,用一个模型训练。这样,当一个新业务出现的时候,我们突然发现,我们不需要黑四类,而是黑三类。还有其他不推荐的题型:“标题不规则”、“文字质量差”、“内容质量不高”。2、共享特征:虽然不同数据源的风格不同,但需要通过页面分析对不同数据源进行特征提取和统计。但对于同一个数据源,不同的质量问题往往会用到很多相同的特征。从数据源中提取的结果可以存储在结构化数据结构中,以方便使用各种质量模型和其他业务模型。比如文字的位置,是否有链接,是否隐藏,是否为模板内容等。3.样本增强:通过相似样本挖掘和人工标注,容易造成过拟合和低标注效率。这里可以结合数据增强提高模型的鲁棒性,结合主动学习提高标注效率。4.3模型重用在处理不同的质量问题时,我们发现有些问题使用了相似的特征和拟合方法。正如越来越多的平台算法库提供对基础模型的支持,通过从具体问题中抽象出问题,构建一个通用的模型框架,可以有效提高我们的工作效率。前面提到的需要组合起来构建通用模型框架的共享特性,旨在在设计之初就确保通用性、适应性和可扩展性。4.3.1通用模型4.3.2广告模型以下是构建广告识别模型所涉及的一些通用问题模型。广告模型主要负责识别文章中的广告内容。从内容上分为文字广告、图片广告、图文广告。从位置上可分为顶部广告、中部广告和底部广告。从长度上可分为主广告和插播广告。那么这里可以抽象为3个一般性的问题:1.问题内容的定位(插屏广告);2、多类型特征融合(图形广告);3.文章结构序列化(top,middle,tail,length)。问题内容定位:这类问题类似于图像中的物体检测,需要识别出对应的目标及其对应的位置。因此,我们提供了一种用于文本问题检测的新型框架TADL。通过滑动窗口检测的方法,将大文本分成多个小段,对每个小段进行广告概率打分和逆向定位,从而在一个模型框架内实现对广告文本的识别和定位同时,只需要文章级别的标注就可以完成训练。多类特征融合:图片广告定义广义,广告程度需要同时考虑多类特征(文字大小、文字位置、文字语义、图片场景、图片内容)。与需要大规模标注的端到端深度模型相比,分而治之的wide&deep模型框架具有更好的可解释性和更高的召回率。文章结构连载:一篇文章是否有广告,需要综合考虑多模态广告在整篇文章中所占的比例和位置。对不同广告文章中文本广告和图片广告的概率进行序列化可视化,发现有限序列模式的识别和检测可以解决多模态文章分类问题。该模型通过Multi-CNN检测异常“突起”,并通过BiLSTM检测概率趋势。4.4模型迁移数据源之间的数据分布必须不同。模型迁移主要是为了解决数据分布不一致的问题。这里我们以色情低俗识别为例,从“词向量”和“特征分布”两个方面考虑迁移问题。4.4.1统一词向量词向量在不同的场景下有不同的语义。例如,“下方”在图形和视频标题中具有不同的语义。多数据源数据训练出来的词向量比单独多数据源训练出来的向量要好,因为它有更多的信息。后来基于更大训练集的bert的出现,极大地丰富了词向量的信息量。4.4.2特征空间的统一这里的方法主要有finetune、多任务学习、对抗学习。Finetune的目的是利用现有模型的特征提取能力,然后结合和调整目标数据源,以达到更好的效果。这种模型在源域数据标注量比较大,模型框架可以表示足够多的共同特征时比较有效,比如bert。多任务学习在不同任务之间建立共享层,学习不同领域之间的共享知识,从而实现双赢。缺点是需要大量目标域的标注数据。对抗性学习充分利用大量未标记的数据来消除某些邻域分布的差异。5.持续战斗5.1动态数据上面提到的多元化问题,多是由于业务需要,平台内部主动引入更多的数据和质量指标造成的。这些问题是相对静态的。业务上线前,平台会进行彻底优化,不会有太多惊喜。接下来我们讨论动态数据变化的问题。在日常的内容生产过程中,内容生产者不断根据平台环境和用户反馈修改内容的风格和品类。这些变化会改变数据的分布,导致平台对新数据的漏接或误判。其中,黑产的持续性、故意性交锋最为频繁,也最为棘手,也是我们最为关注的。这些对抗具有形式多、类别多、迭代周期多的特点。形式多样:题型数据不断变化和演变,从文字、图片、视频到链接。在品类上,也在多个高风险品类中来回切换,不断推陈出新。迭代周期短:某特殊色情头条党风在短时间内获得良好曝光后,黑产立即大规模生产,并在被打压后迅速转向其他类型案件。5.2解系统完全消灭敌人几乎是不可能的,因为敌人在黑暗中。原则上是为了增加黑产的作弊成本,降低平台的维护成本。我们还是从前面提到的质量控制体系的三个部分入手。平台:每天都有少量人工标注轮询在线数据,屏蔽收集有问题的数据。用户:限制大量用户报告有问题的数据。制作:黑名单:封禁历史上有不良记录的账号,同时对与这些账号密切相关的账号进行挖矿和封禁。沙盒机制:对于发帖较少且未经平台验证的新注册账号,推广范围有限。样本扩散、模型迭代:用户反馈、平台监测,虽然能发现新问题,但泛化不够。虽然对账号的打压是泛化的,但是新问题新账号是发现不了的。为了解决原有系统的不足,我们尝试将两部分结合起来,通过人工监测和负反馈收集样本,然后提供给模型进行迭代改进和召回。最后,从账户维度进行普查。这和上面说的样本增强的区别在于,样本扩散更多的是新问题样本的收集。5.3扩散迭代5.3.1正常流程那么如何进行样本扩散,加快模型的迭代周期呢?以下是在样本采集周期中需要完成的大致事情。首先,我们根据发现的问题数据通过相似度计算,在源数据(sourcedata)中找到一批与问题数据(sampledata)相似度高的未标注数据(unlabeleddata)。账号:一个账号的大部分内容都比较相似,同一个黑品的内容往往是雷同的。类别:对问题相对集中的类别进行数据挖掘。关键字:使用一些匹配的表达式来框定一个范围。聚类模型:简单计算样本内容的文本相似度。分类模型:建立一个简单的分类模型进行初步筛选。然后对这批未标注的数据进行人工标注,从而筛选出一批能够有效提高模型对新问题识别效率的标注样本(选择数据)。最后将过滤后的样本与原始标注数据结合作为训练样本进行模型训练。模型训练好后,在测试数据(testdata)上测试效果。5.3.2加速过程工作循环的主要工作量分为两部分,一是相似样本的挖掘,二是样本的人工标注;相似样本挖掘的准确率越高,覆盖的模式越完整,人工标注的样本数量也越大。较少的。在这两个方面,我们可以使用半监督学习和强化学习的方法进行优化。5.3.3在自动化过程中更进一步我们尝试用强化学习来代替整个问题样本的挖掘过程。强化学习选择器从源数据中选择样本,用已有的标注样本发送给判别器进行训练,然后判别器在测试数据上进行测试,并将问题数据的性能反馈给强化学习选择器作为奖励。6.总结与展望前面讨论了框架的通用性,那么这个框架作为一个整体是不是通用的,是否可以应用到其他平台上呢?事实上,由于各种内容平台在问题类型和数据类型上有很多共性;所以看看控制框架和技术,面对搜索、公众平台、朋友圈等其他场景,还是可以提供相应的体验和能力的。在过去的六个月里,搜一搜已经成为用户获取内容的重要场景。我们在复用看看的能力的基础上,也构建了类似的控制框架。虽然我们掌握了各种能力,可以解决很多问题,但是与我们知道的知识相比,我们知道的并不多,意想不到的情况时常出现。质量控制乃至机器学习的主要矛盾是用有限的知识去应对无限的未知数。持续的知识获取意味着自主学习和与现实的持续互动。平台的质量控制体系就像人体的免疫组织。当病毒来临时,免疫细胞会产生抗体来消灭病毒。人类在漫长的进化过程中构建了复杂的免疫系统,与此同时,病毒也在不断完善。系统越复杂,出现问题的可能性就越大,问题发生后解决的成本和难度也越大。在构建强大的内部免疫系统的同时,我们还需要营造良好的外部环境,让更多优质的内容生产者进来,这是解决质量问题的根本。
