论文学习:Sapiagent-人类鼠标模式生成

1.背景

现代互联网如何反BOT?用户行为就是其关键因素之一。
我们可以列出一些当前比较流行的方案

  • reCAPTCHA
  • HCAPTCHA
  • Akamai bot manager

  • 这些方案的核心都是通过用户行为来判断是否为BOT,而用户行为的判断则是通过用户的鼠标移动、点击、滚动等行为来判断的。

这是当前应用场景的背景
因此如果我们要做对抗工作,就需要生成一个逼真的用户鼠标轨迹,这是一个序列生成问题

也就是本篇论文的核心内容:鼠标轨迹生成

1.1. 论文工作

  1. 提出了一个数据集,包含120个用户的鼠标轨迹数据
  2. 提出了基于autoencoder的鼠标轨迹生成模型(其实就是CNN-Autoencoder结构,论文中没直接说)
  3. 论文做了几个基于机器学习的判别器,最终实验结果是:对于那几个机器学习的判别器,较bsamizier、传统Autoencoder通过率更高
  4. 作者开源了他的模型和数据集(👏👏👏👏👏👏👏)

2.相关工作

2.1 鼠标轨迹分析(Mouse Trajectory Analysis)

防守方视角:
为了检测机器人:

  • Suchacka等人提出了一种实时的网络机器人检测方法[2]
  • 而Pozzana和Ferrara研究了社交媒体中机器人的行为,并设计了一种基于机器学习的算法来检测Twitter上的机器人[27]
  • Pao等人[28]提出了一种基于轨迹的在线游戏场景机器人检测方法。
  • Gianvecchio等人[30]是第一个使用鼠标动力学特征来检测游戏机器人的人
  • Chu等人[31]将这种方法用于博客中的bot检测。
    生成对抗网络(GANs)[32]越来越多地被用于模仿形状和图像,GANs的变体包括条件GANs[33]和Wasserstein GANs[34]。
  • Acien等人[35]提出基于单个鼠标轨迹来检测机器人。作者提出了两种生成类人鼠标轨迹数据的方法:基于启发式函数的方法和基于gan的数据驱动方法。提出了两个版本的bot检测问题:(i)一个异常检测问题,(ii)一个二分类问题。在前者中,使用单类支持向量机(OCSVM)作为异常检测器;对于后者,采用了SVM、k近邻、随机森林、多层感知机、长短期记忆网络(LSTM)和门控循环单元(GRU)等分类算法。

我个人感觉这个相关工作吧,就其实一般,如果要我写的话就把攻方/守方视角都写明白。
他也没写攻击方有什么进展

3.数据与方法

A. 问题描述

有人将BOT判定这个问题判定为单分类问题,有的人判定为二分类问题
作者将该问题定义为了一个单分类问题,输出一个分数,表示偏离人类行为的分数。

B. 数据介绍

论文提出的数据集:

  • 包含120名受试者的鼠标移动数据
  • 其中92名是男性
  • 28名是女性
  • 受试者的年龄从18岁到53岁不等
  • 平均包含37个点
    S1-S3不等表示1分钟和3分钟的鼠标轨迹数据

C. 轨迹表示

因为Autoencoder是一个编码模型,所以需要将轨迹数据编码成一个向量
也就是说,需要提供一个初始轨迹,作者把点(xx,yy)到(x1x_1,y1y_1)的点用直线连起来,然后让他自己的模型编码

D.E.方法

就是一个CNN-Autoencoder结构,对比方法RNN-Autoencoder,没啥好说的,可以参照原文或者源码,看的会更快点

4. 实验与结果

A. 实验设置

作者用S3中的数据拿来训练,S1中的数据拿来测试
测试的时候,作者把S1的数据拿来,每条轨迹分别分为:

  • 使用bsamizier生成的轨迹(假的)
  • 使用SapiAgent的轨迹(真的)

然后作者又根据S3的数据训练了一堆机器学习判别器,用来判别轨迹是真的还是假的

…实验结果懒得写了
总之就是CNN-Autoencoder做得好,说得对,他们的方法性能好

但是有个问题就是没做消融实验

4.个人感想

可以看出来哥们确实是做网安的,但是机器学习做得偏少,这篇论文的行文不能说很烂,只能说有点烂
但是代码还有配套、数据集还是非常有诚意的
首先个人提出两个问题:

  • 那个CNN-Autoencoder其实根本没什么必要,反正输入全都是线性的,那么直接输入[起点, 终点, 轨迹长度]就可以了,这样的话,这网络前半部分就不需要了,同时他也就不是一个AutoEncoder结构的东西了
  • 数据集过少,因此如果想提升的话可以:一方面补充一点

思考:

  • 数据量比较少的情况可以做元学习
  • 数据量如果能够得到扩充的话,可以补充一些去做GAN,或者加入Attention机制都是可以的,但是我做了一些改进,感觉是因为数据量太少所以做不出来

关于数据源的问题:

  • 为什么非要自己建数据源?通过open images去分割鼠标轨迹,站在巨人的肩膀上也是可以的

论文学习:Sapiagent-人类鼠标模式生成
https://tech.jasonczc.cn/2023/machine-learning/mouse/sapiagent/
作者
CZY
发布于
2023年6月1日
许可协议