一种基于机器学习的面向地图切片服务的爬虫行为检测方法与流程

文档序号:37264625发布日期:2024-03-12 20:47阅读:15来源:国知局
一种基于机器学习的面向地图切片服务的爬虫行为检测方法与流程

本发明涉及地图切片服务,特别是涉及一种基于机器学习的面向地图切片服务的爬虫行为检测方法。


背景技术:

1、地图数据通常存储在大型地理信息系统(gis)数据库中,包括地图图层、道路、地形、地名等。地图切片服务是一种将地图数据切分成小块(切片)并以可快速加载的方式提供给地图应用程序的服务。这些切片通常以图像格式(如png或jpeg)或矢量格式(如geojson)存储,并且可以根据地图的缩放级别和位置动态加载。地图切片服务的主要目标是提供高性能和高效率的地图数据传输,以便在web和移动应用程序中显示交互式地图。

2、网络爬虫是一种自动化程序或脚本,用于在互联网上浏览、检索和提取信息。网络爬虫通过遵循链接并下载网页上的内容,可以从互联网上获取大量的数据,这些数据可以用于各种目的,包括搜索引擎索引、数据挖掘、价格比较、新闻聚合、社交媒体分析等。然而,当网络爬虫被滥用或不当使用时,它们可能对地图服务造成一些潜在的危害,包括:

3、1.过度的数据请求:网络爬虫可以以非常快的速度发送大量请求,这可能导致地图服务的服务器负载增加。如果没有适当的限制和防护机制,这可能会导致服务器性能下降,影响正常用户的体验。

4、2.滥用地图数据:网络爬虫可以获取地图服务上的地图数据,包括地图图层、卫星影像和地理信息。这些数据可能会被用于未经授权的商业目的,例如建立竞争性地图服务,而不经过数据提供者的许可。

5、3.数据破坏和滥用:一些恶意网络爬虫可能会发送虚假或恶意请求,试图损害地图服务或导致数据泄漏。这种行为可能会对地图数据的安全性和完整性造成威胁。

6、因此有必要构建一种面向地图切片服务的爬虫检测模型,实现对恶意爬虫用户进行检测和识别。

7、随着地图切片服务在各行各业的广泛应用,爬虫行为检测成为确保服务正常运行和数据安全的关键一环。地图切片服务的提供者越来越重视对爬虫行为的监管。现有的针对地图切片服务的爬虫行为检测方法大多数都采用对流量数据进行分析,通常包括分析访问模式、检测异常请求频率、验证用户代理、监视ip地址和应用访问速率限制等,最终利用手工制定的规则策略对异常爬虫行为进行检测。

8、然而现有的利用规则策略的爬虫行为检测方法存在两个的问题:第一,利用规则策略的检测方法,其检测方式较为固定,检测模式的时效性较差,如果爬虫策略发生改变会导致检测的规则策略失效,无法对新的爬虫策略进行有效的检测;第二,基于规则策略的爬虫行为检测方法仅仅考虑流量数据表层的特征结构,并没有对访问内容信息进行深度的挖掘,从而使得对爬虫行为的建模不够充分,最终导致检测方法对爬虫行为的召回率较低,无法有效的识别爬虫行为。

9、例如,现有技术公开了一种地图瓦片数据爬虫的识别方法及系统,申请号具体为202111132457.4,具体流程图如图1所示。在该专利申请中,s2-s5通过对流量数据数据流进行预处理并添加了时间戳,利用ip作为键值对将流量数据进行分组,然后设置固定时间窗口,对数据流进行划分。在s6中设计了如下规则以实现对爬虫行为检测:

10、统计每个时间窗口内含有同一ip的数据条数,记此数据条数为x;统计每个时间窗口内,以“(ip,地图切片矩阵名,地图层级)”为键的数据条数,记此数据条数为y;统计每个时间窗口内,以“(ip,地图切片矩阵名,地图层级,地图切片行号,地图切片列号)”为键的数据条数,记此数据条数为z。下属两条逻辑中,只要当前ip的一次行为满足任一条逻辑,即可认定当前ip为爬虫ip;

11、逻辑一:在时间窗口内,满足a1×x+a2×y≥θ1,其中参数a1,a2,θ1要满足条件a1+a2=1,a1≥0,a2≥0,θ1>0;

