CCL 2023 电信网络诈骗案件分类评测-第一名方案

1 任务内容

1.1 任务背景

2022年12月1日起,新出台的《反电信网络诈骗犯罪法》正式施行,表明了我国治理当前电信网络诈骗乱象的决心。诈骗案件分类问题是打击电信网路诈骗犯罪过程中的关键一环,根据不同的诈骗方式、手法等将其分类,一方面能够便于统计现状,有助于公安部门掌握当前电信网络诈骗案件的分布特点,进而能够对不同类别的诈骗案件作出针对性的预防、监管、制止、侦查等措施,另一方面也有助于在向群众进行反诈宣传时抓住重点、突出典型等。

1.2 任务简介

文本分类是自然语言处理领域的基础任务,面向电信网络诈骗领域的案件分类对智能化案件分析具有重要意义。本任务目的是对给定案件描述文本进行分类。案件文本包含对案件的整体描述(经过脱敏处理)。具体细节参考第2部分。

2 评测数据

2.1 数据简介

数据采集: 案件文本内容为案情简述,即为受害人的笔录,由公安部门反诈大数据平台导出。

数据清洗: 从反诈大数据平台共计导出 13 个类别的数据,去除了“其他类型诈骗”类别,因此最终采用 12 个类别。

脱敏处理: 去除了案件文本中的姓名、出生日期、地址、涉案网址、各类社交账号以及银行卡号码等个人隐私或敏感信息。

分类依据: 类别体系来源于反诈大数据平台的分类标准,主要依据受害人的法益及犯罪分子的手法进行分类,例如冒充淘宝客服谎称快递丢失的,分为冒充电商物流客服类;冒充公安、检察院、法院人员行骗的,分为冒充公检法及政府机关类;谎称可以帮助消除不良贷款记录的,分为虚假政信类等等。

类别数量: 12 个类别。

2.2 数据样例

数据以json格式存储,每一条数据具有三个属性,分别为案件编号、案情描述、案件类别。样例如下:

{"案件编号": 28043,"案情描述": "事主(女,20岁,汉族,大专文化程度,未婚,现住址:)报称2022年8月27日13时43分许在口被嫌疑人冒充快递客服以申请理赔为由诈骗3634元人民币。对方通过电话()与事主联系,对方自称是中通快递客服称事主的快递物件丢失现需要进行理赔,事主同意后对方便让事主将资金转入对方所谓的“安全账号”内实施诈骗,事主通过网银的方式转账。事主使用的中国农业银行账号,嫌疑人信息:1、成都农村商业银行账号,收款人:;2、中国建设银行账号,收款人:。事主快递信息:中通快递,.现场勘查号:。","案件类别": "冒充电商物流客服类"
},
{"案件编号": 49750,"案情描述": "2022 年 11 月 13 日 14 时 10 分 23 秒我滨河派出所接到 110 报警称在接到自称疾控中心诈骗电话,被骗元,接到报警民警赶到现场,经查,报警人,在辽宁省 17 号楼 162 家中,接到自称沈阳市疾控报警中心电话,对方称报警人去过,报警人否认后对方称把电话转接到哈尔滨市刑侦大队,自称刑侦大队的人说报警人涉及一桩洗钱的案件让报警人配合调查取证,调查取证期间让报警人把钱存到自己的银行卡中,并向报警人发送一个网址链接,在链接上进行操作,操作完后,对方在后台将报警人存在自己银行卡的钱全部转出,共转出五笔,共计元。","案件类别": "冒充公检法及政府机关类"
},
{"案件编号": 78494,"案情描述": "2022 年 1 月 10 日 11 时至 18 时许,受害人在的家中,接到陌生电话:(对方号码:)对方自称是银保监会的工作人员,说受害人京东 APP 里有个金条借款要关闭,否则会影响征信。后对方就让受害人下载了“银视讯”的会议聊天软件,指导受害人如何操作,让受害人通过手机银行(受害人账户:1、交通银行;2、紫金农商银行;3、中国邮政储蓄银行:;4、中国民生银行:;)转账到对方指定账户:嫌疑人账户:1、中国农业银行;2、中国银行;3、中国银行;4、中国建设银行;5、中国银行;共计损失:元。案件编号:","案件类别": "虚假征信类"
}

2.3 数据分布

提供数据共有12个类别,类别具体分布如下表所示。

类别名称样本数量
刷单返利类35459
冒充电商物流客服类13772
虚假网络投资理财类11836
贷款、代办信用卡类11105
虚假征信类8464
虚假购物、服务类7058
冒充公检法及政府机关类4563
冒充领导、熟人类4407
网络游戏产品虚假交易类2155
网络婚恋、交友类(非虚假网络投资理财类)1654
冒充军警购物类1092
网黑案件1197
总计102762

