深度学习图像算法在内容安全领域的应用

2019-10-29 10:32:06 浏览数 (1)

互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度学习图像算法在复杂场景下的效果优化方案。

文 / 李雨珂

整理 / LiveVideoStack

大家下午好,我是来自网易易盾的李雨珂,本次我分享的主题是深度学习图像算法在内容安全领域的应用。网易易盾是国内领先的内容安全&业务安全服务提供商,我也很荣幸有机会在这里分享易盾在人工智能方面的实践工作。

我个人前期主要从事电商领域会员营销的算法工作,主要的内容是给不同的用户发放不同类型的优惠券,操盘好几个亿,每天都心惊胆战。近期我主要是在易盾推动内容安全算法优化,也包括了鉴黄、色情识别方面的工作。

本次分享主要分为展示AI商业落地案例和分享网易易盾在长期工作过程中的算法优化经验两个部分,人工智能的概念已经火热了至少两年的时间,和热度相比,商业化的落地案例还是相对有限的,很多时候是包装成人工智能的传统技术手段,真正意义上的人工智能深度学习商业化落地点集中在生物识别、互动娱乐等方面。另外在学术界,虽然人工智能,尤其是深度学习方法已经取得了非常大的突破,但在实际工业场景使用的过程中,还是遇到了非常大的挑战。

1. 背景介绍

1.1 互联网内容安全

互联网已经深入生活的方方面面,随着信息量的增加,有害信息在互联网的传播速度也是非常迅速的,尤其是在互联网社交领域。在我们接入的某些客户中,色情内容占比高达10%以上,更可怕的是,一些面向青少年的APP中也存在着非常多少儿不宜的内容。有害内容信息大致包括了色情、广告、暴恐、违禁等方面,以色情信息为例,目前互联网中的色情信息已经不单是单纯的、暴露的色情信息,更多转变成暗示类、隐晦的、打擦边球的三俗信息,这对内容清理来说也是增加了很大的难度。因为从事了这样的工作,见过很多样本,我个人觉得在公众平台清理信息是非常有必要的。

在我的印象中,近两年来,尤其是最近几个月,互联网APP下架的消息还是比较多的,这里很大一部分原因是由于用户上传了有害信息,而平台没有及时发现制止,使其产生了传播的作用,进而被监管部门发现导致下架。

实际上,不单单是互联网企业,任何有用户上传内容功能的企业都会面临这一重大安全问题,在海量的数据中发现小量违规内容的确非常困难,而且有害信息涉及的种类繁多,业务定义也非常复杂。作为内容安全的服务提供商,易盾在业务上需要做到向企业提供包括鉴黄、鉴恐等一系列违规内容的识别服务,保证企业内容不出现问题。

实际上,这一问题已经引起了国家各个部门的高度重视,相关的法令也在陆续颁布,对互联网内容治理起到了重要指导作用,也给相关的工作提供了更确切方向。

1.2 人工审核与机器审核

对于互联网内容审核的实施方案,最早期主要由人工完成,虽然直观感受上普遍都会认为人工审核的效果更靠谱,但其实纯人工审核会带来很多的问题。首先,随着企业业务量的增长,数据激增,人工的代价过于庞大。举例来说,一名鉴黄师每天可以审核4万张图片,在日均100万的平台上需要25名鉴黄师来从事人工审核的工作,一年的投入成本可能在200万左右,这对于中小企业来说是一个非常大的负担。其次,根据人工审核的实际情况会发现,人工审核的速度并不能匹配数据产生的速度,这就会导致用户上传数据有一定的滞后性。又由于数据量过于庞大,人工审核的准确度也并没有想象中那么高。最后,审核的标准非常复杂,对于审核人员的培训难度也非常大。

随着近年来内容审核需求的增长,易盾在技术上也做了很多的尝试。最初易盾是通过黑白名单库、规则系统的方式来做机器审核,随后逐渐增加了传统CV方法,包括图像纹理、肤色等手段来进行协助,最终发展到基于深度学习的内容审核方法。