12、逻辑二:在时间窗口内,满足b1×x+b2×z≥θ2,其中参数b1,b2,θ2要满足条件b1+b2=1,b1≥0,b2≥0,θ2>0;

13、与本发明对比,该方法存在以下三个问题:

14、1.该方法在应用前需要对多个超参数人工赋值,如a1、a2、b1、b2、θ1、θ2和时间窗口尺寸等,人工赋值的参数需要大量的经验和先验知识,难以直接应用;

15、2.该方法的设计思想是对用户每秒请求的流量数量进行衡量,如果用户每秒请求的流量较多即判定为异常用户,但经过实际研究发现,部分爬虫用户为了躲避地图服务平台的封禁策略,会故意降低数据爬取速率,所以针对这部分爬虫用户,该方法难以进行识别;

16、3.该方法仅仅考虑了用户每秒请求的流量数量进行衡量,没有对用户的操作行为进行更深层次的挖掘,从而使得对爬虫行为的建模不够充分,最终导致检测方法对爬虫行为的召回率较低,无法有效的识别爬虫行为。


技术实现思路

1、本发明目的是为了克服现有技术中的不足之处,提出了一种基于机器学习的面向地图切片服务的爬虫行为检测方法。所述方法从面向地图切片服务的爬虫的机理角度出发,通过特征工程的方法对用户请求流量数据的内容信息进行深度挖掘,以对爬虫行为进行充分的描述;同时利用lightgbm框架建立机器学习模型,对流量数据挖掘得到的特征进行高效的拟合分析,最终实现对面向地图切片服务的爬虫行为的精准识别。

2、本发明是通过以下技术方案实现的,本发明提出一种基于机器学习的面向地图切片服务的爬虫行为检测方法,所述方法包括以下步骤:

3、步骤1:获取流量数据:本步骤包括通过分布式消息队列、文件系统或数据库所获得的流量日志;每条流量数据包含以下字段:用户id,请求时间时间戳,请求来源ip信息,浏览器信息,地图切片矩阵名,地图缩放层级,地图切片行号和地图切片列号;

4、步骤2:用户浏览会话分割:将步骤1获取的流量数据分割成多段数据流,每段数据流代表了一个用户在一段连续时间的操作行为产生的流量数据;

5、步骤3:用户地图浏览轨迹行为复现:对会话分割后的数据流进行解析和计算,最终得到用户在整段会话过程中的地图浏览轨迹,最终以热力图的形式进行可视化展示;

6、步骤4:异常行为训练样本构建:如果用户某段会话的浏览轨迹可视化展示结果排列整齐密集,形成范围及区域大的且十分规则的矩形框,则该区域即为异常数据爬取行为,否则为正常用户;通过人工选取部分用户的会话行为浏览轨迹进行人工标注,得到异常行为训练样本数据集;

7、步骤5:用户行为特征抽取:所述特征包括流量数据全局特征,流量速度统计特征,操作行为频率分布,流量请求时间统计特征,用户浏览行为时间统计特征,用户浏览轨迹的区域性特征,流量数据信息度衡量,流量数据缩放区间级数分布共8种类别特征;

8、步骤6:异常行为检测模型训练;

9、步骤7:异常用户识别及信息归档。

10、进一步地,所述步骤2具体为:

11、步骤2.1:对用户分组:以流量数据中的用户id或用户访问ip字段对流量数据分组,每组的流量数据代表了一个用户的全部操作所产生的流量数据;

12、步骤2.2:根据请求时间排序:对每组数据根据流量数据的请求时间戳以秒级别进行顺序排序,并对每秒内的流量数据进行聚合,形成以“用户id,运行时间戳”为键,每秒流量数据集合为值的键值对形式的数据流;

13、步骤2.3:设计阈值分割浏览会话:针对每组的数据流进行一阶时间差分,计算每段数据流与前一段数据流的时间间隔,设置会话维持间隔时间tgap,如果相邻两段数据流的时间间隔大于会话维持间隔时间,则以该两段数据流的间隔作为边界,对数据进行划分;最终每组数据流形成多段的数据集合,每一段都是以“用户id,会话id”为键,每段会话流量数据集合为值的键值对形式的数据流。

