聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

网易易盾内容风控实践

2022-12-23 23:50 浏览: 2001617 次 我要评论(0 条) 字号:

导读:随着 AI 技术的发展,AI 识别技术显著提升了不良信息拦截的效率,从而帮助互联网构建起更加健康的内容生态环境。然而 AI 技术面临最严峻的挑战来自于数据。如何从场景的角度更加深入地理解和分析数据场景的特点,如何从技术方案的角度更加完善地完成数据的定义、描述、收集、选择、迭代和管理等环节,如何从算法的角度更大程度地利用数据的价值,已经成为深度网络和 AI 技术发挥更大作用的关键和前提。

本文将从 Data-Centric AI 的角度出发,分享网易易盾在内容风控方面的实践和思考。主要包括以下 4 个方面:

  • Data-Centric AI 背景、意义和概念

  • 内容风控场景的业务和数据特点

  • 数据方案、数据管理和数据流程

  • 算法创新和数据价值之间的关系和作用

分享嘉宾|胡宜峰 网易易盾 计算机视觉资深算法工程师

编辑整理|李聪玥 平安科技

出品社区|DataFun



01
Data-Centric AI 背景、意义和概念
一个完整的 AI 系统包括数据、算法/模型、解决方案和部署等多个方面。绝大多数精力都集中在数据以外的环节。这个现象的原因,归结有二:
  • 学术界有很多固定的公开数据集存在,数据相对来说是一个比较静态的状态。
  • 在工业界,大家往往有一个误区,认为数据就等同于标注。
这两方面的原因导致我们对数据关注的程度不够。对于常规的算法优化或者模型训练过程,我们往往是在数据固定的前提下,追求在测试集上的高指标,但是如果把这种方式应用在业务落地,尤其是内容风控场景,我们会发现在测试集上表现较好的模型在线上或真实场景上可能存在较大的反差。造成这个差距的一个重要原因就是没有在数据流程上投入足够的精力。这也是我们今天谈到 Data-Centric AI 的一个核心点。

Data-Centric AI 这个概念最早是由 Andrew Ng 提出的,他在提出这个概念的同时,在非常大的范围内做了一个投票的调研,调研人群主要是一些科研人员和业界的从业人员,其中 80% 的人认为相较于模型或者算法、解决方案等,数据起到的作用是最大的。这也在一定程度上表明了 Data-Centric AI 的意义。
他做了一个很形象的比喻,就好比是做饭,数据相当于挑选食材和准备食材的过程,但是这部分仅仅占据了 1% 的研发资源;模型训练或者解决方案等同于烹饪阶段,这部分则占据了 99% 的精力和研发资源。这也反映了我们对数据的关注是不够的。
尤其在内容风控等 AI 落地的场景中,一个表现优秀的模型需要的是数据和模型的互动,两者是互相促进的关系。优质的训练数据能提升模型在真实场景上的效果和泛化能力,好的模型反过来也能促进我们更加快速地生成、自动获取或者人工标注出更高质量的训练数据。两者是相辅相成,螺旋上升的过程。
这就是 Data-Centric AI 的核心观点。

02

内容风控场景的业务和数据特点

接下来介绍一下内容安全/内容风控场景。
1. 内容风控场景的业务
由于我们正处于一个海量互联网数据的时代,随着互联网的发展,内容载体从最开始的图文发展到现在的文本、图像、音频、视频和直播等等,在量和速度上都有着飞速的提升。
内容生成、内容制作的流程也更加敏捷和快速。一方面产生的数据量正在大幅增加,另一方面内容制作发布的审核流程在不断简化,这样一正一反带来了很大的内容安全隐患和压力。针对可能出现的各种内容安全隐患,网易易盾做了比较全面深入的研发。

这里只展示了一部分,主要包括色情广告、违禁、涉政、暴恐、涉价值观、增值服务、辅助能力等大类。这些大类当中细分的方面非常多,包含的垂直领域和垂直类型也非常多。对于这些内容,网易易盾从广度、深度和粒度这三个方面都做了比较全面的覆盖。
2. 内容安全场景数据特点
相比于其他 AI 场景,内容安全场景的数据有着如下一些明显的特点。