我个人主要经历了第三阶段,也就是深度学习阶段的技术探索,在深度学习发展之前,机器通过纯图像的方法进行审核其实是非常困难的。

1.3 机器审核面临的挑战

在具体介绍解决方法之前,还是应该先提一下使用深度学习技术进行机器审核的难点,主要分为前期海量数据资源要求和后期投入、运营维护两个阶段。前期面临的问题主要是由于深度学习比较依赖数据,而违禁数据相对而言数据量比较少,收集难度大,覆盖类型有限。而后期模型上线之后会存在样本攻防问题,这也是所有服务都避免不了的,对抗成本需要投入大量的人力和物理。

1.4 前期数据壁垒

上图罗列了一些导致前期数据壁垒的问题,关于前期数据积累方面,之前某个客户的平台中出现了一些割腕的图片,由于数据所占的比例相对较小,外部数据收集的难度也较大,后来团队又去找了数据服务商,而服务商其实也没有类似的数据可以提供,样本的匮乏给团队在机器审核方面带来了很大的困难,因为深度学习方法还是要以数据作为基础来进行学习的。

1.5 后期样本攻防

攻防对抗是安全领域常见的一个问题,众所周知深度学习方法本身就存在样本对抗的问题,一张原本能够识别出来的图加入微小的改动,模型就可能识别错误或者识别成其他类别。用户发现特征明显的违规图片能够被自动识别后,就会对图片进行一系列的篡改,导致系统无法识别。以广告为例,左边是特征较明显的广告图,右边是用户对图像防御系统进行攻击的图片。

1.6 深度学习采用的技术

带着上述这些困难,团队进行了深度学习在这一领域落地的初步探索。具体方法上团队采用的基本技术手段是深度学习中最常见的图像分类网络和目标检测网络,图像分类网络是对图像整体提取特征后进行分类,目标检测在提取特征后对图像位置和类别打上标签。在实际解决问题的过程中,对于不同的违禁内容往往会使用不同模型和服务进行处理。

为了宣传,人们往往将深度学习和人脑智能联系在一起,我个人本身是做神经科学出身,实际上两者确实是有一些相似之处,例如视觉系统也有V1-V2-V4-MT的层级结构,感受野RF和卷积核也有一定的相似之处,但是这种联系相对来说是比较弱的,神经科学家往往不会同意这种对应关系。尤其是目标检测、语义分割等方法,工程设计感还是非常强的。所以严格意义上来说,深度学习方法虽然有效,但离真正意义上的大脑智能还是有很大差距的,直观上来说很重要的一点是深度学习方法非常依赖数据,推理能力是有限的,要学会区分猫和狗需要读取大量的数据,但人脑其实并不需要看这么多的样本就可以对事物有较好的区分。由此可以看出深度学习和人脑工作方式并没有那么相似,也不是直接借鉴,但在工程应用领域是非常好用的。

2. 初期探索

本页PPT图片来源为:https://github.com/hoya012/deep_learning_object_detection本页PPT图片来源为:https://github.com/hoya012/deep_learning_object_detection

在初期的工作过程中,算法工程师往往会陷入一个陷阱,由于近几年来深度学习的发展太快,各种各样的网络层出不穷,在公开数据集上也有许多令人震惊的效果,因此算法工程师太多关注方法本身,并在有限的业务数据上进行调参。因此在工作过程中会发现方法上的优势其实非常有限,公开数据集上有优势的方法不一定适用于实际业务数据集。造成这样结果的原因在我看来有两点:

1. 开源方法往往以公开数据集进行测试,公开数据训练的例子是真实世界中的一个子集。

2. 算法本身不具备很强的推理能力,本身还是更依赖数据。

在这样的工作模式下,算法在线上主要会出现大量不可解释的误判和特征不明显、较模糊的样例不能召回的漏判问题。上图右边就是一张具有代表性的误判图,在线上还有更多各种各样的误判。

3. 优化过程

3.1 算法优化过程梳理