注:在数据集(训练集和测试集)中 “冒充军警购物类” 的标注为 “冒充军警购物类诈骗” 。

训练集及测试集划分如下所示。

数据划分样本数量
训练集82210
测试集A10276
测试集B10276
总计102762

本次评测任务计划仅采用训练集及测试集A以作评测。

2.4 文本长度分布

下图展示了案情描述文本长度的分布情况,因此在预训练阶段,我们选择了预训练了一个1024长度的Nezha模型。
在这里插入图片描述

3 评价标准

评测性能时,本任务主要采用宏平均F1值作为评价标准,即对每一类计算F1值,最后取算术平均值,其计算方式如下:
M a c r o F 1 = 1 n ∑ i = 1 n F 1 i Macro_{F1} = \frac{1}{n} \sum_{i=1}^{n} F1_{i} MacroF1=n1i=1nF1i
其中 F 1 i F1_i F1i 为第i类的 F 1 F1 F1 值,n为类别数,在本任务中n取12。

4 模型架构

本文模型结构如下图所示,基线模型采用BERT(包括其变种)+Linear的文本分类模型架构。并采用预训练、对抗训练和模型融合等三种主要优化策略提升基线模型的性能。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7RgsDA26-1690680329128)(./img/model.jpg)]

4.1 预训练

有效的预训练可以提升模型在下游任务微调的性能。本文提取数据集中的案情描述文本,在预训练阶段添加MLM预训练任务,通过无监督学习使得预训练语言模型获得案件领域的知识,从而使模型具备对案件文本更好的语义理解和特征提取能力。MLM预训练使用了与【1】一致的方式,将输入的案情描述文本随机遮蔽,即为存在15%的概率决定对该token进行修改,其中有80%的概率改为"[MASK]",有10%的概率被替换为一个随机的token,有10%的概率保持不变。MLM预训练任务使用交叉熵损失进行训练,其损失表示为公式:
L m l m = − ∑ i = 0 V − 1 y i m a s k l o g ( p i m a s k ) L_{mlm}=-\sum_{i=0}^{V-1}y_i^{mask}log(p_i^{mask}) Lmlm=i=0V1yimasklog(pimask)
其中,V为模型词表大小, y i m a s k y_i^{mask} yimask是遮蔽字符的标签, p i m a s k p_i^{mask} pimask表示模型预测的概率。