首先是极端的长尾分布,内容安全领域是面向海量互联网数据服务的,线上随机流量中违规数据占比是极低的。因此用大海捞针来形容内容安全的算法和服务一点都不为过。我们要从海量的互联网数据当中去捞出这些占比极低的违规类型,还要保证捞出的数据的精确度。
第二个特点是数据中存在很多特征非常相似、可解释性非常高,但不属于违规的数据。在处理海量数据时,无论从视觉还是其它层面,都存在易误判、极端的细粒度和难例挖掘的问题。
第三个特点是极端的小目标识别,在识别违禁区域时,比如抽烟识别,抽烟动作是有明确特征的,但在一些很远的场景中,比如拿着一个烟头而并没有去抽它,这也属于抽烟识别的范畴。这个烟头可能占的像素区域只有 3*3,也就是要识别一个 3 *3 的像素区域的标签是否违禁,决定性的违禁区域非常小,是一个极端的小目标识别问题。
最后一个特点是极端的开放域识别,很多时候违禁类型并不是固定的,识别类别是多样的、不确定的以及频繁增加的。
除了这些问题之外,在内容安全领域,还有其它一些问题,比如极端的域泛化,由于我们面向的是海量互联网数据,数据域的变化广泛而频繁。还有极端的模型防守对抗问题,内容安全存在频繁地跟黑灰产对抗的问题。黑灰产通过一些模型的攻击,或是通过一些编辑,甚至PS等方式去做对抗,这也是我们频繁遇到的一个问题。当然我们也会存在一些比如类别边界比较模糊、数据质量差别大这种与其它 AI 场景类似的问题。
03

数据方案、数据管理和数据流程

1. 数据管理

数据管理和流程贯穿在初始模型训练、模型的迭代训练和模型测试整个环节,主要包括数据的刻画、收集、生成与拓展、标注、增强、选择、清洗、分析和迭代等等。这些环节不是孤立的,而是互相衔接补充以及包含的。
额外讲一下模型测试这个环节,我们从 Data-Centric AI 的角度来看,模型的测试其实就是测试数据选择的一个过程。选择数据要对齐线上最终的落地场景的数据分布,要对齐一些特定的历史反馈。这也是从数据的角度去看模型测试。
2. 数据刻画

我们启动一个业务时,数据刻画起到了非常重要的作用。如果数据的定义和刻画考虑不全面,一方面会增加识别和迭代的难度,另一方面也会增加数据标注的成本,影响可用性。
所以需要有比较全面的评估,构建多级标签的体系,分析标签的包含、互斥、歧义的关系,对识别范围进行有效的扩展,对相似的易误判的标签进行分析,考虑标签的通用性,同时细化边界和细节描述,关注标注复杂度。
标注数据刻画这个环节可能偏经验一些,我们很难详细地把经验说清楚,但是我们的目标是希望降低模型识别的难度、模型迭代的难度以及降低标注的难度,并提升标注的可用性。
3. 数据收集
在有了详细的数据刻画和描述的积累之后,我们就需要对数据进行收集。一方面模型的冷启动需要数据收集,另一方面数据的收集和补充也贯穿在整个模型迭代过程中,数据收集需要考虑扩充数据分布范围、对齐应用场景数据分布、提高标注的命中率和针对性、提高标注质量等几方面问题。
以上几种方式共同使用,可以提高标注的命中率和针对性,从而提高标注样本的质量。
数据精细化的管理包括三方面的内容,一个是数据生成,一个是数据的自动获取,即标签的自动获取,也可以简单地理解成模型打标,还有一个是人工的标注。在正式做数据标注之前,我们可以问自己一个问题,这个数据是不是真的需要标注。
4. 数据生成与拓展

数据生成也是一个比较重要的环节,因为有部分业务场景的数据,不一定非要有数据的标注,再进行模型的初始训练的冷启动方式。数据生成是能让模型快速地自动获取初始能力的方式。当然这里的数据生成并不是狭义上的理解,比如我们通过各种分割加贴图的方式去做贴图或者用图像生成的方法去生成数据,我们生成的初衷是希望模型有快速的初始能力。所以通过一些无监督和小样本学习的方式,让模型有快速地初始识别的能力,在我们看来其实也属于生成和冷启动的范畴。
此时生成的数据有一个很大的特点,数据分布是非常有局限性的,可能具有初步的能力,但是能力比较有限。从生成的数据到正式数据分布的扩展是很重要的环节。以 Logo 识别为例,我们结合技术方案,设计跨任务的数据增广扩展的模块可以很好地实现生成数据到真实数据分布的扩展。所以在数据标注之前,数据生成是非常重要的一个环节。但也并不是所有的业务场景都可以采用数据生成冷启动。
5. 数据标注