14、进一步地,所述步骤3具体为:

15、步骤3.1:按请求时间顺序以秒级的时间窗解析流量数据,对步骤2中得到的每段数据流进行解析,仅保留地图缩放层级,地图切片行号和地图切片列号字段数据;

16、步骤3.2:确定用户操作行为状态的起始时间,定义用户操作行为为放大、缩小或平移,然后对每段数据流进行顺序遍历,将每个秒级时间窗数据流的地图缩放层级与下一秒级时间窗数据流的地图缩放层级进行比较,如果两个时间窗层级相同,则下一时间窗的用户操作为平移操作;如果当前时间窗数据流的缩放层级大于下一时间窗的缩放层级,则下一时间窗用户的操作为缩小;如果当前时间窗的缩放层级小于下一秒的缩放层级,则下一时间窗用户的操作为放大;如果相邻两个时间窗的用户操作行为发生改变,又或者相邻两个时间窗的时间间隔大于2秒即可确定一段操作行为的终止和另一段操作行为的开始;以“用户id,会话id,操作行为类型,源地图缩放层级,目标地图缩放层级,操作行为起始时间,操作行为终止时间”标记一段操作行为;

17、步骤3.3:用户操作行为的地理区域发现,针对步骤3.2中确定的操作行为,获取操作行为起点时刻到终点时刻的数据流,仅保留目标地图缩放层级下的所有数据流,数据格式为“[(to_z,x_1,y_1),(to_z,x_2,y_2),…]”其中to_z为目标地图缩放层级,x为地图切片列号,y为地图切片行号,对数据流进行整合形成二维数组matrix,并构建相应的坐标映射函数f:(x,y)→(m,n),如果数据流中存在数据(x,y),则matrix[f(x,y)]的值为1,否则即为0;对二维数组matrix进行赋值后,设定滑动矩形窗大小(sizex,sizey)对二维数组内值为1的点进行滑动平移,从而得到一段操作行为的浏览轨迹,针对每段浏览轨迹以“操作行为,源目标地图缩放区间,目标地图缩放区间,平移矩阵左下角的切片坐标,平移矩阵右上角的切片坐标,平移矩阵中间的切片坐标”进行标记;

18、步骤3.4:用户操作行为的路径整合,通过步骤3.2和3.3确定一段会话中所有的操作行为及浏览轨迹,随后以有序队列的方式存储每一段浏览轨迹;

19、步骤3.5:用户操作行为路径的坐标变换,在步骤3.3和3.4中保存的是切片坐标,是以墨卡托坐标系下的,需要将切片坐标转化到经纬度坐标系中;

20、步骤3.6:用户地图浏览轨迹可视化,设计相应的前端界面,以热力图的形式对前序步骤挖掘得到的用户操作行为路径的平移矩阵中间切片坐标进行展示。

21、进一步地,所述流量数据全局特征描述为:(1)切片会话持续时间,指一段会话的最后数据流时间戳减去最开始数据流时间戳;(2)用户浏览次数,指一段会话中相邻两秒数据流时间差分大于2秒的次数;(3)请求流量数据总数,指一段会话中用户向地图切片服务器请求流量数据总条数;(4)实际操作行为数量,指用户在一段会话中放大、缩小、平移操作次数的总和;

22、所述流量速度统计特征描述为:(1)用户向地图切片服务器请求流量数据所花的时间总和;每个时间窗请求的流量数据数量的(2)均值;(3)标准差;(4)中位数;(5)下四分位数;(6)上四分位数;(7)四分位距;(8)最大值;

23、所述流量请求时间统计特征描述为:对整个会话过程中每段操作行为流量请求的时间进行统计分析可以得到用户请求时间的(1)均值;(2)标准差;(3)中位数;(4)下四分位数;(5)上四分位数;(6)四分位距;(7)最大值;

24、所述流量数据信息度衡量描述为:以信息利用率的角度对一段会话中的操作行为过程进行分析,可以得到(1)会话请求率,即用户在一段会话时间向地图切片服务器请求流量数据时长占整体会话时间的比例;(2)会话操作率,具体计算公式为1-用户浏览次数/实际操作行为数量,体现用户在一段会话中的操作效率;(3)有效切片率,即用户在整段访问过程中实际构成浏览区域的流量数量与用户请求流量总数的比例;

