导读:大概知道特征工程,但是不清楚特征工程在实际业务中怎样应用,怎么和业务知识结合?本文将结合作者实际经历尝试回答。
首先明确一下问题,“特征工程在实际业务中的应用”,也就是领域业务知识和机器学习建模的相互结合。下面会对特征工程简单介绍,并且用自己工作中实际参与的项目给大家分享在银行贷款申请反欺诈场景&零售线上APP推荐场景的机器学习建模里,业务知识是如何帮助特征工程的。
01 简单介绍特征工程是什么?
特征工程是工业界建模中最最最重要的一个模块。模型效果的好坏,一部分是由数据质量决定的,另一部分是由特征工程决定的,大家使用的算法有时候都是一样的。
什么是特征工程?比如金融信贷申请反欺诈场景下,当一个新的用户来申请贷款,我们如何评估一个用户是欺诈用户还是正常用户,那么就需要找到这二者在哪些特征上表现存在差异,通过这些特征来进行区分。寻找基本特征、构建组合特征来有效地区分不同label的样本,这个就是特征工程。
02 业务知识如何帮助特征工程?
几乎所有工业界的建模,数据科学家都会去请教一下业务专家。除非是特别资深的数据科学家,在该场景下建模经验十分丰富,对业务很了解。不然,数学科学家一般都会去请教对于该场景熟悉的业务专家,有他们的输入对建模会有很大的帮助。
比如我们给银行做贷款申请反欺诈项目,我们会对对方的风控人员进行访谈。了解他们在没有反欺诈模型,人工审核时是通过哪些特征来区分欺诈用户和正常用户的。我们给商超做线上推荐项目,我们会访谈对方的运营人员,在没有推荐模型时他们为每个门店不同时间段设置推荐商品时是依据什么样的原则。专家懂的东西,业内我们一般叫做 “专家规则” 。
为什么要去了解业务知识?
(1)有的放矢,提高建模效率和保证模型效果下限
业务专家的输入,可以帮数学科学家快速做一层特征筛选和特征组合工作。比如银行贷款申请反欺诈场景下,用户的基础特征、征信报告特征加上资产等特征,加起来好几百个特征。很多数学科学家第一次接触征信报告,征信报告都看不懂,无法理解特征字段意义。这时候业务专家就会做输入,哪些特征上欺诈客户和正常客户表现差异很大,哪些特征组合在一起看比较有效。
业务专家的输入,降低了建模试错成本。也一定程度上保证了模型效果的下限。
(2)避免特征过多过拟合
当没有业务输入的时候,很多时候数据科学家只能通过训练集上效果的表现来判断特征有效性,有时候为了模型效果会加入很多特征进去,导致训练集上效果还不错,测试集上可能效果就一般,实际上线后模型效果可能会更差,这就是模型出现了过拟合。这两条原因中,第一条是最主要原因。
03 实例介绍
下面给大家分享一些实际工作中专家规则如何映射到特征工程上。
3.1 银行贷款申请反欺诈场景
场景说明: 用户来银行申请贷款,数据科学家根据用户申请信息、征信数据等等,构建一个反欺诈信用评分模型。分数取值在【0,100】之间,100分代表用户欺诈程度极高,0分代表用户欺诈程度极低,为每一个客户进行信用评分。
使用模型: LR模型;
专家规则:专家规则有很多,我列举几个常见且易懂的规则。
-
信息是否一致: 银行风控人员在审核贷款申请时,特别关注用户的申请信息和央行征信报告上的数据是否一致,比如申请表上写的离异,但是征信报告上却是已婚。申请表上写的是A公司,征信报告上却是B公司。如果出现此类情况,说明用户存在隐瞒真实信息的可能;
(不了解征信报告的读者可以看看这篇,讲的还算清楚 https://zhuanlan.zhihu.com/p/91911632;想了解央行的征信报告和芝麻信用等区别的可以看这篇文章:https://zhuanlan.zhihu.com/p/22280599)
-
不同时间段内的还款行为: 做过金融行业信贷风控审批的肯定都知道一条专家规则 “半年内不能连三累六” ,这句话的意思是说用户在半年内不能有六次的贷款逾期,且不能有连续三个月贷款逾期不还。稍微解释一下这条规则,可能部分读者觉得半年内贷款逾期六次也太夸张了,实际上满多用户不注意还款时间,加上很多小企业主有很多贷款信用卡等,还款晚了一两天很正常,所以半年内有个2,3次逾期还蛮正常的,但是6次就超过银行风控的底线了。
-
基本信息: 用户的年龄、学历、籍贯等等都会综合考虑;
专家规则转化为特征工程
关键的一步来了,如何将专家规则转化为特征工程?
-
信息是否一致: 转化为冲突类特征,模型中会将申请信息的很多关键信息与征信报告中的信息进行比对;
-
基本信息:转化为基本特征,同时在此之上我们会衍生很多复合类特征;
-
不同时间段内的还款行为: 转化为聚合特征,按照时间来分桶。将用户的还款行为和时间组合在一起,模型中我们可能会按照近1个月、3个月、6个月、12个月、24个月来分桶。其实不仅是将用户的还款行为来按照时间分桶,我们还会将用户的历史负债行为、申请贷款记录等等,按照时间来分桶,只是有的可能是6个桶,有的可能是12个桶等等。
3.2 零售线上移动端购物车推荐
场景说明: 用户在生鲜电商APP上如叮咚买菜、盒马生鲜,购买相关生鲜商品。购物车的下方,会有“经常一起买“栏位,根据用户已经加购的商品为用户推荐其他商品。数据科学家构建一个推荐模型,为用户千人千面地推荐相应的商品。传统的零售运营,都是后台运营系统根据门店手动配置的,定位在这个门店的用户,不管购物车加购什么商品,最后“经常一起买”栏位展示的商品都是完全一样的。
使用模型: 协同过滤算法+LR模型
专家规则
-
不同季节不同门店推荐不同的商品: 电商运营会根据不同季节以及门店所处地域来配置商品。比如春节快到了,就会配置“春联”、“饺子皮”、“酵母粉”等。川渝地域就会配置“火锅底料”等;
-
推荐热销的商品:有时候会配置一些这个门店热销的商品,比如该门店最近”特仑苏“卖的特别好,就会统一为用户推荐“特仑苏“。
专家规则转化为特征工程
在零售推荐场景下,专家规则起到的作用就远远没有贷款申请反欺诈领域大了。不是说规则不重要,而是说该场景比较容易理解,那些专家规则数据科学家也比较容易想到。
-
不同季节不同门店推荐不同的商品: 转化为“门店画像的时窗统计特征”,数据科学家按照门店维度统计不同历史时窗内(如近3、7、30天)商品的销售量、销售额;门店维度不同历史时窗内(如近3、7、30天)售出商品品类、价格的聚合类衍生特征等等
-
推荐热销的商品: 热销商品其实在推荐场景下更多是用在召回策略里面,千人千面的排序策略中,我们会构造一个“用户商品画像的时窗统计特征”,如统计用户商品组合维度不同历史时窗内(如近3、7、30天)的购买频次、价格等。
04 特征重要性
我们一般在做最终项目总结汇报时,有一页PPT会专门介绍该模型中Top N重要的特征;
比如该模型只使用某一个特征,可以达到的AUC是多少
因为很多时候业务方都需要我们的模型可解释,你使用了哪些特征需要和业务方解释,业务方会从业务层面来判断你这个模型背后的业务逻辑是否合理。尤其是金融领域,模型可解释是必备的。金融都是和钱、风险挂钩的,如果模型使用的特征在业务层面解释不过去,业务方就会质疑模型的有效。
05 如果数据科学家对领域内业务知识完全不懂怎么办?
不同领域不同场景对领域内业务知识的了解和最终建模的效果影响程度是不一样的。
在金融领域,对领域内业务知识了解就十分重要。之前给银行做反洗钱领域建模时,反洗钱这个场景普通人接触的就够少了,所以没有业务输入,数据科学家建模就很痛苦,只能不停尝试各种特征组合。而像零售领域,普通人都可以接触到,已经具备了一定的业务知识,所以建模起来就相对简单一些,但也是领域内业务知识懂的越多越好。
现在已经有AutoML技术了,完全无任何人工干预,机器直接自己构造特征计算等等。但在工业界目前AutoML落地还存在很大问题,最大的问题就是模型效果不可保证,很多时候只能做到一个及格分,想进一步提升,模型自身无从下手,只能人工干预。
所以如果你既是业务专家,又是建模大师,那你在目前的AI市场将会相当地吃香。
知乎|https://www.zhihu.com/people/xu-xiu-jian-33