数据标注有一些需要注意的点。
首先为了降低标注的难度,我们需要细化标注文档、细节、边界解释等。
第二点,为了降低标注的成本,提高标注的有效性,模型的预标注非常重要,模型对标注的数据有一定的识别效果,如果全部从头去标,有很大的标注浪费,因此尤其是对一些复杂场景的模型标注,用模型的预标注结合人工标注是非常重要的一点。
第三点,就是希望提高标注的命中率和有效性,比如抽烟行为的标注,希望能标出抽烟的行为,如果随机选择数据去标注,绝大多数都是正常的,标出这些数据是没有什么用的,所以要结合数据的选择和清洗去标注
第四点是从可信度的角度去考虑,比如在标注数据时,考虑的可能是违禁或者违规相关的属性,如果不关注那些与违禁无关的属性,可能会导致模型训练是有偏的。所以从可信度的角度来说,要降低这种数据的偏向,对于一些不关心的属性,也要做一个均匀的采集和采样
第五点是希望提高标注的准确率和可用性,需要一些交叉验证和标注质检的方式
第六点是很重要的一点,与第二点类似,标注和模型训练需要高频交叉进行,不建议一次提很大量级的数据去做标注,因为可能会浪费。我们希望用不是很大量级的数据去做高频的交互,这样可以降低数据标注的开销,提高数据标注的可用性。
6. 数据增强
数据增强这块大家都非常熟悉,这里就不做详细的介绍了。
7. 数据选择与清洗

精细化的数据流程当中比较核心的点是数据的选择和清洗。数据可能是生成的,或是模型打标的,也可能是人工打标的。我们要做的事情是区分什么时候能生成,什么时候需要模型去标注,什么时候需要人工标注。在人工标注这块还要考虑一个很重要的点是用什么样的数据去标注才是最好的,能更大地利用标注的有效性,降低标记资源的开销。
数据的选择与清洗,是比较重要的环节,这里应用的前提是模型已经越过冷启动阶段,有比较不错的能力,到达深层次迭代的环节。数据的选择应用的环节主要包括选择哪些数据直接应用到模型训练、选择哪些数据进行数据标注、从已有训练集中剔除哪些(简单的)训练数据、如何构建半监督unlabel data数据集等等。这里我们考虑的点主要是上图中所列的五个方面。在选择数据进行标注的时候我们考虑的一般是uncertainty、diversity、distribution三个方面,我们肯定是要选择不确定性高、丰富度高、并且数据分布广泛的数据用于标注。在应用模型打标的方面,我们还要额外考虑Accuracy和Balance的问题
针对上图左侧所列这些热点领域的研究和应用,在内容安全的场景中都取得了明确的收益。比如Active Learing,对应于Uncertainty和Diversity的要求。然而当你遇到的是完全adversarial的样本,或是当对域外的数据完全无召回能力的时候,通过结合OOD和few shot learning的方法可以进一步提升域外数据的召回能力,从而对应于distribution的要求。在我们提升样本accuracy的时候,置信学习、noisy training的方法也是有效的提升标签准确率的方法。
这样,三条链路就非常清楚了,什么数据去生成,什么数据去标注,什么数据直接用,是一个半自动化的过程。这样相较于随机采数据去标这种最原始的方式,不仅减少了标注资源,效果也会有一个量级的提升。这样,从数据角度,我们可以更好更快地去响应需求,提升模型的效果。当真正去做业务落地的时候,很难做到全自动,肯定也要有一些人工的数据分析。
数据分析的内容包括当前版本的整体进度召回的情况,特定类型的召回情况,历史反馈的召回情况,模型版本之间的差异以及易误判类型的归纳。我们会做一个定向的数据补充,与数据生成、数据选择清洗是互补的,这样可以更好地去完成数据运作的流程。还包括一些特定的场景分析,比如这个类型可能在某个固定的场景下的效果不好,这时就需要人工参与以及一些经验的总结。
8. 数据迭代

关于数据迭代过程,在此不做详细讨论。前面介绍的数据标注、清洗、选择、增强、分析其实都结合在耦合了半监督和自监督的整个数据迭代的框架里。核心点是我们希望无论是数据的生产、模型的打标还是人工的打标,都能最大程度地发挥数据的价值。在尽量小的开销,尽量快的速度,尽量短的周期和尽量高的频率的前提下,最大程度去发挥数据的价值。
9. 数据测试与验证

内容风控场景可能用到非常多的技术手段,但是归根到底可以理解为一个识别问题或者内容理解问题。数据测试需要对齐我们的任务。测试的内容,一个是数据,一个是指标,一定是要对齐最后的目标。测试的数据要对齐最终的目标,这个很好理解。测试的指标也是要对齐最后的应用。一些中间的环节,包括一些很偏算法的指标,不能很好地反映出最终端到端的效果。数据和指标都对齐,才能保证不会出现离线侧效果很好而线上效果很差这种情况。

上图是整体的内容安全的 AI 架构。
除了数据之外,算法侧还包括算法模型的优化、算法的解决方案的优化、速度性能的优化。这三个方面也是非常重要的思考点。我们在做任何一个算法时,都是从这四个方面共同去努力的。数据的管理和价值的利用也为后续的几个方面提供了广阔的空间。
以上从系统化、流程化、精细化的数据工作介绍了我们在内容安全领域对 Data-Centric AI 的理解和实践,我们的目标是,希望无论数据的生成、模型的打标,还是人工的打标,都能在尽量减小开销的前提下,最大程度地发挥数据的价值。
04

