特征工程是使用机器学习技术解决场景任务过程的核心环节,特征工程的质量决定了模型效果的上限。本文将聚焦汽车保险反欺诈任务,研究跨表特征工程技术,解决汽车保险反欺诈过程中的数据表格聚合和高效特征挖掘问题,用于支撑下游反欺诈建模任务。目前,单表的特征工程算法较为成熟,而跨表的特征工程算法相对较少。相比于单表特征工程,多表之间的特征衍生所涉及的特征数目更多,更容易出现特征爆炸。针对这一问题,我们提出了xDFS方法,在DFS (Deep Feature Synthesis)方法上进行优化,引入对单表的统计分析过程,避免了DFS在数据预处理阶段的特征拆分,利用xgboost模型计算特征衍生的最优组合,进而解决了跨表特征衍生过程中的特征爆炸问题。在实验过程中,我们将xDFS方法在两个公开数据集和一个车险数据集上进行测试,发现当衍生特征深度较深时,DFS出现特征爆炸问题,而xDFS均未产生特征爆炸问题。 Feature engineering is the core part to introduce machine learning into application, which determines the best performance of a model. The current paper will be focused on the anti-fraud task in auto insurance, study the cross feature engineering so as to solve the aggregation among multi tables and efficiently mining deep features, as a result supporting anti-fraud modeling task. Currently, feature engineering in independent dataset is relatively mature, but less research in relational cross datasets. We develop the xDFS method based on DFS (deep feature synthesis), which introduces groupby method to get statistical features between different entities in same dataset without entity extraction and feature aggregation. Besides, xDFS uses xgboost to get feature combinations and avoid the exponential growth as increase of synthesis depth. Experiments on two public datasets and an auto insurance dataset show that feature exponential growth in DFS, while not in xDFS.
特征工程是使用机器学习技术解决场景任务过程的核心环节,特征工程的质量决定了模型效果的上限。本文将聚焦汽车保险反欺诈任务,研究跨表特征工程技术,解决汽车保险反欺诈过程中的数据表格聚合和高效特征挖掘问题,用于支撑下游反欺诈建模任务。目前,单表的特征工程算法较为成熟,而跨表的特征工程算法相对较少。相比于单表特征工程,多表之间的特征衍生所涉及的特征数目更多,更容易出现特征爆炸。针对这一问题,我们提出了xDFS方法,在DFS (Deep Feature Synthesis)方法上进行优化,引入对单表的统计分析过程,避免了DFS在数据预处理阶段的特征拆分,利用xgboost模型计算特征衍生的最优组合,进而解决了跨表特征衍生过程中的特征爆炸问题。在实验过程中,我们将xDFS方法在两个公开数据集和一个车险数据集上进行测试,发现当衍生特征深度较深时,DFS出现特征爆炸问题,而xDFS均未产生特征爆炸问题。
保险,反欺诈,人工智能,特征爆炸,跨表特征工程
Jinni Dong, Xiao Deng, Chongning Na, Yao Yang, Kui Chen*
Zhejiang Lab, Hangzhou Zhejiang
Received: Mar. 7th, 2024; accepted: May 24th, 2024; published: May 31st, 2024
Feature engineering is the core part to introduce machine learning into application, which determines the best performance of a model. The current paper will be focused on the anti-fraud task in auto insurance, study the cross feature engineering so as to solve the aggregation among multi tables and efficiently mining deep features, as a result supporting anti-fraud modeling task. Currently, feature engineering in independent dataset is relatively mature, but less research in relational cross datasets. We develop the xDFS method based on DFS (deep feature synthesis), which introduces groupby method to get statistical features between different entities in same dataset without entity extraction and feature aggregation. Besides, xDFS uses xgboost to get feature combinations and avoid the exponential growth as increase of synthesis depth. Experiments on two public datasets and an auto insurance dataset show that feature exponential growth in DFS, while not in xDFS.
Keywords:Insurance, Anti-Fraud, AI, Feature Exponential Growth, Cross Feature Engineering
Copyright © 2024 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
保险是金融市场的重要组成部分,保险欺诈行为严重影响了保险市场的健康、可持续发展,保险欺诈预警和反欺诈是保险公司打击保险欺诈的重要手段。伴随着大数据科学和人工智能技术的发展,智能化反欺诈技术越来越多的应用在保险反欺诈任务中,比如客户风险画像描绘、基于客户日常消费行为的实时预警、案件风险识别、赔付渗漏预警和周期审计等任务。然而由于保险行业的数据分布散、更新不及时、数据质量差异大和数据监管严格等因素影响,智能化技术应用与落地都面临着严重的挑战。
在汽车保险领域,简称车险,我国2023年保费收入约8673亿元 [
在车险领域,车险数据分多个主体进行存储,比如报案数据以报案号为主键存储单个案件的具体信息,包含案件中涉及的车辆、人员、案发时间、查勘信息等。车辆数据则以车牌号或者车架号为主键存储了单辆车的信息,包含车辆品牌、购买时间等。人员数据以身份识别号为主键存储人员信息,包括人员的性别、年龄、驾照编号等。而车辆数据和人员数据又细分车损数据和人伤数据等。因此车险场景下的数据具有主体多,主体与主体间关系复杂的特点。由于每一个数据主体对应有一张数据表格,车险场景的智能化建模涉及到跨数据表的特征衍生的问题。
目前较为主流的一些特征衍生方法都是基于单张表进行处理 [
为了根本性解决跨表特征衍生过程的特征爆炸问题,我们提出了xDFS方法,该方法在特征衍生阶段进行候选特征评估和筛选,在保障建模效果的基础上,限制了特征衍生的数量,从而避免了特征爆炸问题。此外xDFS还优化了特征衍生方法,避免了DFS对表格进行预处理和拆分的过程,从而提高了特征衍生效率。xDFS方法在特征衍生的效果上优于DFS,并且不会出现特征爆炸问题,根本性解决了DFS在跨表数据集特征衍生过程中的特征爆炸和低效问题。
本文第二章节介绍了自动化特征工程相关工作,包括多表特征衍生方法和单表特征衍生方法。第三章节提出了xDFS方法,详细介绍了xDFS的架构,包括特征衍生方法和特征筛选方法,并与现有的多表特征工程方法进行对比分析。第四章节对比了xDFS方法和现有的两种多表特征工程方法的实验效果。第五章节,我们给出了关于xDFS方法的总结和应用延展讨论。
自动化特征工程按照表结构区分,可以分为多表自动化特征工程和单表自动化特征工程。
目前关于多表自动化特征工程的研究相对较少,DFS [
x i , j ' k = r f e a t ( x : , j | e k = i l )
其中 x i , j ' k 为第k个实体中的特征j'在第i个样本上的取值。特征j'由第l个实体中的特征j衍生而来。rfeat为min/max/count等聚合运算符。
根据上述方法,DFS可以进行自动化多表特征衍生。但DFS由于缺少特征筛选机制,容易造成特征爆炸。ADE方法 [
其他一些主流的关于自动化特征工程的研究都是处理单表数据的,比较典型的包括autocross [
单表特征工程方法采用特征间点乘的方式来生成交叉特征,多用于基于深度学习的端对端模型。Autocross、autofis、xcrossnet是其中较为成熟的方法。Autocross方法采用树模型搜索的方式来找到特征衍生的组合,并利用LR模型来筛选特征,其优势在于基本不需要调参,采用分布式计算,计算速度快。Autofis方法适用于所有的FM模型,用于对FM模型中的交叉特征的筛选,相对于autocross,不需要对树模型空间进行搜索,筛选特征的效率更高。Xcrossnet则是基于MLP进行交叉特征的筛选,并且可以处理数值型数据类型。三种方法总结来说,autocross和autofis仅能处理类别型的变量,或者需要将数值型的变量预处理成类别型变量后,才可以进行特征衍生。而xcrossnet方法除了可以处理类别型变量外,还可以处理数值型变量,在处理的变量类型上更为通用。Autocross可以衍生筛选出特征,并将特征用于任意模型,而autofis和xcrossnet方法则与因子分解机或MLP结合,直接获得模型训练结果而不会输出特征衍生和筛选的中间结果。
多运算单表特征工程方法采用四则运算、逻辑运算等方式来生成交叉特征。ExploreKit和SAFE是其中较为代表性的方法。除了交叉特征外,这两种方法对于单个特征也有一些进一步的处理,例如ExploreKit引入了对数值型变量的离散化和归一化处理,SAFE在此基础上还引入了数学运算,例如log、sigmoid、square等。对于衍生的特征,ExploreKit采用元学习的方法来进行特征筛选,SAFE则是首先通过树模型来确定特征交互的组合,以此为依据生成特征,并在此基础上利用IV值和皮尔逊相关系数来删除掉不重要的特征和冗余的特征。这两个方法均可输出特征衍生单独的结果和经过特征筛选的结果,所得到的特征都可以用于各类机器学习和深度学习模型。
xDFS方法可以分为特征衍生和特征筛选两部分。
特征衍生在DFS的基础算子上提出了groupby方法,该方法将同一张表中的数值型变量以类别型变量为依据进行分组统计,解决了DFS方法需要对类别型变量进行实体抽取预处理才能分组统计的问题。
特征筛选又可以分为特征组合和特征筛选。特征组合在特征衍生之前,通过树模型确定特征组合,再将确定的特征组合进行特征衍生。特征筛选在特征衍生之后,对已经衍生的特征按照重要度和冗余情况进行特征筛选。
Groupby方法与pandas [
根据图1(b),对于性别字段可以求得平均年龄和各性别人数,对于修理厂字段,可以求得在各类修理厂修理车辆的平均购置价和平均车龄。将性别和年龄,修理厂类型和新车购置价、车龄联系起来,是依据我们现有的常识和直观感觉,认为这两组字段间有相关性。但是在实际的特征工程过程中,由于具备海量的原始特征,我们很难手动去一一判断字段间的相关性,因此为了得到图1(c)这样的特征衍生结果,还需要进行组合选择,关于特征组合的方法可见3.2.1。
图1. (a) 原始表格该表中存在两个类别型字段,Gender和RepairFactoryType,可以依据这两个字段对其余数值型字段进行groupby;(b) 利用pandas将DriverAge按照Gender进行groupby,将NewAutoPrice和CarAgeInMonth按照RepairFactoryType进行groupby的结果;(c) 利用xDFS进行groupby的结果
上述内容具体介绍了groupby方法是如何进行特征衍生的,关于groupby方法进行特征衍生的数学表述推导详见附录1。
在DFS中也可以实现groupby方法衍生出的特征,但是流程会更加复杂。以图2为例,(a)~(c)为利用DFS方法进行特征衍生的流程,(d)~(e)为利用xDFS方法进行相同特征衍生的流程。显然xDFS方法进行的特征衍生深度较DFS方法要浅,且该方法不依赖于数据表的拆分(DFS方法必须拆分出报案数据表和车辆数据表,才能进行特征衍生)。
图2. (a) 利用DFS进行跨表特征衍生的原始表格,左侧为以报案号为主键的报案数据表,右侧为以车牌号为主键的车辆数据表;(b) 利用DFS进行跨表特征衍生的第一步,通过对报案数据表中的case amount特征以platenumber为依据进行sum操作,在车辆数据表中生成对应的RFEAT;(c) 利用DFS进行跨表特征衍生的第二步,对车辆数据表中在上一步衍生的case amount (agg)特征以platenumber为依据,在报案数据表中生成对应的DFEAT;(d) 利用xDFS衍生出(c)中同样的特征所需流程,此处展示的是xDFS方法中用到的原始表格;(e) 利用xDFS衍生出(c)中同样的特征所需流程,第一步,通过groupby方法,依据platenumber对case amount特征进行衍生即可
上述流程图直观上展示了xDFS方法可以与DFS方法生成相同的特征,附录2中对于这一点进行了数学证明。
因此,我们可以得出如下结论:
x : , j k l = x : , j b y c a t e l
其中 x : , j k l 为通过DFS方法将原始特征j通过一系列映射后,重新映射回实体l而新生成的特征, x : , j b y c a t e l 为通过xDFS方法直接将特征j进行特征衍生而生成的特征。
文献 [
而xDFS方法本身就是基于DFS方法的改进,因此生成的特征本就包含了DFS方法中的特征,不需要与DFS方法结合。并且该方法可以自动进行特征组合,具体在3.2.1章节中会阐述,因此可以自动化进行特征衍生,不依赖于任何行业经验。
通过groupby方法,可以使得DFS不用进行实体抽取的预处理,即xDFS可以直接将生数据处理成适用于各类机器学习模型的特征。但车险场景中,由于表的数目庞多且表连接关系复杂,会导致特征衍生的深度较深,而每一层的特征衍生,都会在上一层表的基础上在进行一次特征组合,因此会导致特征呈指数式增长,当特征衍生的深度较深时,会发生特征爆炸,使得DFS方法在进行特征衍生时只能在较浅的深度进行衍生,无法挖掘深度表间的潜在关系并生成相应特征。
为了减少特征组合数,可以选择树模型来筛选特征组合,xDFS选取了xgboost来筛选特征组合,通过设置xgboost中树的深度和数目,来得到合适的特征组合数。为了保证跨表间的特征也能进行组合,需要在所有子表特征都聚合完后再利用xgboost来进行特征筛选。
图3. xDFS流程示意图
得到特征组合后,首先根据组合情况衍生出相应的特征,在此基础上,对生成的特征再进行特征筛选,并将筛选的结果聚合到父表上。具体采用的特征筛选方法包括,对于离散变量采用卡方检验计算特征重要度,对于连续变量采用方差分析计算特征重要度。首先利用皮尔逊相关系数剔除一对特征中重要度计算较小的冗余特征,在此基础上,根据用户设置的特征筛选上限进行特征筛选。
最终,整个xDFS的流程图如图3所示。
首先利用DFS的搜索机制找到最底层的表(该表不存在子表),对该表进行特征衍生和特征筛选,再往上一层父表进行特征聚合。若父表具有多张子表,则待所有子表都完成特征聚合后,再进行父表的特征衍生。
选取了facebook recruiting IV、KDD cup2014两个公开数据集和某家车险公司的数据集共三个数据集进行测试。其中facebook recruiting IV的表连接关系比较简单,另外两个数据集的表连接关系比较复杂。对于特征衍生的结果采用one-hot进行编码,采用xgboost模型进行训练,设置特征衍生上限为500。比较DFS方法、ADE + DFS方法和xDFS方法,其结果如表1所示。其中提升率以衍生深度为1时DFS方法的AUC为基础进行计算。
可以发现xDFS方法在3个数据集上均具有最好的效果。其中facebook recruiting IV数据集的深度较浅,因此DFS方法在3个衍生深度下的结果相同,但ADE和xDFS仍然能挖掘表连接关系之外的groupby关系,使得其在不同衍生深度下具有不同的效果。在KDD cup2014和某车险公司的数据集上,可以发现ADE最为容易发生特征爆炸,DFS次之,xDFS作为一种轻量化方法,可以很好地适应各类数据集的深度特征衍生。这是因为ADE虽然加入了特征筛选,但是是在每一层子表特征衍生完之后,如果该层子表特征本身数量巨大,会导致该子表特征无法衍生。而由于ADE加入了groupby方法,导致每一层子表的特征数远大于DFS,会比DFS更容易发生特征爆炸。
facebook recruiting IV | KDD cup2014 | 某车险公司 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
特征数 | AUC | 提升率 | 特征数 | AUC | 提升率 | 特征数 | AUC | 提升率 | ||
衍生深度1 | DFS | 15 | 0.8532 | / | 125 | 0.5865 | / | 269 | 0.8568 | / |
ADE + DFS | 17 | 0.8492 | −0.47% | 500 | 0.5788 | −1.41% | 500 | 0.8468 | −1.17% | |
xDFS | 17 | 0.8492 | −0.47% | 193 | 0.6083 | 3.61% | 271 | 0.8851 | 3.30% | |
衍生深度2 | DFS | 120 | 0.8532 | 0.00% | 1460 | 0.5871 | 0.10% | / | / | / |
ADE + DFS | 89 | 0.8907 | 4.40% | / | / | / | / | / | / | |
xDFS | 52 | 0.9028 | 5.81% | 319 | 0.5887 | 0.27% | 500 | 0.8888 | 3.73% | |
衍生深度3 | DFS | 120 | 0.8532 | 0.00% | / | / | / | / | / | / |
ADE + DFS | 500 | 0.9109 | 6.76% | / | / | / | / | / | / | |
xDFS | 310 | 0.9211 | 7.96% | 276 | 0.5885 | 0.24% | 500 | 0.8801 | 2.72% |
表1. xDFS与另外两种方法效果对比
本文提出了一种xDFS方法,相较于DFS方法,该方法在处理复杂的表连接关系和深度的特征衍生时,具有良好的精度,同时避免了DFS方法的繁琐预处理过程和特征爆炸问题,并在公开数据集以及车险场景数据集上获得验证。该方法的提出有利于智能化方法在车险场景的应用和落地,推动了车险反欺诈数据化、智能化进程。同时,针对其他金融场景任务,比如银行贷前客户划分、信贷过程预警以及贷后审计等任务,xDFS都可以发挥重要作用,进一步推动人工智能技术在金融风控领域的落地应用。
本论文由国家重点研发计划资助,项目号:2022YFB4501500,2022YFB4501503;由国家自然科学基金资助,项目号:12201580。
董今妮,邓 潇,那崇宁,杨 耀,陈 奎. 基于保险反欺诈任务的跨表特征工程方法 Cross Feature Engineering for Anti-Fraud Task in Insurance[J]. 人工智能与机器人研究, 2024, 13(02): 467-477. https://doi.org/10.12677/AIRR.2024.132048
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
假定我们需要特征衍生的数据有多个实体,每个实体对应一张表格。那么对于任意一个实体均可以进行groupby特征衍生。对于第l个实体上的第j个特征 x : , j l ,如果第l个实体上还存在类别型或id型特征 x : , c a t e l ,则可以得到新的衍生特征 x : , j b y c a t e l ,由于没有进行跨表特征衍生,按照DFS中对特征的分类,该衍生特征为EFEAT。其数学表述如下:
x : , j b y c a t e l = [ f e f e a t ( I c a t e = c a t e _ 1 , l i n d e x x : , j l ) ⋮ f e f e a t ( I c a t e = c a t e _ n l , l i n d e x x : , j l ) ]
其中fefeat是特征生成函数,包括了求和、求平均、求中位数、求个数等多种函数。对于第l个实体上的类别型特征cate,该实体上第i个instance的特征cate取值为cate_i,那么找出cate取值为cate_i的所有instance的下标构成的矩阵即为 I c a t e = c a t e _ i , l i n d e x ,其计算公式如下:
I c a t e = c a t e _ i , l i n d e x = [ l c a t e = c a t e _ i , l 1 ⋮ l c a t e = c a t e _ i , l n c a t e = c a t e _ i ] , l c a t e = c a t e _ i , l m = e i n d c a t e = c a t e _ i , l m T ∈ R n l , m = { 1 , ⋯ , n c a t e = c a t e _ i }
其中 i n d c a t e = c a t e _ i , l m 指第l个实体中在cate特征上所取的值为cate_i的instance集合中的第m个instance在第l个实体中所有instance里所对应的下标。
对于第l个实体上的第j个特征 x : , j l ,可以在第k个实体上生成RFEAT,按文献[
x i , j ' k = r f e a t ( x : , j | e k = i l )
将上述表述转化为数学形式如下:
x i , j ' k = f r f e a t ( I e k = i , l i n d e x x : , j l )
其中 x : , j l 为第l个实体中所有instance的第j个特征集合构成的向量,向量大小为 n l × 1 , n l 为第l个实体中instance的个数。 I e k = i , l i n d e x 为标签矩阵,其大小为 n e k = i , l × n l , n e k = i , l 是指第k个实体中的第i个instance在第l个实体中所对应的instance数。 I e k = i , l i n d e x 计算方式如下:
I e k = i , l i n d e x = [ l e k = i , l 1 ⋮ l e k = i , l n e k = i , l ] , l e k = i , l m = e i n d e k = i , l m T ∈ R n l , m = { 1 , ⋯ , n e k = i , l }
其中 i n d e k = i , l m 指第k个实体中的第i个instance在第l个实体中所对应的第m个instance在第l个实体中所有instance里所对应的下标。
对于第k个实体上的所有instance均可以通过上述方式生成特征,最终有新特征 x : , j ' k ,为由所有instance的新特征集合构成的向量,向量大小为 n k × 1 , n k 为第k个实体中instance的个数。数学表达如下:
x : , j ' k = [ f r f e a t ( I e k = 1 , l i n d e x x : , j l ) ⋮ f r f e a t ( I e k = n k , l i n d e x x : , j l ) ]
对于第k个实体上新生成的特征,可以在第l个实体上生成DFEAT,则对于在第l个实体上的原始特征 x : , j l 通过第k个实体再次映射回第l个实体而新生成的特征 x : , j k l ,有如下计算公式:
x : , j k l = [ l e k = 1 , l T ⋯ l e k = n k , l T ] x : , j ' k , l e k = i , l = ∑ m = 1 n e k = i , l l e k = i , l m , i = { 1 , ⋯ , n k }
根据3.1.1,通过groupby衍生的特征如下:
x : , j b y c a t e l = [ f e f e a t ( I c a t e = c a t e _ 1 , l i n d e x x : , j l ) ⋮ f e f e a t ( I c a t e = c a t e _ n l , l i n d e x x : , j l ) ]
其中cate与DFS方法中的第k个实体相对应,第k个实体由cate拆分获得,因此cate中奇异值个数与第k个实体中instance数相同,值也一致,即set(cate)是长度为nk的集合,可表示为如下形式:
s e t ( c a t e ) = { C A T E 1 , C A T E 2 , ⋯ C A T E n k }
显然, x : , j b y c a t e l 作为一个 n l × 1 的向量,有大量重复值,其集合形式可以表示为:
s e t ( x : , j b y c a t e l ) = { f e f e a t ( I c a t e = C A T E 1 , l i n d e x x : , j l ) , f e f e a t ( I c a t e = C A T E 2 , l i n d e x x : , j l ) , … , f e f e a t ( I c a t e = C A T E n k , l i n d e x x : , j l ) }
进一步的, x : , j b y c a t e l 可以表示为如下形式:
x : , j b y c a t e l = [ l c a t e = C A T E 1 , l T ⋯ l c a t e = C A T E n k , l T ] [ f e f e a t ( I c a t e = C A T E 1 , l i n d e x x : , j l ) ⋮ f e f e a t ( I c a t e = C A T E n k , l i n d e x x : , j l ) ] l c a t e = C A T E i = ∑ m = 1 n c a t e = C A T E i l c a t e = C A T E i , l m , i = { 1 , ⋯ , n k }
显然,对照DFS方法,有下述等式成立:
x : , j ' k = [ f e f e a t ( I c a t e = C A T E 1 , l i n d e x x : , j l ) ⋮ f e f e a t ( I c a t e = C A T E n k , l i n d e x x : , j l ) ] [ l e k = 1 , l T ⋯ l e k = n k , l T ] = [ l c a t e = C A T E 1 , l T ⋯ l c a t e = C A T E n k , l T ]
由此,综合附录1中的推导,有如下结论:
x : , j k l = x : , j b y c a t e l
https://www.cbirc.gov.cn/cn/view/pages/tongjishuju/tongjishuju.html, 2024-02-23.
https://doi.org/10.1162/dint_a_00191
https://doi.org/10.1016/j.jfds.2016.03.001
https://doi.org/10.1016/j.dss.2017.11.001
https://doi.org/10.1145/3292500.3330679
https://doi.org/10.1145/3394486.3403314
https://doi.org/10.1007/978-3-030-75765-6_35
https://doi.org/10.1109/ICDM.2016.0123
https://doi.org/10.1109/ICDE48307.2020.00146
https://doi.org/10.1609/aaai.v35i5.16561
https://doi.org/10.1145/3437963.3441727
https://doi.org/10.24963/ijcai.2021/290
https://doi.org/10.1109/DSAA.2015.7344858