🌟 魔法改运?玄学造梦?当前存在的风险对抗有哪些案例?
🌟 人工尚且难以识别层出不穷的风险变异词,AI是如何进行辨认的呢?
🌟 如何构建阿里安全最神秘的内容风险知识图谱?
若要治理深渊,首先要了解深渊。与传统领域的知识图谱不同,内容安全场景下的知识图谱,可以称作是一本邪恶的百科全书。本次分享将向你揭秘阿里安全最神秘的内容安全知识图谱是如何构建的,以及这些邪恶的知识是如何帮助治理风险的。
《追AI的人》第7期邀请阿里安全算法工程师分享《揭秘安全领域的老司机—风险知识图谱》!
本文将带你了解如何用“邪恶”的知识构建内容安全知识图谱,全文9335字。
🔻直播简介:
揭秘阿里安全最神秘的风险知识图谱—《追AI的人》第7期来咯!
阿里安全算法工程师,吉林大学软件工程本硕。18年AI Challenger机器翻译比赛冠军,CCKS2021年通用百科知识图谱实体类型推断冠军,累计申请国家发明专利6项。目前就职于阿里巴巴AAIG实验室,担任内容安全知识图谱项目的负责人。
一、安全场景下的风险知识
1. 内容安全是什么?2. 内容安全的挑战有哪些?二、风险知识的获取方式
1. 通俗语言介绍风险知识图谱的构建过程2. 专业语言介绍风险知识图谱的构建过程三、ccks2021 实体分类任务冠军方案
1. 赛事背景介绍以及赛题解析2. 数据处理:标签映射、首句解析、必杀特征3. 特征选择4. 模型架构、模型融合以及后处理
提到互联网安全,大家首先想到的可能是信息安全、网络安全、应用安全、数据安全和终端安全。其实除了这些安全以外,还有一个相对较新的领域叫做内容安全。我们每天在互联网上浏览的图片、文字、视频,可能包含着对社会有害的信息,比如黄赌毒暴恐等等,内容安全就是用于防止这些不良信息传播扩散。
内容安全是信息安全的一个分支,其目的为识别、阻断不良信息传播,例如滥发电子消息、色情内容、犯罪内容、恐怖主义内容等。涉及技术包括自然语言处理、计算机视觉等,涉及内容包括文字、图片、音频、视频等。
1)计算量巨大
2)对算法的准召要求高
虽然每天都有很多不良内容,但如若放在整体基数里,它的占比其实很低。数据极度不均衡的情况下,分类器难以发挥作用,即便把正样本全判负,准确率也能高于99%,所以这对AI的要求还是很高的。违规内容在全部内容中的占比代表了内容安全领域要检测的内容,这个比例可能是1%,甚至是千万分之一。3)尺度动态
通常情况下,如果我们要训练一个人工智能AI,我们首先要明白我们要解决什么问题。如果要解决图片分类问题,你要知道图片对应的标签可能是什么样的;对应到内容安全领域,你就需要知道什么是违规的,什么是不违规的。
如此就引发了一个问题。如图右上角,像这样的图片如果发布在游戏平台,那应该是没什么问题;但是如果发在教育平台,那无疑就变成了违规内容。内容安全的标准,在不同的场景下是不一样的,这是内容安全的一个难点。4)风险类目难以标准化
一些风险类目是难以实现标准化的。比如一张图片中的对象没有穿衣服,往往被定义为黄色图片;而假若图是一张世界名画,并且在艺术品类目下,定义为黄色图片就难免有失偏颇。所以在某些任务下,风险的标准是难以准确刻画的,可能全凭人工经验,你很难把它沉淀成文字可以描述的东西。5)强对抗
内容安全本身是一个强对抗的场景。之所以说是强对抗,是因为检测AI在不断升级的同时,内容威胁也在不断进化自己绕过AI的防控。
如在文本上,可能会出现复杂字体或者同音字的替换;在图片上,可能会将明显违规内容根据规则实时变化;另外,图片和文字本身还会有多模态的结合,如将危险的文字内容以图片的形式展示出来,这使得我们的防控难度会越来越高……你的对手会随着你能力的增强而增强,双方持续在进行对抗,这使得两方都需要持续不断地学习。6)新增风险
内容安全领域还有一个比较特殊的挑战是新增风险的处理。在传统领域,它的风险都可以用具体指标进行预测,而内容安全领域则不行,因为它可能时不时就会出现一个新的风险。因此内容安全风险难以预知,且需要快速响应。
内容安全还有一个挑战就是可解释性。上图举了一个例子:假如有人发布消息说新到了一批基丁酸,而这个内容是否属于风险内容?关键取决于基丁酸指的是羟基丁酸还是氨基丁酸,如若是羟基丁酸那么肯定属于违禁内容,如若属于氨基丁酸就属于合规内容。所以AI本质上是要知道其中的基丁酸指的是哪种才会推出结果,这个也是内容安全的一个挑战——AI需要较强的可解释性。上图本质上想表达的意思是我们为什么需要知识图谱。在学术界解决内容安全领域的问题,分为了大概三个阶段:
· 第一个阶段是远古时期的特征工程时期,在这个时期我们从文本或者图片中能抽取特征,然后用这些特征通过统计学习模型给出结果。· 从2014年开始,由于神经网络技术的不断成熟,整个技术架构由特征工程转化为架构工程。基于神经网络,AI可以自动学习出特征然后给出结果。· 2017年之后,由于预训练模型的飞速发展,我们会用大量的数据训练一个基础的模型,然后再去针对不同的场景去做一些力度调优,然后给出结果,这是目前主流的范式。
上述三个范式都存在一个问题:如果有一个新的风险出现,我们需要找大量数据去训练然后才能实现预测,但如果没有合适数据,模型的效果就会很差。
· 法律。这是内容安全的标杆,它规定了哪些东西是合法的,哪些东西是不合法的。· 各种风险场景下的专业知识。因为法律并没有给出很多具体案例,如果想对应用场景进行防控就需要对相关专业知识特别了解。· 场景规则。就像之前举例的世界名画,不同的场景下要有不同的场景规则。
只有把这三个维度的知识结合,我们才可以把安全场景下的内容安全领域做的更好。
本次分享的第二个模块,我会用比较通俗的语言来介绍风险知识图谱的构建过程。首先,我们要明确风险知识图谱的内容。内容怎么明确取决于我们要解决什么样的问题,比如说如果我们想管控管制刀具的相关内容,我们就需要知道什么样的东西是属于管制刀具,常见的管制刀具有哪些,管制刀具的常见品牌有哪些,它的型号属性信息是怎样的……这些都是属于图谱内容的一部分。其次,当我们的内容明确之后就要需要寻找包含这些内容的数据源。数据源的来源其实比较多样,它可以来自于搜索引擎,也可以来自于专业的书籍,以及业务中已经发现的违规case。另外我们也会把用户举报的东西加到图谱中,这样就可以防止类似风险内容的传播扩散。然后,我们需要进行知识抽取。当数据源明确之后,我们进行数据源的抽取。进行抽取的内容主要分为两个维度:最后则是进行知识加工。将内容抽取出来后我们需要判断到底有没有风险,在这个过程中我们使用知识的分类AI,将内容结合一些包括此内容的句子来判断它有没有风险。还有另外的一种场景是类似的信息已经存在于我们的图谱里了,比如新抽取的关键词”乔.拜登“,我们的图谱中已经存在实体”小约瑟夫.罗比内特.拜登”,两者称呼不同,但其实是一个人,因此”乔.拜登“并不能当做是一个新的实体,而是要通过AI的逻辑判断,将其作为后者的别名存储。
以上我们用比较通俗的语言对风险知识图谱进行了介绍,这部分则是用相对专业的语言介绍风险知识图谱的构建。首先我们要做知识建模。知识建模指的是对知识图谱中包含的内容进行抽象,比如要做一个管制刀具的图谱,那么要定义包含的实体有哪些类型,比如刀、制刀公司、贩刀网站等,还要明确实体的基本属性,比如实体刀的别名、长度等。之后是知识的抽取,抽取的数据源可能是像正常文本这样的非结构化数据,网页表格这样的半结构化数据或者可以直接使用的结构化数据。用到的技术有关系抽取、实体识别和新词挖掘等AI。知识加工指的是通过抽取得到的知识,通常不能直接使用,需要进行一系列的处理后才能流入到图谱,其中包括的步骤有实体对齐、属性对齐、知识补全等。其中一个很重要的步骤叫做实体分类,实体分类指的是我们需要对抽取到的实体,进行风险性质的判断,比如玩具刀,到底算不算管制刀具,只有在算的情况下,才会进入到知识图谱。我们在此部分用到的AI,在ccks2021实体分类任务比赛中获得了冠军,第三章将会详细的介绍此方案。第四步则是如何利用已经构建好的图谱,对AI的准确率进行提升,涉及到的技术有知识推理、知识表示学习和图计算挖掘等。最后一层则完全是应用层,指的是AI可以赋能到的一些场景,比如信息治理、商品合规、智能审核和知识产权等。
ccks2021即2021年全国知识图谱与语义计算大会,是国内研究风险知识图谱的顶级学术会议。我们在会议的通用百科知识图谱实体类型判断赛事中获得了第一名的好成绩,并且获得了技术创新奖。
比赛所用的全部数据源都来自于百度百科、搜狗百科,均没有标签。比赛训练集有60万,TestA和TestB均有12万。上图左边是数据事例,包括字段、名称、摘要、正文内容、关键词属性和属性值等特征。
上图为比赛载体的标签。这个实体它可能是组织结构,可能是人物,也可能是位置或者作品。标签还可以进行细分,如人物它可以是文艺工作者,文艺工作者又包含了作家、编剧、歌手、演员、舞蹈家等等。然后我们可以将风险进行类比,尽管标签有所不同,但是它们本质上是完全相同的任务。· 它是一个分类任务,具有54个类,在我们现实的风险场景下同样也有非常多的类别。· 它具有层次化的标签。如一个人是演员,那么他一定是人物;但如果他是人物,那他就不一定是演员。· 它是多标签的。以刘德华举例,他本身是一个歌手,同时他也是一个演员。另外,比赛有一项非常重要的要求:标签必需预测对全部的最细粒度标签才算对。因此,赛事对AI的准确度要求特别高。赛事的评价指标叫F1,公式如下,通俗点理解F1指标越高,准确度越高。
因为所有的数据都是没有标签的,而所有人工智能的场景下都需要有标签的数据,并且人工打标签的成本又很高,因此我们遇到的第一个问题就是如何利用最小的成本获得尽可能高质量的数据。
前文讲过赛事的数据都是来自于搜狗百科和百度百科,那么我们有没有什么办法能找一些类似的有标签的数据来做一些数据扩充?
如图左侧是我们从相关领域知识类网站上抓的一些例子,像科比在相关领域知识类网站上的标签是美国男子篮球运动员,它本身可以映射到比赛中的标签,如映射为人物、运动员、篮球运动员。同理,其他人物也可以这么做。如周杰伦在相关领域知识类网站中他是华语流行音乐歌手、金话梅奖获奖演员,他就可以映射到歌手和演员的标签。
通过这样简单的标签映射,我们就可以构建出一批比较弱标签的数据,这个方法就叫做弱监督。在没有大量训练数据的情况下,我们可以通过一些外部高知名度的数据训练模型回标我们的训练。通过相关领域知识类网站,然后我们找到20万条相近的数据。同样的逻辑,通过CN-DBpedia,我们又找到了80万条数据。如此我们在只使用简单映射的方式下,就构建了总数在100万的弱标签数据。
通过这些数据训练出的模型会比较弱,因为它跟我们实际要预测的数据是有差别的,但是这样的方法几乎不需要任何标注成本。利用弱模型进行训练数据的标签预测,得到了训练数据的初始标签,所采用的模型为Bert + Softmax的分类模型,所使用的特征为实体描述的首句。
以科比为例,“科比”是它的实体名称,加上他的摘要描述,科比·比恩·布莱恩特是前美国职业篮球运动员,主打得分后卫位置,两个文本片段通过直接的拼接,则构建成为一个长的句子,称作文本特征。得到特征后,利用之前训练出的弱模型对数据进行预测,得到了”篮球运动员“的标签。
由于可使用的数据源包括了相关领域知识类网站和CN-DBpedia两种,两种数据源的质量是不同的,为了验证使用哪种外部数据作为训练效果最好,我们进行了一组对照试验,根据测试我们得出结论,将所有的数据都放进去会使得模型的效果更好,准确率可以达到0.7715。
第二个数据处理方式比较好理解。在语文学习中,我们都会学到句法结构的相关内容,如主语、谓语、宾语等,我们在AI中也会运用到相关知识。举个帝国时代在搜狗百科中的例子:《帝国时代》是一款策略游戏。如果对它进行句法分析,你会得到主语、谓语和宾语,那么你就可以推断出它的实体类型是游戏。最终利用了LTP工具做句法分析,利用了基本的主谓宾逻辑做抽取即可得到 (帝国时代,是,游戏)这样的三元组关系。句法分析工具的准确率并没有人们想象中的那么高,很可能会出现把一个实体拆成两个的情况。所以这里有一个小技巧,即对实体类型进行强制替换,如将《帝国时代》替换为 XX,它的效果可能会更好一点。
第三个数据处理的流程是叫做必杀特征。每一个实体它都会有两部分特征,一部分是Schema,指的是属性和属性值。如果一个实体出现了填词或者谱曲这样的属性,那么它大概率就是一首歌曲。另一部分是keyword,在百科中对应的就是目录。如果一个实体包含了MV这样的属性,那么它大概率也是一首歌曲。通过必杀特征结合一些简单的统计学上的分析就可以得到一些强力的特征。以上图为例,特征名称游戏类型,在游戏实体中出现了310次,在其他类型中出现了3次,因此该特征的置信度分值为 310/3 。凡是置信度大于8分的特征,都视为杀手特征,即一个实体出现此特征,则必为该实体类型。通过这种修正方式,上例中的3个出现了游戏类型但并未被弱模型预测成游戏的实体,通过杀手特征的方式,修正成为游戏实体。
特征选择简单理解就是我们要选取实体的什么特征来判断它的类别。这里列举了几个可能用到的特征:
第一个特征是实体名,如周杰伦的专辑《七里香》;第二个特征是摘要首句,如“七里香是周杰伦于2004年8月3日发行的专辑。”;第三个特征叫做scheme,即实体的属性,如《七里香》的属性有中文名、专辑语言、专辑歌手等等;第四个是关键词,比赛中的数据来自于搜狗和百度,在搜狗中它的关键词指的是它的标签,在百度中关键词指的是目录,所以本质上这两个数据源对应的关键词特征是不完全一样的。基于搜狗和百度的keyword本质完全不同,我们又加入了数据源(source)作为特征。实验结果也证明了加入source的作用:特征加的越多,整体的呈现效果越好。模型效果在加入源信息后会变的更好,这是因为百度和搜狗他们这两个关键词的描述的东西不一样,因此在 Source的信息加入后,相当于告诉模型它这两个东西的区别,然后模型会去学习这些不同源定义的差别,因此加入此特征后,模型效果会有提升。
如果按照题目的要求去做处理,一个人要是属于歌手,那么就不应该属于文艺工作者和人物,因为题目的要求是要预测到最细粒度的标签才算对,但是如果用这样的逻辑去对数据的标签进行编码,然后去训练模型,其实是违反客观事实的。对于此部分,我们在训练数据时,强制的强实体的父标签置为1,在解码时,会做逻辑判断,如果一个实体的最细粒度的标签被预测为1,则其父标签即使被预测为1也不算有效。上图中的左下部分为示例,这种loss称作Hierarchy loss。经过实验验证,Hiirarchy loss会比传统的Sigmoid loss效果有提升。思考一个问题,如果有一个全新的业务场景,只有未标注的数据,那么是模型结构重要和还是数据质量更重?我的理解是模型和数据是同样重要,因此在比赛中,选择了模型和数据同时迭代的方案,模型不停优化,数据也不断优化,两者相互影响,迭代升级。
基于这种思想,我们采用了一种数据和模型迭代升级的策略。利用目前最好的模型给全部的训练数据进行标签预测,通过预测的标签生成杀手特征,利用杀手特征对已有的最好质量的数据进行质量提升,利用提升质量后的数据再次训练模型。上图的实验结果证明,此方案可以带来1.5个点的效果提升。这样的训练逻辑,也获得了本次比赛的技术创新奖。
以上为整个方案的最后一页,我们单模型的最终最好的结果是0.8245。通过一些多模型的方法,我们将把60万的数据分成6份,每次训练取7成的5份数据来训练一个模型,并且每次取的都是不同的5份,如此就可以得到多个模型。然后通过模型的结果进行投票,就可以得到结果。解释一下为什么后处理准确率会高这么多:无论标注的规则有多详细,一定会有描述的情况不能覆盖的case。例如一开始主办方并没有说明无标签的数据应该添加”无标签“,因此对于这部分实体的标签部分,我们做了空标签的处理,实际上应该给一个叫做”无标签“的标签,通过这样简单的处理,效果就已经有一个0.2的提升。其实比赛方给的文档已经很详细了,但无论再详细的标签说明,通常都会有遗漏的情况,这也是工业场景上的一个大家应该都会遇到的问题。除了空标签外,还有些类似的文章中没有完全覆盖的例子,例如农家乐属于基础建筑,我们根据主办方在群里的答疑,对已经预测的结果做了些逻辑的后处理,这些后处理都直接带来了结果的提升。
更多AI治理干货,请关注AAIG公众号
PPT原件获取
请联系【AAIG课代表】⬇️
技术干货+产业实践分享
点击下方名片关注和星标
【阿里巴巴人工智能治理与可持续发展实验室】