算法创新和数据价值之间的关系和作用

1. 自监督

自监督这个方向,有着非常强的任务相关性和场景相关性,所以我们去构建任务和场景相关的自监督基础模型集合是非常有效的从最开始的阶段就去发挥数据价值的一种方式。比如武器大类,有非常多种类的违禁武器;服饰大类,有宗教服饰、公职服饰、暴恐服饰等。我们发现,在某个大类上做一个统一的基础模型是非常有效的。做一个具体垂类的任务,我们希望在这个大类有一个比较好的或者几个比较好的初始模型,作为以后这个方向具体的新业务模型的一个初始。
2. 半监督

我们在业务中发现,半监督的方法很多时候解决的是稳定性的问题,难以实现域的跨越。针对这个问题,我们也做了一些尝试,篇幅有限就不在此介绍了。
3. 弱监督
弱监督这个方向,包括弱监督的定位、检测、分割等等,能帮助我们更加充分地发掘出更细粒度的内容信息,从而提升识别的效果。这个方向如果和解决方案联动,有非常多的方式可以去挖掘。比如部分场景问题,用分类标签就可以拿到非常好的分割结果。也就是说从这种标注难度非常低的监督入手,能获取到更细粒度的监督信息,再结合解决方案的改进,是一个非常好的提升数据利用价值的方向。
另外,无监督,开放域识别、小样本等等都会包括在整个数据流程中,它们不能直接地解决一个业务问题,但可以在业务场景中的某些环节起到非常大的作用。
05
问答环节
Q1:模型预标注和人工智能标注怎样才能有效地结合?
A1:我认为结合方式是可以在构建标注系统的时候,有一个预标注的功能。我们标注的时候并不一定是从头去标注,因为有些标注比如 OCR 的标注,或是一些很细的类别的标注,如果从头去标,复杂度非常高。从标注的人员来看,如果有一个预标签,模型对标注数据肯定是有识别能力的,当然不包括冷启动阶段,但是绝大多数是在中间的这样一个迭代的环节中。如果有预标签,标注人员一扫过去,发现模型给的是对的,就不用再做操作了。如果有标注都要人工去点,操作的复杂度和操作的差距都是非常大的。所以模型的预标注是在开始做标注系统的时候就需要考虑的一个功能。
Q2:请问对于类别边界模糊的问题,除了尽可能地将标签体系建立完备之外,从模型算法的角度还有经验可以分享吗?是否可以考虑采取相似图的检索的方式进行图像的鉴别和分类呢?
A2:我觉得这也是非常好的一个问题。边界模糊在算法里是细粒度分类的问题。首先,分类标准一定要清晰,否则标注是标不出来的。第二个需要从解决方案去做设计。比如在一个模型里,有 A、B、C 三个类型,其中 C 是正常,A 和 B 是两个非常近的类型,但A是违规的,B 是不违规的,那其实 B 和 C 是一类的,A 是一类的。如果你的模型需要区分 A 和 BC 的话,就会出现一个非常大问题,即 AB 是属于两类的,而它们的类间距非常小,这其实是在给模型找麻烦。我觉得可以很好地去理解这样一个问题,在流行的流程设计中,我们可以做一些难易的区分,也就是前置的一些模型仅去区分 C 和 AB,但在后面的细粒度的模型当中,只是做细粒度的一个分类,并不需要去区分,数据分布划开了之后,针对性就会更强,模型效果也会有明显的提升。从模型设计上,这种层级的难易区分的设计和考虑是非常重要的,这同时也是从速度的角度去考虑的。
你提到检索环节是肯定的,现在最好的方式就是模型加库,单对模型来说,即使我们现在的流程做得很完善,数据运作的流程,包括如何生成数据,如何去打标,如何机器打标做得很快,其实也有一个周转的过程,很难做到实时的响应。模型加库的方式,从特征检索的角度来看,有很快的响应的过程,但是检索也会有它的问题,两者之间是一个互补的关系。第一个是标注边界细化这种方向,第二个是流程解决方案的设计方向,第三,你说的检索也是一个比较通用的方向。所以,我觉得模型和库的配合也已经是非常重要的一点。
今天的分享就到这里,谢谢大家。


|分享嘉宾|


胡宜峰

网易易盾 计算机视觉资深算法工程师

胡宜峰,毕业于中国科学技术大学,具有多年AI算法研发经验。研究方向包括图像分类、目标检测、实例分割、图像检索、视频深度鉴伪等,在计算机视觉方向和内容安全领域有丰富的算法研究和项目研发经验。


|点击阅读更多文章|

数据治理隐私计算大数据存储大数据计算

智能金融多维分析大数据架构产品经理

搜推广知识图谱NLP智能风控数据科学

原创经典图机器学习AI基础设施数字人与多媒体

|免费直播&资料|

# 直播推荐 #



网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复