暴露出上文提到的问题,团队开始对算法的优化过程做梳理,做了以下一系列的工作。首先要做的就是定义业务标准,对每一个细分类都需要有明确的描述,标注作出判断时有明确依据。另外需要明确问题出现的重要程度,从全局角度考虑,放弃一些零碎的偶发样例,集中精力解决某一类型的问题。以广告为例,上图左边图片内容包括女性图片和联系方式的色情推广类广告,我们称之为美女广告,上图右边图片包含开发票、代刷粉、办假证、贷款、网络兼职等具有明显的、推广第三方资源的引流信息,我们称之为垃圾广告。

3.2 测试标准

在源头的标准定义之后,下一步就需要建立更能表达线上效果的测试集和测试标准,测试并不单单是在做算法demo时选取一大批数据分为训练和测试,在测试集上取得好的效果之后就拿来使用,这是远远不够的。上图中列举了五种测试类型,第一种是比较基本的基础测试集,大概十万级别到百万级别的数据,会对算法效果有一个基准的认知;第二种是线上数据,把线上千万级别的数据拉取到本地进行测试,由于线上数据的嫌疑量比较低,通过测试查看召回数据就可以评估出应用到线上的误判情况;第三种是特定类型集,这部分结合高频出现的类型进行固定测试,对漏判进行评估;第四种是在两个版本发布之间运营收集的一些历史反馈做效果提升的评估;第五种是预发测试,模拟上线情况减少突发问题。

3.3 数据层面

该页图片来源为:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=MachineLearning&doc=exercises/ex8/ex8.html该页图片来源为:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=MachineLearning&doc=exercises/ex8/ex8.html

关于数据方面,易盾在算法维护过程中,已经通过建立线上数据闭环流程来进行数据层面的优化,数据通过模型后会带着分数回流到标注系统,但大规模标注非常消耗成本,因此并不会全部都进行标注。在这其中易盾更关注两类数据,一类是模型已经判断的比较好的数据,也就是图中右上角的数据,这部分模型具有很明显的特征,拿回之后再扔进模型训练,其实会提高模型的整体分数。而且在服务透出的时候会分为确定类型和嫌疑类型两个级别,确定类型的精准度大概在99%以上(色情模型最新数据)以上,机器可以对这部分数据做直接的处理(拦截、删除),嫌疑类型的精准度大概在80%以上(色情模型最新数据)以上,对于这部分类型团队还是希望通过人工做二次审核,如果真的有问题再做进一步处理。在线上应用的过程中,确定嫌疑的比例大概在2:1到3:1左右,确定类型的比例还是占大多数,这也得益于模型会不断回流确定类型数据来加强模型。

放在边界的数据点类似于在考试中拿不准的题目,将其汇总作为习题集,集中对模型进行更好的训练,这样可以使模型对边界训练的更好,能够提升解释性和确定性。

3.4 漏判优化

在漏判优化方面网易易盾也做了许多的尝试,主要由上图提到的五点:数据回流扩充正样本、定向收集数据、目标检测辅助、FPN ATTENTION和其他技术辅助,通过这些技术将易盾整个识别服务包装起来。

模型层优化网易易盾尝试了特征金字塔和注意力机制,特征金字塔更多是用在检测网络中,通过底层的基础信息和上层的语义信息相融合,能够解决一些尺度的问题和缓解小目标检出的问题,这在实际应用中是比较有效的。注意力机制主要是用在分类阶段,能够对特定区域做加权操作,提高其中的关注度,能够协助把模糊信息确定化。这两种方法也是在模型层优化阶段的常用的。

3.5 多技术手段辅助

网易易盾的深度学习图像算法对外透出是广告服务,但实际上这背后结合了大量的技术手段,对外界来说只看到一张图片上传之后判定是否为广告,但在其内部其实经历了非常多的步骤。

3.6 OCR辅助