25、所述流量数据缩放区间级数分布描述为:统计从1~18级缩放区间,用户向地图切片服务请求流量数据的分布情况。

26、进一步地,所述操作行为频率分布描述为:(1)用户在整段会话中放大操作的频率;(2)用户在整段会话中缩小操作的频率;(3)用户在整段会话中平移操作的频率。

27、进一步地,所述用户浏览行为时间统计特征描述为:一段会话中相邻两秒数据流时间差分大于2秒的时间代表了用户实际浏览地图的浏览时间,针对用户浏览行为的时间进行统计分析可以得到用户浏览时间的(1)均值;(2)标准差;(3)中位数;(4)下四分位数;(5)上四分位数;(6)四分位距;(7)最大值;

28、所述用户浏览轨迹的区域性特征描述为:针对用户操作行为的地理区域发现过程中矩形平移的信息进行统计,可以得到(1)用户浏览区域矩形面积总和;(2)用户浏览区域平移列方向的最大值;(3)用户浏览区域平移行方向的最大值;(4)用户浏览区域矩形面积最大值;(5)用户平均操作输出区域的尺寸;(6)用户浏览区域的数量。

29、进一步地,在步骤6中,将步骤4中得到的异常行为训练样本数据集按照7:2:1分割成训练集、验证集、测试集;利用lightgbm框架建立机器学习模型,设置训练参数lightgbm叶子节点数为63,目标函数为二进制交叉熵,学习率为0.001,l1正则系数为0.1,l2正则系数为0.001,训练轮数为20,000,设置早停策略并输入训练集和验证集进行训练;训练后得到模型停止轮数为n,则将训练集、验证集、测试集进行整合,模型的训练轮数设置为n,取消早停策略重新输入至lightgbm模型中进行训练,最终得到基于机器学习的面向地图切片服务的爬虫行为检测模型。

30、进一步地,在步骤7中,将待预测用户的会话特征向量代入至基于机器学习的面向地图切片服务的爬虫行为检测模型中,得到待预测用户的会话检测结果,如果检测模型判断该用户的某一段会话过程存在爬虫行为,则认定该名用户为异常用户,并将“用户id,会话id,会话起始时间,会话终止时间”四元组数据存入电子表格中,之后对该名用户实施封禁或限速策略。

31、本发明提出一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述一种基于机器学习的面向地图切片服务的爬虫行为检测方法的步骤。

32、本发明提出一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时实现所述一种基于机器学习的面向地图切片服务的爬虫行为检测方法的步骤。

33、与现有方法相比,本发明方法存在两个方面的优点:第一,本发明从面向地图切片服务的爬虫的运行机理角度出发,通过特征工程的方法对用户请求流量数据的内容信息进行深度挖掘,提取多维度的地图浏览行为和内容特征,以对爬虫行为进行充分的描述;第二,本发明利用lightgbm框架建立机器学习模型,一方面减少了人工设计策略所需要的大量业务经验和先验知识,应用起来较为便利,另一方面,利用机器学习方法可以对流量数据挖掘得到的特征进行高效的拟合分析,最终实现对面向地图切片服务的爬虫行为的精准识别。

34、本发明提出的基于机器学习的面向地图切片服务的爬虫行为检测方法,其优点是:

35、1、本发明提出的基于机器学习的面向地图切片服务的爬虫行为检测方法,在实网环境下能够以较高的精确率和召回率对异常爬虫行为进行检测;

36、2、本发明从网络爬虫运行机理角度出发,利用特征工程对用户向地图服务切片请求时产生的流量数据进行深度挖掘,建立的特征向量可以很好地对用户浏览行为进行充分的描述,确保了方法在与爬虫设计者对抗过程中的时效性;

37、3、本发明构建了基于lightgbm集成学习框架的机器学习模型,模型训练不需要大量的先验知识与经验,使得该方法有较高的可行性,同时模型也具有较好的非线性拟合能力,保证了检测方法的有效性的同时,又具有一定的可解释性;

38、4、本发明对用户及其会话进行分组操作,分组后的检测过程可以并行计算,使得计算效率提高。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1