[优质论文]伪造共同访问对推荐系统进行攻击

针对推荐系统的攻击


论文原文:

Fake Co-visitation Injection Attacks to Recommender Systems

论文解读:

[论文学习] 脆弱的推荐系统: 通过伪造共同访问对推荐系统进行攻击

这篇文章写的很清楚,所以如果真的要看就去看它好了,我记下来只是为了让自己印象更深。

这篇文章为什么吸引我?

  1. 因为之前知道广告作弊,搜索作弊等,但是从来没有接触过或者想过推荐也可以作弊,只知道数据清洗确实能够剔除作弊的影响。以前的看法一直都是,阿里的运营手里有很大的权利去做各种事情,帮特定的商户导流量,所以经常听到阿里运营和外面的人有某些生意上的勾搭,其实,哼哼,算法也可以~

  2. 这里涉及到的算法都很简单,看起来最复杂的带约束的优化本身就可以用拉格朗日乘子转换成无约束的优化问题,但是作者直接带入了一些条件把它变成线性规划问题了

  3. 文章把作弊方案根据实际情况分成了3个层次:

    a. 内部人员,具体的逻辑和权值等都了解

    b. 类似YouTube等的item 推荐,把item的热度也标了出来

    c. 有的网站在推荐item的时候是不会把item的popularity给你的,例如Amazon

    这三个场景也被作者用看起来比较合理的方式串联了起来,一一化解

背景


推荐系统本身是比较大的一块内容,推荐的场景五花八门,推荐的方案也是各有千秋,还有各种模型的融合方案,甚至还有一个推荐场景,把各个推荐位分别给不同的推荐策略。但是最为通用的其实是基于I2I的协同推荐,因为I2I的推荐有个得天独厚的优势:好解释。

这里I2I的相似度可以来源于co-visitation,即共现性。其实共现性有很多维度,例如YouTube的共现可以是观看,也可以是收藏;Amazon的共现有可能是点击、收藏、加购、下单。因为其他行为的代价有点高,所以本文也就只针对最essential的共现情况,点击(对视频来说就是观看)。(为啥说I2I的相似度可以是共现性呢,因为I2I还有其他方式,例如人工抽取一些知识的维度出来,参见Pandora一开始的方案)

Item的共现情况其实可以表示为一个无向图,图中的节点是Item及它的popularity,边是Item之间的共现次数。那么,我们只要有意的改动边的权重,推荐结果就会随之改变。I2I的推荐除了相似性,还有2个比较关键的值注意,第一个是item的准入门槛,即它本身是要有一定的热度的;第二个就是top-k的推荐,我们如果想攻击一个推荐系统,即让我们的target_item进入推荐列表,不需要让他排到第一名,只要进入top-k即可,即排到推荐的第K名即可。

衡量指标

UI定义:所有能够令target_item被推荐出来的item的展示概率。例如,A、B、C、D 4个商品在一天的展示概率分别为0.1%,0.3%,0.5%,0.6%,A、B、C都能把target_item推荐出来,那么target_item的UI就是0.9%。我们通过对co-visitation图的扰动,使得target_item也能进入D的推荐列表,那么新的UI就是1.5%。

所以,如果我们promote一个item,那么就有IUI=new_UI - old_UI,如D的展示概率0.6%。

而如果我们想demote一个item,就有IUI= old_UI - new_UI,如原来target_item能进入ABC的推荐列表,在对推荐系统进行攻击后,target_item只能进入到A的推荐列表了,则有IUI=0.9% - 0.1% = 0.8%。

攻击方式


基本模式:

  1. 选取anchor item,即攻击目标,因为想要promote某个target item,攻击不同的anchor item成本和收益都不同,所以要选取ROI(这是一个广告术语。。)最高的那个

  2. 模拟一定数量anchor item和target item的共同访问

High Knowledge

High Knowledge的攻击者,可以认为是项目的owner或者参与者,对相似度图(即共现图)、推荐准入阈值等了解的都很清楚。他的任务就可以总结成:把一定数量的fake co-visitation加入到共现图中,使得IUI最大。

作者引入了二进制变量a(非0即1),然后很自然的把问题可以表现成如下的形式:

优化问题

a用于标识某个item是不是anchor item,m代表插入的fake co-visitation的数量。

目标:最大化IUI

约束:

  1. 总的co-visitation次数小于m

  2. item[j]和target item的相似度大于item[j]和原推荐列表中第k个item的相似度

  3. target item的新的popularity要大于推荐的准入阈值

  4. a是非0即1的变量

到这里为止,这是一个典型的带约束的优化问题。

但是考虑到,我们是High Knowledge的攻击者,那么我们只要让插入的fake co-visitation满足条件2和3的最弱情况即可。根据条件2、3求出m[j][k](即k和j的fake co-visitation个数,k为target item)的最小值,把它带入到条件1中,问题就变成了线性规划问题。都不需要用拉格朗日乘子解带约束的优化问题了。

Medium Knowledge

我们不是内部人士,无法知晓具体的τ或者共现图的细节。

作者提出了一个方案,就是先使用一定的策略估计出τ以及共现图,然后问题就可以按照High Knowledge的方案去解决了。那么怎么估计τ和共现图呢。

τ:通过查看推荐列表中最小的访问次数(例如YouTube的观看次数)即可

共现图:对于一个有k个item的推荐列表,我们有 s(j,rec[k])

Low Knowledge

我们什么都没有,只有一个推荐列表。

有论文指出过,可以通过机器学习的方法,预测每个item的popularity。得到这个以后,方案就转变成了Medium Knowledge的攻击,继而最终成为High Knowledge的攻击。

这里作者对他们的场景假设是popularity是item各个特征的一个线性函数。

实验

针对推荐系统的攻击框架:

攻击框架

模拟环境下生效

真实环境中也有了明显的效果

个人总结

这年头互联网领域想找个靠谱的推荐的人才也不容易,基本想不被坑只能去大厂找,而大厂的人也是不一定不坑,而且还贵。。

推荐方案已经很成熟,场景的限制使得现在出尽风头的RNN等相关深度学习的方案没有在推荐领域(直接推荐领域,因为可能有的小模块是用了深度学习的,例如图像或者文本)大肆推广开来。那么推荐问题在现阶段其实不是一个很高深的算法问题,而是highly depends on数据清洗和业务本身以及推荐场景的一个典型的业务工程问题,难度在于对场景的把握,对业务的了解程度以及对用户的认知程度。

针对推荐系统的攻击研究如此少,导致黑产在这个领域其实是能赚取大量的流量和利润的。做推荐的一定要有这个认知以及指导怎么去应对这种问题。

内部人员的作弊防不来,主要针对Medium Knowledge的攻击,我认为的应对方案:

  1. 数据反作弊,商品的热度监控,如果热度飙升,而且访问者的账号或者cookie等都是低质量的,要注意

  2. 引入随机因子,例如,E&E算是随机因子的一种,或者在排序时,不同的区块稍微进行一点打散,例如头部打散,中部打散,尾部打散等

  3. 推荐的深度个性化,例如对于不同的人,k值的选取也可以不同。有的人从来不会点击推荐列表10名以外的结果,那么对他来说,k=10就够了

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值