虽然市面上有很多的OCR产品,但网易易盾还是投入了大量的精力去自研匹配内容安全场景的OCR技术,主要解决了倾斜、倒立、仿射变换和竖排以及特殊字体、排版和手写体方面的问题,虽然这些内容在通用场景中不太常见,但在内容安全领域这些内容是非常多的,用通用OCR技术去处理这些图片往往起不到特别好的效果。

3.7 图片库辅助

同时网易易盾会对偶尔发现却没有办法被照顾到的图片做一些处理,比如有些图片被漏判,但又没办法及时更新模型去解决,因此会将其加入图片库中,这里的图片库并不是传统意义上的MD5库和Hash库,而是以深度学习为基础,提取了全区特征和结合传统局部特征的图片库,在学术上称之为同源图像检索,加入图片后,它的相似图片也同样会被召回,这大大提高了应对剪裁和涂改的能力。

3.8 优化过程小结

易盾算法的优化在我看来,最重要的两点是问题定义和数据捞取,当然模型的选择和调参也同样不可忽视,但前者决定了算法服务的下限,需要在保证服务下限的前提下通过后者抬高服务的上限。上图右边所示的是易盾算法优化的闭环,这个过程同样应用在深度学习中。

3.9 业务效果

以上述一系列的优化逻辑为基础,易盾通过不断的努力还是取得了不错的业务效果。首先在整体的业务表现上还是能够让运营和产品满意的,当然也会出现一些很难处理的数据,这部分也会通过优化过程慢慢解决。另外易盾还对识别范围做了扩充,整体的识别能力现在来看是非常完备的。正是有了之前优化的经验,易盾能够快速响应一些新的需求选择最佳的模板来做一些实践。在数据统计方面,核心模块(包括色情、涉政、广告等)的整体漏判率控制在万分之三以内,精度维持在97%以上,通过横向与友商产品作比较,目前易盾产品达到这样的指标在业界上还是比较占优势的。

3.10 进一步的工作

除去上文提到的工作内容,其实还有很多可以进一步推进的工作,比如上图提到的业务输出精细化、模型层面精细化和模型性能优化。

上图列出了易盾在图像业务的横向拓展方面所做的工作,比如Logo识别和旗帜识别。在另一方面,易盾也在平台化支撑和独立精耕细作这两个线路上做事情,前者由于易盾自身有一些好的实践和最佳模板,因此可以做到快速地响应需求和解决问题,对于一些对效果要求比较高的场景,易盾往往会垂直优化已有业务,定向优化模型,两条线路存在一定冲突性,分别适用于不同的应用场景。

3.11 算法架构图

红框标注的主要是算法中模型层优化的内容红框标注的主要是算法中模型层优化的内容

由上图算法架构图可以看出,算法在其中只是做了很少一部分的工作,更多需要运营、工程和标注团队协同配合,才能使算法达到比较令人满意的状态。

3.12 算法延伸

以上提到的都是些图像方面的优化和实践经验,但易盾在平行的文本、图片、视频和音频部分都做了相同的工作。

3.13 音频技术

音频技术目前能够提供的服务是声音检测和语言检测,声音检测包括的类型有娇喘、呻吟、ASMR和枪击爆炸,语言检测则可以对小语种提供识别服务,在小语种识别上易盾与人工识别做了对比发现,机器识别的准确度要高于人工识别,处理流程是将音频分段提取频谱特征,把传统的频谱特征扔到CNN网络中做分类工作,通过这种简单的方式其实就可以取得很好的效果。

4. 总结

最后来对本次分享内容做一个总结,首先做事情还是应该更关注问题的定义,保持全局角度;其次是数据,关注数据的有效收集,集中精力处理有效信息;对于成本问题就必须要提到昂贵的标注成本,所以在做标注时要有选择的进行标注,另外成本问题还涉及到机器成本,目前只有在性能优化上有突破后才能在机器成本上做到比较好的节省;定制问题需要根据场景来决定精细化程度,通用场景对精细化程度要求并不高,对精细化程度要求比较高的场景我个人会建议进行定制化。

0 人点赞