本文在预训练阶段,分别预训练了三种中文模型,分别为nezha、Roberta和Deberta。在使用Nezha-base-wwm预训练语言模型时,输入序列的最大长度为1024,在使用chinese-roberta-wwm-ext-large与Deberta(注:这里使用了两个权重进行实验,320M的进行了预训练,710M的没有进行预训练,相关权重链接:1、Erlangshen-DeBERTa-v2-320M-Chinese:https://huggingface.co/IDEA-CCNL/Erlangshen-DeBERTa-v2-320M-Chinese;2、Erlangshen-DeBERTa-v2-710M-Chinese:https://huggingface.co/IDEA-CCNL/Erlangshen-DeBERTa-v2-710M-Chinese}预训练语言模型时,输入序列的最大长度为512)。

4.2 对抗训练

为了增强模型对干扰和噪声的抵抗能力,本文实验了PGD【3】、FGM【4】、FreeLB【2】等对抗训练技巧提升模型的鲁棒性,通过实验性能对比,最终主要采用了FreeLB对抗训练。FreeLB的核心思想是通过增加对抗样本的生成空间,引入自由生成的方法来提高模型的鲁棒性。传统的对抗训练方法通常使用固定的扰动方法来生成对抗样本,这可能会限制模型的泛化能力和鲁棒性。相比之下,FreeLB提出了自由生成的概念,它允许生成过程中的扰动更加多样和自由,从而提供更丰富的训练信号。都是在word embedding空间上加入扰动,然后对扰动后的embedding进行look up,得到的词向量再喂给模型。其原理伪代码如表1所示。

在这里插入图片描述

4.3 模型融合

模型融合是一种常用的技术,在文本分类比赛中被广泛应用,旨在提高分类模型的性能和泛化能力。模型融合通过结合多个不同的分类模型的预测结果,从而得到更准确、更稳定的最终预测结果。本文的模型融合的方法是对于每个分类模型的输出概率进行简单的相加,得到最终的融合概率分布,进一步求取最大概率的下标获取对应的类别标签。

5 评测结果

最终相应模型在线上提交评测的结果如下表:

在这里插入图片描述

6 结果分析与讨论

模型对比:本文使用了多个不同的预训练模型进行评测,包括chinese-roberta-wwm-ext-large、nezha-base-wwm和Erlangshen-DeBERTa-v2系列模型。从线上得分来看,预训练后的模型普遍表现比预训练前的模型更好。

数据划分:大部分模型使用了9:1的数据划分比例,即将数据集划分为训练集和验证集。只有两个模型(②和③)使用了全量数据进行训练。使用全量数据进行训练通常会有更好的效果,因为模型可以更充分地学习数据中的模式和规律。

输入长度:所有模型的输入长度都为512或1024。较长的输入长度可以提供更多的上下文信息,有助于模型理解文本的语义和逻辑关系。然而,较长的输入长度也会增加模型的计算负担和训练时间。

模型融合:根据给出的实验结果,可以看出模型组合⑤+⑧+⑨获得了最高的线上得分(0.8660677395)。这是因为这个组合中的模型相互补充,模型的融合能够有效的提升模型的泛化能力。

此外,由于比赛提交次数有限,未提交验证FreeLB对抗训练对于结果的影响,根据本人在其他比赛的经验,该策略能有效提升模型的鲁棒性。

7 结论

本研究针对电信网络诈骗案件的分类问题,通过采用一系列优化策略和技巧,包括BERT的继续预训练、FreeLB的对抗训练和模型融合,取得了显著的成果。实验结果在“CCL23-Eval-任务6-电信网络诈骗案件分类评测”技术评测比赛中最终成绩排名第一,证明了所提出的优化策略在提高电信网络诈骗案件分类性能方面的有效性和优越性。

通过BERT的继续预训练,研究者使模型具备更好的语义理解和特征提取能力,有助于准确地分类和检测电信网络诈骗案件。同时,通过FreeLB的对抗训练,模型的鲁棒性得到增强,使其能够更好地处理噪声和干扰,提高了分类的准确性。此外,采用模型融合的方法将多个模型的预测结果进行融合,进一步提升了分类的效果。

参考文献

【1】Yiming Cui, Wanxiang Che, Ting Liu, Bing Qin, and Ziqing Yang. 2021. Pre-training with whole word masking for chinese bert. IEEE/ACM Transactions on Audio, Speech, and Language Processing,29:3504–3514.

【2】Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2018. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.

【3】Aleksander Madry, Aleksandar Makelov, Ludwig Schmidt, Dimitris Tsipras, and Adrian Vladu. 2017.Towards deep learning models resistant to adversarial attacks. arXiv preprint arXiv:1706.06083.

【4】Takeru Miyato, Andrew M Dai, and Ian Goodfellow. 2016. Adversarial training methods for semivised text classifification. arXiv preprint arXiv:1605.07725.

【5】Chen Zhu, Yu Cheng, Zhe Gan, Siqi Sun, Tom Goldstein, and Jingjing Liu. 2019. Freelb: Enhanced adversarial training for natural language understanding. arXiv preprint arXiv:1909.11764.

【6】https://github.com/GJSeason/CCL2023-FCC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/18633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tp-link端口映射设置教程及快解析内网穿透

通常情况下,我们希望互联网的其他用户访问到我们本地局域网内部的一台服务器、监控……等设备或应用,就要在本地路由器或防火墙的出接口/路由器WAN口 上做端口映射,将内部局域网某台计算机的私网IP,如:192.168.1.101 内…

手写一个锁其实也很easy

懵逼的状态: 面试中经常被问到,如何手写一个锁,很多时候一脸懵逼,不知所措,多少年前深有体会,然而回过头来细细分析,只需使用AtomicReference类 即可以轻松搞定。首先咱们先来了解一下Atomi…

数据截断、频谱泄漏与窗函数的选择

目录 数据截断、频谱泄漏与窗函数的选择 什么是频谱泄漏? 解决频谱泄漏问题的方法 主瓣和旁瓣 窗函数介绍 窗函数解决频谱泄漏问题的原理 窗函数的种类、特点和如何使用 1、矩形窗 2、三角窗 3、汉宁窗 4、海明窗 5、布莱克曼窗 6、巴特窗:…

opencv 31-图像平滑处理-方框滤波cv2.boxFilter()

方框滤波(Box Filtering)是一种简单的图像平滑处理方法,它主要用于去除图像中的噪声和减少细节,同时保持图像的整体亮度分布。 方框滤波的原理很简单:对于图像中的每个像素,将其周围的一个固定大小的邻域内…

MySQL安装 找不到 MSVCP100.dll

安装mysql5.6.51时,出现由于找不到 MSVCP100.dll,无法继续执行代码。重新安装程序可能会解决此问题。 这应该是缺少VS运行库文件导致的,运行库就是支持大部分程序运行的基础,由于很多常用软件都是采用 Microsoft Visual Studio 编…

刷题笔记 day2

力扣 1089 复写零 思路:双指针 第一步:利用指针 cur 去记录最后一位要复写的数 , 利用指针 dest 指向最后一位数所要复写的位置; 实现过程:最开始 cur 指向0,dest 指向 -1 , 当arr[cur] ! …

【UEC++学习】UE网络 - Replication、RPC

1. UE网络架构 (1)UE的网络架构是SC(Server - Client)的模式,这种模式的优势:这种模式让所有客户端都在服务器端进行安全验证,这样可以有效的防止客户端上的作弊问题。 (2&#xff…

Python(五十六)列表元素的排序操作

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

数据结构初阶--栈和队列

目录 一.栈 1.栈的定义 2.顺序栈的功能实现 2.1.顺序栈的定义 2.2.顺序栈的初始化 2.3.顺序栈的判空 2.4.顺序栈的入栈 2.5.顺序栈的出栈 2.6.顺序栈的取栈顶元素 2.7.顺序栈的求栈的大小 2.8.顺序栈的销毁 2.9.完整程序 Stack.h Stack.c test.c 二.队列 1.队…

使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存

Redis Cluster(Redis 集群)是 Redis 分布式解决方案的一部分,它旨在提供高可用性、高性能和横向扩展的功能。Redis Cluster 能够将多个 Redis 节点组合成一个分布式集群,实现数据分片和负载均衡,从而确保在大规模应用场…

session反序列化+SoapClientSSRF+CRLF

文章目录 session反序列化SoapClientSSRFCRLF前言bestphps revengecall_user_func()方法的特性SSRFCRLF组合拳session反序列化 解题步骤总结 session反序列化SoapClientSSRFCRLF 前言 从一道题分析通过session反序列化出发SoapClientSSRF利用CRLF解题 bestphp’s revenge 首…

基于方向编码的模板匹配算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ........................................................................... %选择移动个…

自适应巡航控制系统研究(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 据统计, 我国交通事故造成的伤亡人数每年超过10万人, 其中驾驶员人为原因 (疲劳、酒驾、误操作等) 所致事故逐渐升高.汽车交通…

pycharm——制作k线图

K 线图 Candlestick Candlestick - Kline_itemstyle from pyecharts import options as opts from pyecharts.charts import Klinedata [[2320.26, 2320.26, 2287.3, 2362.94],[2300, 2291.3, 2288.26, 2308.38],[2295.35, 2346.5, 2295.35, 2345.92],[2347.22, 2358.98, 23…

安装skywalking并集成到微服务项目

文章目录 一、前言二、介绍1. 架构 三、安装skywalking服务端四、启动skywalking服务端五、微服务项目开发注册中心网关服务商品服务订单服务支付服务测试 六、下载java客户端七、微服务集成skywalking客户端1. idea启动2. 命令行启动3. 集成效果 八、skywalking客户端配置1. 配…

Python高阶技巧 正则表达式

正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述、匹配某个句法规则的字符串,常被用来检索、替换那些符合某个模式(规则)的文本。 简单来说,正则表达式就是使…

小程序学习(六):全局配置

1.全局配置文件及常用的配置项 全局配置-window 2.小程序窗口的组成部分 3.了解window节点常用的配置项 4.设置导航栏的标题 设置步骤:app.json->window->navigationBarTitleText 5.设置导航栏的背景色 背景颜色不支持red这种文字 6.设置导航栏的标题颜色 注意:navigat…

SpringBoot笔记:SpringBoot集成Dataway

文章目录 1、什么是 Dataway?2、主打场景3、技术架构4、整合SpringBoot4.1、maven 依赖4.2、初始化脚本4.3、整合 SpringBoot 5、Dataway 接口管理6、Mybatis 语法支持7、小结 1、什么是 Dataway? 官网地址:https://www.hasor.net/docs/guides/quickstart Da…

k8s kubeadm命令升级集群 从1.17升级到1.18

k8s kubeadm命令升级集群 从1.17升级到1.18 大纲 注意事项master节点执行升级命令master节点和node节点执行命令 注意事项 目标当前线上k8s集群版本是k8s1.17 想把k8s升级到1.18。注意k8s不能跨版本升级例如k8s1.17不能直接升级到k8s1.19,需要先升级到1.18才后向…

faac内存开销较大,为方便嵌入式设备使用进行优化(valgrind使用)

faac内存开销较大,为方便嵌入式设备使用进行优化,在github上提了issues但是没人理我,所以就搞一份代码自己玩吧。 基于faac_1_30版本,原工程https://github.com/knik0/faac faac内存优化: faac内存开销较大,为方便嵌入…