AI对抗系列之--你的推荐算法被破防了吗?

人工智能 算法
已经写了不少AI安全系列,今天这篇比较复杂,如果你不是搞信息检索或者推荐算法,可能很难看懂。

 [[408906]]

当你在Google搜寻新闻资讯时,搜索结果却混进了乱七八糟的小黄文……

当你在知网查询学术文献时,排在前面的居然是“论咸鱼的30种烹饪方式”……

当你在全球最大同性交友社区GitHub搜索摸鱼插件时,出来的却是996icu……

以上场景不是瞎掰,基于AI神经网络脆弱性带来的信息检索攻击风险,这一切都有可能发生。

对于广大网民来说,信息检索无疑是个日常高频行为——写论文查文献、做菜搜食谱、买电影票前看影评口碑……借助搜索引擎/工具进行信息检索,是我们查询和获取信息的主要手段。

而当前的信息检索算法,为了进一步提升检索任务的精度,很多都是基于神经网络设计的模型来优化的。因此,神经网络的脆弱性,也将更多安全隐患引入了信息检索领域。本着以攻促防的目的,我们做了一次“扰乱搜索排名”的研究实验。

首先,利用微软发布的段落检索数据集(英文文本)作为本次实验数据,数据样本分为查询词、正样本、负样本三类—— 查询词 ,也就是用户输入的查询对象; 正样本 ,表示属于此查询词下的段落; 负样本 ,表示和此查询词无关的段落。

这里举个例子:

查询词: about how much paint do you need to paint a bedroom (粉刷卧室需要多少油漆)

正样本: If you choose to tackle a painting project yourself, there are several items you'll need to purchase. The first is paint. Expect to pay between $15 and $30 per gallon of paint, and you'll need 2-3 gallons for an average-sized bedroom (with some left over for contingencies and touch-ups). You also have several options for the shine or gloss of your paint. Flat finish or wall paint is paint with a matte surface that doesn't reflect light. (大意:需要7~12升的油漆)

负样本: 1 Note: Detailing clay does not remove oxidized paint or fill in blemishes. 2 If your paint is mildly oxidized, clean the paint with clay and then use a polish to remove the oxidized paint. 3 If the oxidation is severe, polish first because the oxidized paint may flake off as you clay and ruin the clay bar. (大意:黏土使用的一些注意事项)

这个例子中,正样本与查询词的相关性得分为 73.344040 ,负样本的得分为 61.572620 。

我们知道,信息与查询词的相关性越高,搜索排名就越靠前,也就越容易得到曝光。而我们实验要做的,就是给负样本的段落中加入一定长度的字词作为trigger,提升该负样本与查询词的相关性,从而使其获得更高的搜索排名,更容易被搜索引擎“找到”。

于是,根据上述例子中的查询词,采用公开论文介绍的AI算法,学习生成了一个长度为5个单词的trigger:

“bedroom formula paintings national code”

当我们对负样本的段落加入该trigger后,发现负样本与查询词的相关性得分,从原来的 61.572620 提升至 78.570793 ,超过了正样本的得分。这就意味着,通过为段落加入trigger,能够增强与特定查询词的搜索相关性。

为了测试对比不同长度trigger的攻击效果,这里分别测试了trigger长度为1、5、10个单词情况下的效果,在每种情况下分别列出了在3个样本被攻击后的相关性得分情况——

 

 

图:trigger长度为1个单词

 

 

如图表所示,trigger仅为1个单词时,也能一定程度提升段落在特定查询下的相关性得分,但是效果相对有限。

 

 

图:trigger长度为5个单词

 

 

可以看到,对负样本加入5个单词的trigger时,段落在特定查询词下的相关性得分得到了比较显著的提升。

 

 

图:trigger长度为10个单词

 

 

而当trigger长度增加到10个单词时,效果进一步增强,在大部分情况下负样本相关性得分甚至超过了正样本的得分——这样的攻击效果,足以造成检索结果大乱套的后果。

此外,我们以上述在查询词(about how much paint do you need to paint a bedroom)下学到的trigger(bedroom formula paintings national code)为例,随机选取100个样本,计算将trigger拼接在其他段落后和当前查询词相关性得分的变化,结果如下图所示:

 

 

 

 

图:100个样本加入同一个trigger后,与当前查询词的相关性得分变化

图中,每条红线的末端圆点为加入trigger前负样本的段落得分,红线顶端圆点为加入trigger后的得分。可以看到,所有样本在加入trigger后,相关性均得到显著提升,得分平均提升22.21%。由此可以得到结论,trigger在不同段落上具备迁移性,通过AI学习获取的trigger,可以提升不同文档在当前查询词下的检索排名。

总而言之,对检索对象增加对抗扰动,从而扰乱搜索相关性排名,是一个具备可行性且具有显著实际危害的攻击场景。一旦信息检索算法被攻击,检索结果出错,将导致用户被误导或被欺诈等严重后果。该攻击手法也有可能被不法分子利用作恶,比如用来定向输出种族主义言论、传播黄赌毒信息等。因此,重视这里面的风险并提前防范尤为重要。

当前,攻击方法生成的trigger还难以控制语法结构的正确性,因此对信息检索场景文档进行语法分析,能够一定程度帮助过滤发现攻击。另外,类似图像领域的对抗训练也有助于增强信息检索模型的健壮性,帮助降低被攻击风险。

 

责任编辑:张燕妮 来源: 知乎
相关推荐

2011-08-23 13:56:00

2009-03-26 18:09:06

2009-06-22 14:36:09

ITIL运维管理摩卡软件

2024-02-05 09:16:07

AI数字团队

2022-06-28 18:38:43

Web3

2024-04-10 08:48:31

MySQLSQL语句

2009-10-28 09:14:43

员工分析软件

2019-09-26 08:00:00

AI人工智能

2020-07-29 12:05:18

5G运营商消费

2012-04-26 11:33:20

iPhone应用发布

2024-03-15 08:22:35

JmzyAI开源模型AIGC产品

2019-04-23 11:21:57

ERP系统管理信息化

2024-03-28 12:20:17

2023-12-28 08:43:28

前端算法搜索

2022-04-11 08:56:27

AIAI算法

2022-05-30 18:37:03

数据个人信息人工智能

2010-01-06 18:32:40

2009-04-30 17:39:16

裁员调查

2023-10-28 09:00:03

进程系统服务
点赞
收藏

51CTO技术栈公众号