精华内容
下载资源
问答
  • 8.4 电子商务交易风险识别与防范; ; 八招教您识风险;NO1. 从信息本身辨别;NO2. 企业信用记录查询 诚信安全,企业信用记录查询/cms/video/qyxycx.html;NO3. 论坛搜索;NO4. 诚信指数及评价了解;NO5. 搜索引擎搜索;NO6...
  • 随着金融产品不断创新,商业银行交易操作变得日益复杂,由于交易风险引发的商业银行安全事故频出。目前,商业银行主要从规章制度上规范交易操作步骤以及使用信息系统对当天交易产生的票据进行复核做到事后监督,而对...
  • 行业资料-电子功用-一种电力交易信息发布风险识别方法
  • 行业分类-金融管理-金融交易风险管控系统及其存储文件快速识别定位方法.zip
  • 一种基于资金交易的银行风险客户识别方案,冯士乘,郭燕慧,随着银行客户群体规模的不断扩大以及电子银行、电子商务等新型商业模式的兴起,一些不法分子在进行犯罪活动时,必定会涉及到资金
  • 风险识别、风险评估2个方面提出了开展装备维修合同商保障风险管理研究的思路。依据委托代理理论和交易成本理论,对合同商保障风险成因进行了理论分析。按照与合同商相关的源头风险、与军方相关的运作风险以及二者...
  •  因为案例背景中有说道,因为风控系统会基于对交易风险判断而失败掉很多高危交易,这些交易因为被失败了往往没有了标签,而这部分数据又极其重要。所以这里我们可以相信既然系统都判断你是高危交易了,我就直接...

      

    默认无标签的都是黑样本。


            因为案例背景中有说道,因为风控系统会基于对交易的风险判断而失败掉很多高危交易,这些交易因为被失败了往往没有了标签,而这部分数据又极其重要。所以这里我们可以相信既然系统都判断你是高危交易了,我就直接认为你是风险交易好了。相信蚂蚁金服线上风险评估系统,没毛病吧,哈哈。

            加上这次共994731条数据,有标签的990006条(16847条有风险,973159条无风险),无标签的数据有4725。无标签认定为风险数据也说得过去。

            这次换用xgboost加交叉验证(kfold=5),得到混淆矩阵结果如下:


            可见对风险数据样本召回真的是爆表啊(高达0.788),但是这模型太过分了,显然是不行的,绝大多数交易都被认定成有风险的,如真实无风险的被判定为无风险的有408条,真实无风险的被判定为有风险点的则有292869条,如果这样,应用肯定无法正常进行交易了。。。但我们可以用此模型去标记无标签数据。宁可错杀一百,不愿放过一个。

            试了下,这样确实可以提升模型效果。








    展开全文
  • 本文围绕场景金融的“三层风险金字塔”风险识别与管控,先对场景金融进行多视角分析,然后从场景“四要素”(流量、数据、交易、信用)入手,进行场景分类(泛场景、浅场景、深场景),作者详细介绍了关于场景金融的...

    本文围绕场景金融的“三层风险金字塔”风险识别与管控,先对场景金融进行多视角分析,然后从场景“四要素”(流量、数据、交易、信用)入手,进行场景分类(泛场景、浅场景、深场景),作者详细介绍了关于场景金融的实战经验。

    来源 | 现代金融风险管理
    作者 | 祝世虎(光大银行智能风控中心副主任、主任科学家)

    前言

    《金融科技(FinTech)发展规划》等一系列监管文件的落地,指明了金融服务场景化、线上化、多元化的趋势。金融机构也在监管机构“统筹兼顾发展和风险”政策的指引下,合规有序地推动着场景金融的发展。但是,教育分期场景、医美分期场景、长租公寓场景等的接连暴雷,让一众金融机构进退维谷。

    此时,金融机构对于场景金融风险,一是“看不透”,对风险“隔雾观花”,二是“管不住”,手中的风险管理工具“方枘圆凿”,其根源是缺乏“体系化”的场景风险的识别与管控。

    笔者撰写此文,旨在建立场景金融“三层风险金字塔”的识别与管控体系,以期金融机构能够以“慧眼”看透场景风险,以“利器”管住场景风险,以科学理性的态度看待场景金融,莫做惊弓之鸟,坚定以“场景”为重要抓手,践行国家普惠金融战略,以场景金融之活水,滋润实体经济。

    本文围绕场景金融的“三层风险金字塔”风险识别与管控,先对场景金融进行多视角分析,然后从场景“四要素”(流量、数据、交易、信用)入手,进行场景分类(泛场景、浅场景、深场景)。

    笔者认为:场景风险是一个“三层风险金字塔”,顶层为“场景之内”风险(客户级风险),中间层为“场景本身”风险(场景经营风险、交易风险、欺诈风险、客群偏差风险、特定风险),底层为“场景之外”风险(集中度风险、逆周期风险、“灰犀牛”风险、战略违约风险),三层风险由下而上叠加而成,越底层的风险发生概率越小,但是一旦发生,整个金字塔倒塌的概率越大。

    本文的最后,笔者详细介绍了场景金融的实战经验:C端消费场景金融(传统泛场景、互联网泛场景、垂直场景)、B端经营场景金融(供应链“1+N”场景、B2B2C电商平台场景、To B服务商“浅”场景)、 G端政府场景金融(政府征信平台模式、政府采购贷款模式)。
    图片
    图 1 文章导读框架图

    本文观点皆为世虎“一得之见”,垒土之作,投砾引珠而已!

    目录

    一、 场景金融分析
    (一) 从“监管视角”分析场景金融
    (二) 从“需求视角”分析场景金融
    (三) 从“业务视角”分析场景金融
    (四) 从“风险视角”分析场景金融
    二、 场景金融的“三层风险金字塔”
    (一) “场景之内”风险
    (二) “场景本身”风险
    (三) “场景之外”风险
    三、 详解“场景本身”的五大风险与防控手段
    (一) 场景经营风险
    (二) 场景交易风险
    (三) 场景欺诈风险
    (四) 场景客群偏差风险
    (五) 特定场景风险
    四、 详解“场景之外”的四大风险
    (一) 场景集中度风险
    (二) 场景“逆周期”风险
    (三) 场景“灰犀牛”风险
    (四) 场景战略违约风险
    五、 场景金融实战经验分享
    (一) C端消费场景金融
    (二) B端经营场景金融
    (三) G端政府场景金融
    六、 对于场景金融的开放式探讨
    (一) 场景金融中“缓释兜底”的风险
    (二) 场景金融中“担保池”的形成和风险
    (三) 倡议:由金融出发,向场景融合

    一、场景金融分析

    场景金融是金融的新模式,“仁者见仁、智者见智”,从不同的角度看“横看成岭侧成峰”。为此,笔者采用多视角的分析方法,从四个视角对场景金融进行“四位一体”的分析:

    一是,从监管机构的“监管视角”;
    二是,从场景金融参与方的“需求视角”;
    三是,从金融机构的“业务视角”;
    四是,从金融机构的“风险视角”。

    (一)从“监管视角”分析场景金融

    笔者研究了近两年的关于场景金融的监管文件,可以看出,监管机构的目标是发展和风险的统筹兼顾:一手促进场景金融的良性发展,一手严控场景金融的多元风险。在监管政策的指引下,金融机构逐步和B2B/B2C平台、供应链核心企业、政府平台合作,合规有序地推动着场景金融的发展。

    1. 监管目标之一:促进场景金融的良性发展

    2019年8月中国人民银行印发了《金融科技(FinTech)发展规划(2019-2021 年)》(银发〔2019〕209 号),其中第三节指出“充分运用信息技术与互联网资源做强线上服务,丰富完善金融产品和业务模式,为客户提供全方位、多层次的线上金融服务”,指明了金融服务场景化、线上化、多元化的趋势,指明了与互联网平台的合作是金融机构高效切入场景金融的重要手段之一。

    2020年4月商务部等八部门联合发布《关于进一步做好供应链创新与应用试点工作的通知》,2020年9月中国人民银行等八部门联合发布《关于规范发展供应链金融支持供应链产业链稳定循环和优化升级的意见》,均指出金融机构应深入供应链场景,以金融科技的手段创新供应链金融服务模式,进而加强服务实体经济和促进产业升级的能力。

    2019年9月国家发改委、银保监会联合发布《关于深入开展“信易贷”支持中小微企业融资的通知》(发改财金〔2019〕1491号),2020年4月国税总局、银保监会联合发布《关于发挥“银税互动”作用助力小微企业复工复产的通知》(税总办发〔2020〕10号),均鼓励金融机构与政务机构深入合作,通过打破信息孤岛,加强信用评估体系等手段支持中小微企业的融资需求。

    以上政策文件说明,监管机构鼓励金融机构通过与互联网平台、供应链企业、政府平台等进行深入合作,通过金融科技的手段创新金融服务和产品,从而促进场景金融的发展。

    2. 监管目标之二:严控场景金融的多元风险

    2020年7月,银保监会制定了《商业银行互联网贷款管理暂行办法》,其中第五十条“商业银行应当按照合作机构资质和其承担的职能相匹配的原则,对合作机构进行准入前评估,确保合作机构与合作事项符合法律法规和监管要求”,指出商业银行应严格评估场景合作机构的资质,避免其经营和合规风险。

    中国人民银行、中国银保监会于2020年11月发布关于《网络小额贷款业务管理暂行办法(征求意见稿)》征求意见的公告,其中第九条明确指出了对经营网络小贷的“互联网平台”的8项要求。体现了监管机构对互联网平台可能引发的场景风险的高度重视。

    在《关于规范发展供应链金融支持供应链产业链稳定循环和优化升级的意见》第五部分“防范供应链金融风险”中指出,需“加强核心企业信用风险防控”“防范供应链金融业务操作风险”“严格防控虚假交易和重复融资风险”“防范金融科技应用风险”,说明了监管对供应链金融可能引发的场景风险的深刻认识。

    以上政策均说明,在积极开展场景金融业务的同时,也要高度重视场景风险的识别与管控,即在各类场景金融业务模式中,不仅要对融资主体进行风险管控,还需对各种多元化的场景风险一视同仁。

    3. 监管结果:场景金融在监管下合规有序发展

    在监管政策的指引下,金融机构逐步和B2B/B2C平台、供应链核心企业、政府平台合作,形成了C端消费场景金融、B端经营场景金融和G端政府场景金融的百花齐放的态势。

    (1) C端消费场景金融
    ➤ 传统泛场景消费金融,如:信用卡、车贷、房贷等;
    ➤ 互联网泛场景消费金融,如:花呗、白条等;
    ➤ 垂直场景消费金融,如:教育分期、医美分期、家装分期等。

    (2) B端经营场景金融
    ➤ 供应链“1+N”场景金融,如:供应链订单融资、应收账款融资等;
    ➤ B2B2C电商平台场景金融,如:电商的经营贷、订单融资等;
    ➤ ToB服务商“浅”场景金融,如:发票贷、POS贷、SAAS贷等。

    (3) G端政府场景金融
    ➤ 政府征信平台模式场景金融,如:信易贷、地方政府征信平台等;
    ➤ 政府采购贷款模式场景金融,如:政采贷等。

    (二)从“需求视角”分析场景金融

    对于场景金融的三个参与方的需求分析,有助于业务的促成和风险的管控。传统金融虽然时有“中介”或“助贷”机构参与,但主要参与主体依然为金融机构和客户,而在场景金融中,场景方是非常重要的参与主体,下面分别介绍场景方、金融机构、客户的需求:

    1. 场景方需求

    场景方在其主营业务中积累了大量的客户和数据,且场景交易过程中大多存在买方和卖方的资金缺口,有资金缺口就会有金融服务的需求,场景方参与金融服务的目的主要有以下三个:

    (1) 场景数据和流量变现:通过与金融机构合作,将其数据和流量进行变现,是场景方扩展金融服务收入的重要手段;
    (2) 补充场景方资金流:通过与金融机构合作,提前弥补其与上下游交易的资金缺口,也是场景方参与场景金融的重要动机;
    (3) 拓展主营业务规模和客户粘性:通过对其场景上下游交易对手提供金融服务,拓展其主营业务规模和交易对手粘性,也是场景方的重要需求。

    2. 金融机构需求

    随着利率市场化的逐步推进,金融机构需通过提供个性化金融服务的方式提升自身产品壁垒,并通过智能风控手段提升风险定价能力,进而打造自身信贷业务的核心竞争力,金融机构参与场景金融的目的可以分为以下三个:
    (1) 细分场景精准获客:通过深耕细分场景,避开与互联网巨头的正面交锋,获取垂直场景流量,实现有壁垒的精准获客;
    (2) 积累场景数据资产:通过积累场景数据,提升自身大数据风控能力,掌控风险定价能力,提升信贷收益;
    (3) 把控信贷资金用途:通过场景交易受托支付形式,把控信贷资金用途,防控资金挪用风险;
    (4) 拓展风险缓释手段:通过场景担保、回购、应收账款等形式,拓展第二还款来源,提升“风险缓释”能力。

    3. 客户需求

    场景客户参与场景金融的目的相对单纯,往往是自身存在资金缺口,或者场景通过主营业务提供了优惠和便利性。

    (三)从“业务视角”分析场景金融

    对于场景金融业务的开展,从业务视角看,金融机构业务部门的关注点在于业务规模和收益,分行的关注点在于如何实地考察场景。为此,为方便业务部门和分行的同事开展工作,笔者总结了“三看”口诀:重点看“有效的”流量转化,深入看“合理的”信贷规模,回头看“历史的”场景运作。

    1. 重点看“有效的”流量转化

    在场景金融业务调研过程中,识别场景“有效流量”的规模是场景金融可以做大规模的第一步,在此过程中需要注意识别头部流量与僵尸流量,以及符合银行风险偏好的流量的转化率。

    (1)抓住头部流量

    首先应该从以下三个方面来分析头部客户:
    一是,要弄清场景的头部客户的规模和组成;
    二是,要弄清头部客户与金融机构的客户战略、客户“主标尺”的对应情况。这样有助于在后续工作中由头部客户入手,逐步下沉客户;
    三是,要弄清头部客户的金融诉求。这样有助于提升流量的转化率。

    (2)看透僵尸流量

    笔者遇到过很多场景,通过“烧钱”和“补贴”获取了一大批初始流量,然而由于商业模式的不可持续性,看似留存的海量客户大多变成了“僵尸流量”,不仅不会带来任何信贷规模,而且还可能被黑产所利用。

    2. 深入看“合理的”信贷规模

    “合理”的信贷规模,要从场景的角度来看“场景金融产品是否与客户需求匹配”,从客户的角度来看“场景是否诱导客户进行过度信贷”。

    (1)场景金融产品是否与客户需求匹配

    相同客户在不同场景有着不同的“用信需求”,如果场景金融服务与客户的用信需求并不匹配,即便“流量”和“数据”丰富的场景,其客户也未必对金融服务“买账”。所以,只有满足以下三点,才能形成“合理”的信贷规模:

    一是,场景金融产品要契合客户资金周转痛点;
    二是,金融产品利率要具有竞争力;
    三是,金融产品额度要匹配客户资金缺口需求。

    (2)场景是否“诱导客户进行过度信贷”

    《道德经》曰“企者不立,跨者不行”,无论消费信贷还是经营信贷,目的都是促进客户健康消费和实体经济良性循环,然而,如果通过金融服务向消费者和企业过度“输血”,将会造成消费者过度消费、经营者盲目扩张等问题,从而营造出场景金融的“虚假繁荣”,不具备金融服务的可持续性,系之苇苕,风至苕折。

    另外,从消费者保护角度来看,借贷追星、借贷购买奢侈品、以贷养贷等都需要警惕。

    3. 回头看“历史的”场景运作

    所谓的回头看,就是从场景的运营历史中发现一些负面的蛛丝马迹,进而顺藤摸瓜分析场景运作模式是否存在缺陷,有些缺陷隐藏得很深,例如一些问题处理的共识。从长租公寓暴雷的事件就可以看出,由于基础法律关系、监管框架没有明确的社会共识,一旦某个环节出现问题,各方都有可能出现极端行为,即便金融机构能够“挺身而出”为其买单,结局也未必完美。

    (四)从“风险视角”分析场景金融

    1. 场景金融的“四要素”分析

    提到场景金融,金融机构与场景方合作的第一诉求是“获客”,第二诉求是“增信”。对于“获客”的理解,就是引入客户,即“流量要素”。对于“增信”的理解,不同的金融机构,不同的部门会有不同的理解,具备独立风控能力的金融机构及其风险部门对增信的诉求,就是获得更多的客户信息,即“数据要素”,而业务部门对于增信的诉求,往往会体现在“是否场景方兜底?”“是否受托支付?”等问题上,这些问题进而衍生了“信用要素”和“交易要素”。笔者根据自己的理解,尝试给出场景金融四要素的定义:

    (1) 流量要素

    场景通过主营业务积累的上下游客户群体,即为流量要素;流量要素有助于金融机构获取客户数据。

    (2) 数据要素

    场景通过主营业务沉淀的商流、物流、资金流等数据,即为数据要素;数据要素,有助于金融机构进行更加全面的客户风险画像。

    (3) 交易要素

    场景方将金融产品嵌入场景方与上下游的交易流程中(大多采用“受托支付”和“应收账款融资”等模式),即为交易要素。交易要素,有助于金融机构把控资金用途、进行全方位客户画像、提升客户粘性等。

    (4) 信用要素

    场景方通过保证金、担保、回购、货押等模式,为客户提供第二还款来源,即为信用要素。信用要素的增加,将场景平台进一步与金融机构进行了“绑定”,提升了场景金融的风险复杂度。

    2. 识别“浅”场景,关注“深”场景

    通过以上四要素,可对场景金融进行初步分类,不同的分类对应不同风险解决方案。后文会详细说明,对于浅场景和泛场景,可重点通过客户级的风控解决方案进行风险把控;而对于深场景,在此之上还要充分考虑场景本身和场景之外的风险要素。
    图片
    图 2 场景要素与分类框架

    (1) 识别“浅”场景

    笔者认为仅包含流量要素和数据要素的场景属于“浅”场景,从风险视角看,这类场景下发生的金融业务与传统“中介”和“助贷”服务没有本质差别,场景参与方目的多为流量和数据变现。“浅”场景的风控主要是客户级的风控,依赖于金融机构自身的泛场景风控能力和数据的丰富程度,必要时可外购数据进行补充。

    (2) 关注“深”场景

    笔者认为,随着场景金融包含要素的逐步增加,场景参与程度也由“浅”变“深”,“深”场景在前者的基础上,增加了交易要素和信用要素。场景方的深度参与,风险要素的增加,使得场景风险的复杂度以及场景方与金融机构的关联性也相应增强。对于“深”场景的风控,金融机构除了要对“客户级”风险进行把控之外,“场景本身”和“场景之外”风险也是需要重点评估和把控的。

    二、场景金融的“三层风险金字塔”

    场景风险是一个“三层风险金字塔”,顶层为“场景之内”风险(客户级风险),中间层为“场景本身”风险(场景经营风险、交易风险、欺诈风险、客群偏差风险、特定风险),底层为“场景之外”风险(集中度风险、逆周期风险、“灰犀牛”风险、战略违约风险)。三层风险由下而上叠加而成,越底层的风险发生概率越小,但是一旦发生,整个金字塔倒塌的概率越大。

    目前基于大数据和风控模型的客户级智能风控手段基本可以解决“场景之内”的客户级风险,然而“场景之外”风险和“场景本身”风险是属于“数据之外、模型之上”的场景风险,这部分是本文重点讨论的内容。
    图片
    图 3 场景金融风险分类

    (一)“场景之内”风险

    场景之内风险是客户级别的风险,其包含了客户信用风险和客户欺诈风险,在互联网场景金融模式下,客户级风险的把控主要依赖于各金融机构的智能风控能力,不属于本文重点探讨的内容。

    (二)“场景本身”风险

    场景本身风险是场景级别的风险,其包括场景经营风险、场景欺诈风险、场景交易风险、场景客群偏差风险以及场景特定风险。这类风险对单个场景金融的业务模式是否可以良性开展有着重大影响,对于这类风险的评估应该每个场景单独考虑,本文第三章将会详解场景本身的五类风险。

    (三)“场景之外”风险

    场景之外风险是宏观级别的风险,包含场景集中度风险、场景“逆周期”风险、场景的“灰犀牛”风险,以及场景战略违约风险。这类风险作为金字塔的基石,虽然属于低频风险,但一旦发生将会对某一类甚至几类场景金融的业务模式产生非常大的影响,本文第四章将会详解场景之外的四类风险。

    三、详解“场景本身”的五大风险与防控手段

    (一)场景经营风险

    1. 风险描述

    《商业银行互联网贷款管理暂行办法》第五十条“商业银行应当按照合作机构资质和其承担的职能相匹配的原则,对合作机构进行准入前评估,确保合作机构与合作事项符合法律法规和监管要求。”明确指出合作机构的经营情况、管理能力、风控水平、技术实力、服务质量、业务合规和机构声誉等均为商业银行需要重点考察的要素,充分说明了场景经营风险是场景金融中重要的风险要素之一。

    2. 风险案例

    长租公寓暴雷事件的风险主要集中于场景经营风险。在这个案例里面,第一,金融机构“重C轻B”的问题暴露无遗;第二,“受托支付”本应该是金融机构把控资金风险的手段之一,然而“不专业”的“受托支付”却成为了导火索,使得信贷资金在场景方和业主之间存在过长的时间差,这无异于给了场景方巨额的“信用额度”,在事实上形成了一个毫无监管的资金池,并且,金融机构对场景方经营情况并未进行有效评估,种种原因导致了该业务的失败。

    笔者相信,这种巨额的信用额度,任何一家金融机构都不会通过传统对公授信手段随便批给场景方。那么金融机构突破了什么?金融机构为什么会犯这种错误?笔者认为,这实际上是一种模型风险,也就是模型的误用,具体说就是模型做了“模型之上”的事情。

    3. 防范手段

    2019年12月发布的《住建部等六部门关于整顿规范住房租赁市场秩序的意见》要求:“住房租赁企业租金收入中,住房租金贷款金额占比不得超过30%,超过比例的应当于2022年底前调整到位。”说明监管早已看到长租公寓这种场景金融模式的风险,进而提醒各金融机构要严控信贷资金流向的合理性和场景经营风险。场景经营风险的防控手段,主要有以下三方面:

    (1) 评估场景平台经营状况

    金融机构需参照对公信贷业务的管控手段,定期对合作机构进行现场与非现场调查,评估其经营情况、财务健康程度以及合规性,保障场景平台的平稳运行。

    (2) 防范场景盲目扩张风险

    金融机构需定期监控场景方经营状况,防范平台通过场景金融不合理地弥补自身的资金缺口,防范平台使用预付信贷资金进行盲目扩张,防范平台资金流断裂形成经营风险。

    (3) 监控场景行业、政策和合规风险

    金融机构需定期监控评估场景平台所处行业趋势和政策导向,并对场景经营的合规性进行及时的评估,避免场景出现行业周期下行、政策导向不利、经营模式不合规等问题。

    (二)场景交易风险

    1. 风险描述

    “城门失火,殃及池鱼”,场景交易的“瑕疵”将会减低客户对交易的满意度,进而明显降低客户的还款意愿,即使客户资质较好具备还款能力,也可能形成违约,即为交易风险。

    受托支付与商品交付的时间差,加大了交易风险产生的可能性。场景交易是“受托支付”的载体,场景交易中金融服务的本质是填补了受托支付和商品交付之间的“时间差”。

    在实际案例中,场景平台为拓展自身主营业务,往往采用“后付费”的形式吸引客户购买商品和服务,而“后付费”正是典型的“时间差”。金融机构先用受托支付的信贷形式帮客户支付费用,客户在完成商品交付过程中或交付后,采用分期的形式向金融机构付清贷款本金和利息。如果场景交易失败或发生纠纷,场景方无法及时退款,那么“谁为失败的交易买单?”

    2. 风险案例

    交易风险存在于很多垂直消费分期领域,比如教育分期、购机分期、医美分期等,下面以教育分期为例。

    某教育连锁机构(场景方)通过与多家金融机构合作,采用“受托支付”的形式为学员提供教育分期服务,金融机构将学费预先支付给场景方,场景方将大量沉淀资金投入盲目拓展门店,最终导致资金链断裂,未能向学员提供承诺的服务,学员认为自身没有得到满意的服务,不应该偿还贷款而纷纷逾期,场景方又无力进行退款。虽然场景方向金融机构提供了一定比例的保证金担保,但是面临洪水般的逾期客户仅是杯水车薪。最终,由于场景方暴雷,金融机构承受了巨额经济损失,借款人承受了征信污点。

    3. 防范手段

    (1) 精细化受托支付
    金融机构需通过锁定受托支付账户的方式,将支付动作与商品服务过程深度融合,对于一笔交易的不同阶段,分批次向场景方支付信贷资金,减少交易失败造成的资金纠纷。

    (2) 强化信贷产品提示
    金融机构需在信贷流程中加入提醒环节,通过强制阅读、播放声音提醒等方式简明提醒申请人目前的操作是在申请消费贷款,引导其确认申请意向和了解相关注意事项。

    (3) 评估商品交付质量
    金融机构需利用线上和线下调查相结合的方式,对平台提供商品服务的客户评价、退货率等情况进行定期监控和评估。

    (4) 监控平台资金用途
    金融机构需监控预付给平台的信贷资金的流向,定期评估平台经营健康程度,防止利用信贷资金进行盲目扩张而导致的资金链断裂。

    (三)场景欺诈风险

    《商业银行互联网贷款管理暂行办法》第十九条指出“商业银行应当建立有效的反欺诈机制,实时监测欺诈行为,定期分析欺诈风险变化情况,不断完善反欺诈的模型审核规则和相关技术手段,防范冒充他人身份、恶意骗取银行贷款的行为,保障信贷资金安全。”欺诈风险防范同样是场景金融业务风险管理重要的组成部分。

    场景欺诈风险包含商户欺诈、团伙欺诈、内部欺诈、数据欺诈等,下面分别对欺诈风险做逐一阐述:

    1. 商户欺诈

    (1) 风险描述

    商户通过欺骗消费者,在消费者不知情的情况下制造虚假交易,套取金融机构资金的欺诈行为,叫做商户欺诈。随着场景金融进入各大垂直领域,这种隐蔽性较高的小额分散的受托支付形式,成为了商户欺诈的重灾区。

    (2) 风险案例

    以购机分期业务为例,这类业务通过“0元购机”“办套餐享优惠”的方式,吸引客户在购买手机的同时办理套餐服务,其中手机的购机费用由客户在金融机构办理信贷资金,并提前一次性受托支付给商户,信贷本金和利息在客户之后每个月的套餐话费中扣除,运营商会通过话费红包的形式给予客户进行本息补贴。

    这类信贷业务虽然具备小额分散、受托支付的特点,其中却暗藏非常高的商户欺诈风险。购机分期大多采用线下营业厅地推进件的形式,营业厅的动机是卖出更多的手机、办理更多的套餐,因此如果营业厅通过欺骗消费者,在消费者无感的情况下进行购机分期业务的推广,亦或者联合黑产大量办理购机套餐,再将手机进行出售套现,套取金融机构资金,都会让金融机构遭受巨大的经济和声誉损失。

    (3) 防范手段

    一是,金融机构需对商户进件渠道进行全方位的监控,包括商户进件订单频率、商户客诉情况、商户不良集中度等;

    二是,金融机构需对商户资金流与订单流校验,确保人、货、资金的一致性;

    三是,金融机构需制定严格的商户准入、退出和惩罚机制,提高商户欺诈成本。

    2. 团伙欺诈

    (1) 风险描述

    大多场景金融具备小额分散、客群下沉的特点,单体的欺诈难以获得较高的欺诈收益。场景金融真正的欺诈防范对手正是黑产团伙,这些团伙通过批量“养企养人”,有组织地寻找场景金融的“口子”,一旦发现金融业务风控和羊毛漏洞,将会蜂拥而上在短期内让金融机构遭受大量经济损失。

    场景金融虽然有着受托支付的特点,但是如果场景方风控能力较弱,场景交易商品存在易变现、折扣力度大等特点,也很容易成为黑产的攻击对象。

    (2) 风险案例

    在金融机构响应普惠金融政策,重点布局小微企业贷的背景下,黑产嗅到了骗贷的机会。这些所谓中介通过包装人员资料、交易和税务等数据,甚至可以直接“养企业”,即注册空壳公司后每月注入一些流水,形成固定有效的账面,虚构出还款能力和意愿优良的企业,以骗取金融机构的小微企业信贷支持。

    (3) 防范手段

    一是,金融机构需通过无监督聚类算法,识别特征异常、高欺诈风险的群体,挖掘团伙欺诈群体,识别空壳公司等;

    二是,金融机构需通过关系图谱和图计算技术,识别高风险拓扑结构群体;

    三是,金融机构需建立高频的客群监控和管理体系,抽取欺诈团伙的客群特征,及时制止高风险客群的交易行为。

    3. 数据欺诈

    (1) 风险描述

    数据欺诈是指场景平台或商户通过数据造假的方式,让金融机构错误评估其经营情况和交易信息,进而做出错误的决策。

    场景平台和黑产数据造假的动机有两类,一类是为欺骗金融机构,伪造虚假交易主体和交易信息,通过受托支付的形式骗取信贷资金;另一类是为欺骗投资人,通过伪造财务报表、刷单、伪造平台活跃客户等手段,骗取投资资金,与此同时也波及到了与平台合作场景金融业务的金融机构。

    (2) 风险案例

    B2B2C电商平台是B端经营场景金融的重要模式,金融机构根据电商平台的买方或者卖方商户历史留存的订单、支付、物流、评论等信息,为商户提供经营类金融服务。然而,电商平台的商户为提升其在平台的搜索排名和销量,可能会进行刷单、刷评论等手段进行数据造假。无论是商户是为了“主动骗贷”还是为提升自身平台排名而“无心插柳”,这种数据造假会让金融机构错误评估其经营资质,给出错误的授信结果。

    (3) 防范手段

    一是,“以数制数”,进行多方数据校验,包括场景数据与泛场景数据校验,例如,合作方财务报表和ERP数据的校验、供应链商流物流和资金流的校验;

    二是,加强区块链技术的应用,通过去中心、可追溯、防篡改的区块链技术,增加单一合作方数据造假的难度和成本;

    三是,通过大数据分析和模式识别技术,开发反刷单、反刷量、反刷分、反空壳等识别模型。

    4. 内部欺诈

    (1) 风险描述

    “堡垒最容易从内部攻破”,内部欺诈是指场景内部人员通过职务便利联合外部,进行文件、数据、客户和交易造假,套取资金的欺诈行为。

    (2) 风险案例

    供应链金融中的“应收账款融资”模式,关键点在于商流、物流和资金流的确权和一致性校验,然而在作业流程的不同阶段,均可能出现内部人员“造假”风险,如订单合同“萝卜章”问题、仓储物资“掉包”问题等,这是在数据和模型层面无法把控的风险,属于场景业务流程天然存在的内部欺诈风险。

    (3) 防范手段

    一是,建立完备的内部业务流程操作机制,如电子印章、区块链技术等,降低操作风险,增加内部欺诈的难度;

    二是,健全内部信息交流和人员管理机制,通过提升内部监督效率、改革考核考评办法等,减低内部人员的欺诈动机,提高内部人员的欺诈成本。

    (四)场景客群偏差风险

    1. 风险描述

    在工作中,笔者常说“选择了场景就是选择了客群”,但是笔者的经验逐渐告诉笔者,这句话并不完全对。高端场景的金融业务客群未必高端,相反,一些高端的场景金融产品吸引的客群恰恰是该场景的“下沉客群”,而真正的高端客群并没有金融产品需求,这就是场景客群偏差风险。

    2. 风险案例

    医美客群是高端客群,但是医美贷的客群却是医美客群中的下沉客群。事实上,颜值经济推动医美需求的持续增长,医美行业在充分挖掘一线城市和高端用户后,也早已开始在下沉市场中探索机会。相比高端市场,一部分中低收入群体对于通过容貌的提升改善现状、实现收入和阶级跃升的渴望更加强烈,但另一方面动辄万元的医美项目确实是不小的经济压力。

    于是,医美分期应运而生,火爆市场。由于具有高客单价、高利润率等特点,医美贷款产品受到金融机构的热捧。为扩大市场规模,金融机构放宽医美分期的通过率,并争相打出低价烧钱获客。但事实上,医美分期是一个复杂的分期场景,下沉客户的违约可能相对更高,医美机构的资质也参差不齐。如果缺乏对风险的识别和严格把控,金融机构可能会陷入骗贷和高坏账率的泥沼之中。

    3. 防范手段

    一是,金融机构需加强对场景客户需求的调研工作,尤其是对于需求较为旺盛的重点客群;

    二是,加强客户准入和信用评估的力度,切莫因场景优质而忽略客户的信用风险。

    (五)特定场景风险

    (1) 风险描述

    前文所述经营、交易、欺诈和客群偏差风险虽然已经覆盖场景金融中最为常见、典型的风险类别,但仍然无法包含可能出现的特定情况。从本质上,场景就是细化的、具体的现实情境,对于不同的场景必然存在特定的风险。

    (2) 风险案例

    当您在新闻中看到“某某新款手机隆重上市”等,是不是会敏锐地意识到这就是某些场景的特定风险。新手机取代了旧手机,分期购机的客户的还款意愿骤然降低,这也是为什么购机分期业务会在15个月左右违约突然激增,因为这就是手机的换机周期。

    当您在新闻中看到“某某长租公寓甲醛超标”等,是不是会敏锐地意识到这就是某些场景的特定风险。甲醛超标就意味着,房租分期的客户会因为商品瑕疵而还款意愿骤然降低。

    (3) 防范手段

    一是,金融机构需深入分析具体场景,在通用的场景风险管理框架外增设对于每个场景特定风险的应对措施;例如,手机分期业务中,分期最好控制在换机周期内;

    二是,金融机构需实时关注市场上的最新风险事件,及时更新风险管理思路和工具。

    四、详解“场景之外”的四大风险

    笔者常说,风险管理实际上是风险、利润、客户三者的最优化管理,这三者最终是服务于金融机构的战略。金融机构的战略一定程度上决定了风险发生的类型,例如:

    1. “拓展下沉客群”可能会导致“信用风险和欺诈风险双高”;
    2. “促活存量客群价值”可能会导致“存量客户体验下降和客诉风险”;
    3. “积累场景数据,提升模型能力”可能会导致“积累周期长,见效慢”;
    4. “促进与场景平台其他业务合作”可能会导致“集中度风险”。

    (一)场景集中度风险

    笔者常说一句话“十个平台,每个平台做一个产品,不如一个平台深挖十个产品!”这是一种战略的选择,但是却带来了集中度风险。

    “鸡蛋不能放在一个篮子里”这句至理名言,在场景金融领域依然适用,在金融机构的战略选择下,多场景的组合管理依然是场景金融业务风险管理的重要课题。

    (二)场景“逆周期”风险

    互联网场景金融是近几年逐步兴起的金融业务模式,该类业务模式及相应的智能风控手段(风控模型、风控策略等)都未经受过各类经济周期和宏观事件的充分考验。笔者认为,虽然宏观经济出现逆周期的可能性几乎没有,但是“逆周期的场景”正在发生。

    流量的枯竭、监管趋严可能会导致某场景发生场景内的“逆周期”,那么这种变化将直接导致客户的变化、业务量的变化等,进而可能会导致我们原有的模型失效。

    (三)场景“灰犀牛”风险

    “灰犀牛”指的是宏观负面事件,例如,目前正在发生的“新冠疫情”“中美贸易战”就是宏观事件,每一个宏观事件将会对特定的行业和场景产生较大的影响,进而对场景金融产生影响。

    以“中美贸易战”为例,在跨境贸易行业有一种特殊的场景金融业务模式“退税贷”,该模式是以企业退税作为第二还款来源,用信贷的方式弥补贸易类企业在退税过程中产生的资金缺口。在贸易战发生前,这类业务的优质客群、这类业务的风控模型和审批策略都非常稳定,然而随着“中美贸易战”的发生,贸易类企业的经营稳定性发生的非常大的波动,过去的风控模型和审批策略可能不再适用,这类业务模式同样也存在极大的挑战。

    (四)场景战略违约风险

    战略违约的定义稍显复杂,但可以简化为一个简单的问题“如果一个人有多笔贷款,先还哪一笔?”不同的人会有不同的答案,有人先还房贷,因为不还房贷房子会被收回;有人先还车贷,因为没有车会影响出行;有人先还信用卡等,各人有各自的选择。但是在美国的次贷危机中,由于收入的降低,房价的下跌,导致这些人的行为趋同,大家都不还房贷,这就形成了“战略违约”。

    所以,在场景“逆周期”风险下,在场景 “灰犀牛”“黑天鹅”的风险下,这种客户行为趋同的战略违约似乎离我们不是很遥远,例如P2P行业的“场景逆周期”发生时,是不是大家对P2P平台的还款意愿都趋同了?这也算是战略违约的一种表现吧。

    五、 场景金融实战经验分享

    前文从理论角度分析场景风险,以期金融机构能够站在理论的高度看待场景风险“不畏浮云遮望眼,自缘身在最高层!”但是,“纸上得来终觉浅,绝知此事要躬行。”

    本章中,笔者重在实战经验,从C端消费场景金融、B端经营场景金融和G端政府场景金融,逐一分享笔者的经验。
    图片
    图 4 场景金融业务类型分类图

    (一)C端消费场景金融

    1. 传统泛场景消费金融——信用卡
    在这里插入图片描述
    图 5 信用卡场景消费金融模式

    (1) 场景描述

    信用卡场景是场景金融中的“泛”场景,其同时具有支付和信贷两种功能。消费者在购物时刷卡不仅安全、方便,还经常享有折扣、积分或礼品赠送。随着信用卡推广形式的演变,信用卡机构与各类场景平台(电商、视频、航旅、运营商等)联合发布“联名卡”,也成为信用卡机构参与场景金融的一种形式。

    (2) 场景优势

    一是,具备体系化的管理流程。信用卡发展至今,已经具备了完善的风控、客户、运营的管理体系,其信用评估和风控流程也已覆盖了全生命周期;在信用卡的推广、审核、发卡、用卡、还款、逾期、催收等阶段,针对持卡人的行为特点可制定不同的风险管理指标和策略;同时银行对于持卡人的具体交易记录也能够实现敏捷的监督,及时识别风险行为,采取降额、冻结、封卡等管理措施。

    二是,具备场景化的先天基因。场景“联名卡”对于金融机构和场景方是一种双赢的合作模式,金融机构可以借助场景方流量和数据的优势,对某一类垂直客群进行精准营销和风控。

    三是,具备生态化的数据优势。信用卡的信息系统建设较早,积累了大量的数据资源,这些数据资源具备“自主、自生、自成生态”的三大特点。首先,这些宝贵的金融数据来自业务办理中的“自主积累”;其次,信用卡的交易数据是高频的行为数据,是银行的“活”数据,这些数据通过流式计算、关联图谱等处理方式可以实现“数据自生”;再次,信用卡的交易数据具备场景信息,能够刻画客户“衣食住行”等多面的画像而自成生态。

    (3) 业务经验分享

    由于信用卡场景已经具备了成熟完善的管理体系,所以,需要像“庖丁解牛”一样“切中肯綮”,打通传统体系中的瓶颈,笔者总结为三突破:突破传统风险管理、突破传统反欺诈、突破传统客户挖掘。

    一是,突破传统风险管理,做智能风控的试验田。

    传统风控的关注点在于风险,而智能风控则是利润、客户、风险三者的最优化管理。信用卡场景的数据禀赋、场景禀赋、以及相对灵活管理的架构,都使得此场景可以作为智能风控生根发芽的沃土。

    二是,突破传统反欺诈,着眼于网络黑产。

    目前信用卡的反欺诈分为申请反欺诈和交易反欺诈,识别手段较为传统,即用本人的数据识别本人还款意愿,并多采用外购“黑数据”的方法。而网络黑产的一个主要特征是,“羊”的还款意愿是受“羊头”控制的,只有找到羊头,或者识别出羊的集聚关系,才能够有效地识别出风险。目前看,在信用卡场景中,黑产的申请欺诈、伪卡盗刷、套现、“撸羊毛”等现象还时有发生,这是一场基于“技术对抗”的持久战。

    三是,突破传统客户挖掘,加强客户触达能力。

    在流量枯竭的今天,信用卡场景生态化的数据禀赋非常适合于客户挖掘。传统的客户挖掘,重名单而轻触达。笔者认为,客户挖掘有三个关键环节:客户画像(白名单)、产品画像(钩子产品)、渠道画像(触达方式),三个环节缺一不可,并且笔者认为这“三连环”中最重要的不是客户画像,而是渠道画像。

    2. 互联网泛场景消费金融——“花呗”“白条”模式
    在这里插入图片描述
    图 6 互联网泛场景消费金融模式

    (1) 场景描述

    互联网泛场景消费金融即通过互联网平台向个人提供与消费相关的支付、消费金融,其中以“花呗”“白条”为代表的综合性电商消费金融依托大型电商平台,在用户进行消费时推广开通信用服务,即开即用并根据信用表现提供不同程度的免息和提额政策。

    (2) 场景优势

    一是,流量优势。

    流量优势源自场景方丰富的消费场景、闭环的商业模式、先进的科技系统、实时的数据体系、极强的客户粘性。如果金融机构提供的金融产品具备吸引力,在此类场景做大业务规模相对于其他场景更加容易。

    二是,数据优势。

    大型互联网平台具备客户在“衣食住行”各个维度的丰富数据信息,这些数据属于“高频”流式数据,有助于金融机构在自身强“金融”数据体系之外进一步完善客户画像,进而加强大数据风险模型的识别能力。

    三是,生态优势。

    大型的互联网公司都已经形成了自己的商业生态,并渗透到了客户日常生活、金融支付、信用生活等诸多方面。生态优势之一就是,客户对于大型互联网公司生态的依赖性也对其消费金融产品起到了一定的“风险缓释”作用。

    (3) 业务经验分享

    在电商平台中,由于业务比较容易上量,所以需要注意集中度风险。除此之外,还有“依户傍门”“依人篱下”两个经验需要分享。

    一是,“依户傍门”是一把双刃剑。

    站在电商平台的肩膀上既是优势也是劣势。虽说规模容易做大,但是,金融机构的风控体系、产品体系、客户资源对场景方“定制化”。一旦场景方有任何风吹草动,皮之不存毛将焉附。所以,需要做好“户倒门塌”的相应预案。

    二是,“依人篱下”则不得不低头。

    面对把控海量“数据”和“流量”的大型互联网平台,在合作各个环节,金融机构难以具备足够的“话语权”和“定价权”。并且在对场景的强依赖性下,一旦出现场景交易、行为等数据的造假,金融机构可用手段也不多。另外,电商平台上的刷单、注水等事件的发生,导致金融机构“被误伤”时,也只能委曲求全。

    3. 垂直场景消费金融——站在风口的“必争之地”
    在这里插入图片描述
    图 7 垂直场景消费金融模式

    (1) 场景描述

    随着场景消费由平台化向垂直化、碎片化演化,垂直场景也成为场景金融未来的趋势。目前市场上典型的垂直场景包括教育场景、房产后市场场景(租房场景、装修场景等)、汽车后市场场景、医美场景等,由此衍生出学费贷、家装贷、汽车分期、医美分期等消费金融产品。

    (2) 场景优势

    相较于泛场景,垂直场景最大的优势是金融机构和场景方仍处于“博弈”阶段,没有出现“一家独大”的情况。“深入细致”是垂直场景的特点:“深入”指的是,场景方能够深入细分产业,在所属产业建立流量壁垒。“细致”指的是,垂直领域客群特点和需求相对集中明确。总结起来,场景优势主要有三:

    一是,场景方迫切与金融机构进行深入合作,以提升自己的客户粘性;
    二是,场景方在垂直细分领域沉淀的数据能够有效地优化金融机构的客户画像和风控模型;
    三是,在垂直场景中的某些领域还是一片蓝海。

    (3) 业务经验分享

    垂直场景风险较大,本文第三章所提及的所有风险均可能发生。对于这种场景,要风险和收益兼顾,笔者提出了“三量方针”:量力而为、量体裁衣、量入而出。

    一是,量力而为。

    指的是对垂直场景的选择,要选择自己风控能力以内的场景,选择自己熟悉领域的场景,选择自己客户主标尺内的场景。

    二是,量体裁衣。

    每个垂直场景的客群特点和需求都不相同,要针对垂直场景的特色,量体裁衣地建立客制化风控、产品、客户的管理体系。

    三是,量入而出。

    金融机构在开展场景金融的过程中,有金融机构本身的人员成本、资金成本,场景数据整合、场景系统对接、场景模型建设、个性化金融产品开发等场景成本。在评估是否进入某个垂直场景的过程中,要充分估算场景金融业务的收益和成本,量入而出。

    (二)B端经营场景金融

    2020年9月22日,中国人民银行、工信部、司法部、商务部、国资委、市场监管总局、银保监会、外汇局联合发布《关于规范发展供应链金融支持供应链产业链稳定循环和优化升级的意见》,文中第(五)节指出:推动金融机构、核心企业、政府部门、第三方专业机构等各方加强信息共享,依托核心企业构建上下游一体化、数字化、智能化的信息系统、信用评估和风险管理体系,动态把握中小微企业的经营状况,建立金融机构与实体企业之间更加稳定紧密的关系。本文结合供应链“1+N”场景金融、B2B2C场景金融和To B服务商场景金融三种模式,分别对不同种类的B端经营场景金融的优劣势进行详解。

    1. 供应链“1+N”场景金融
    在这里插入图片描述
    图 8 供应链“1+N”场景金融模式

    (1) 场景描述

    供应链中的核心企业是场景的基础,其接收来自上游企业的原材料或中间商品并产生预付款或应收账款,进行加工处理后出售给下游企业并产生预付款或应收账款。

    在供应链交易过程中,应收账款和预付款代表着供应链上下游企业产生了与商品流动不匹配的资金缺口,针对这些资金缺口,金融机构可为供应链中的上游企业提供应收账款融资及仓储融资,也可为下游企业提供预付款融资或订单融资等供应链金融服务。

    (2) 场景优势

    供应链“1+N”场景金融模式的场景优势在于:交易闭环、四流合一和核心企业增信。

    一是,交易闭环。

    供应链交易模式自身形成闭环,资金的用途和还款来源都相对可控。

    二是,四流合一。

    通过供应链历史交易中沉淀的商流、物流、资金流、信息流数据,金融机构能够整合建立风险名单和各类风险模型,运用大数据加强风险管理。

    三是,核心企业增信。

    处在承上启下地位的核心企业可以为上下游提供担保、保证金、回购等“强缓释”措施,同时上下游对核心企业依赖性也产生了“弱缓释”作用,两种缓释共同降低供应链融资风险。

    (3) 业务经验分享

    供应链“1+N”场景金融模式做到了交易闭环、四流合一,也做到了小额分散,使得风险主要集中在核心企业上,为此,笔者提出了“三关注”:关注核心企业、关注资金流、关注信息核验。

    一是,关注核心企业。

    核心企业在供应链金融中的重要性也导致其经营风险、交易风险将会扩散到整个生态。

    二是,关注资金流。

    当核心企业商流、物流或资金流暴露出问题时,上下游企业和金融机构都难以独善其身,其中问题会首先会反映在资金流上。

    三是,关于信息校验。

    主要是将场景信息与“泛场景”信息(工商、税务、司法)进行核验,防止供应链上下游企业串通虚构信息骗取资金,构成信贷欺诈。

    此外,我国正处于传统产业数字化升级的转型期,大多数核心企业与上下游的数据信息整合和挖掘程度并不高,这使得数字化金融产品应用在供应链场景中的效率较落后于下面要描述的B2B2C电商平台场景。

    2. B2B2C电商平台场景金融
    在这里插入图片描述
    图 9 B2B2C电商平台场景金融模式

    (1) 场景描述

    B2B或者B2C电商平台是该场景金融的基础,其作用类似于供应链金融中的核心企业,向上承接卖方商入驻平台,向下接收买方客户的采购订单。同理,金融机构可针对电商平台中产生的资金缺口,向平台卖方提供应收账款融资和仓储融资,向平台买方提供订单融资和预付款融资等金融服务。

    (2) 场景优势

    与供应链金融相似,电商平台场景在交易与资金闭环可控、利用大数据建模等方面优势突出。相比于传统供应链中的核心企业,电商平台基于“后发优势”和互联网特点,有如下三个场景优势:

    一是,信息化程度更高。

    各类电商平台天然建立在“数字化”转型的背景下,信息化优势明显,对客户和金融机构的数据、科技需求响应更敏捷。

    二是,数据维度更为丰富。

    从交易相关的订单、支付数据,到行为相关的浏览、收藏数据,再到利用平台生态获取的物流、资质等数据,都为金融机构沉淀整合信息、构建风控体系奠定了良好的基础。

    三是,数字化获客能力强。

    电商平台生态的业务模式,让平台上的B端和C端客户更加容易接受数字化产品,进而为金融机构使用数字化营销的方式进行批量获客提供了基础。

    (3) 业务经验分享

    首先,B2B2C模式的场景小微金融,也同样需要对场景金融风险进行严加把控。电商平台在本身经营中存在的刷单、养企、羊毛党、商品质量等问题,均会反映在场景经营、场景欺诈和场景交易风险中,进而造成场景金融风险。

    其次,辩证地看问题,“信息化程度更高、数据维度更为丰富、获客更加开放”,既是机遇也是风险,做这种业务的时候,笔者也在“摸着石头过河”,但是,水深了怎么办?电商平台的海量、多维度数据造假成本低、欺诈手段更新快、识别监控难,都对风险管理提出了更大的挑战。

    3. To B服务商“浅”场景金融
    在这里插入图片描述
    图 10 To B服务商“浅”场景金融

    (1) 场景描述

    围绕企业提供服务的To B服务商也可以衍生出泛场景金融模式。这类服务商针对营销、财务、进销存、收单收银等企业经营管理的各个模块和环节提供软硬件服务。一种最为直接的方式是利用其流量优势,在服务商页面展示贷款广告,向金融机构引流。另一种方式是通过服务商沉淀的数据,在客户授权的情况下,协助金融机构判断企业资质和实际经营情况,为资金方提供授信依据,由此市场上衍生出了POS贷、发票贷、SaaS贷等金融产品。

    (2) 场景优势

    一是,经营数据较深。

    To B服务商深耕企业经营管理的特定模块,具备企业端深度经营数据,可以支持对企业经营状况的深层次刻画。

    二是,营销触达率较高。

    这类服务商向企业营销金融产品的方式与企业经营过程强耦合(如在ERP系统、收单系统展示金融服务产品等),可以做到较高的营销触达率。

    (3) 业务经验分享

    在这类业务模式中,虽然金融机构可以获取部分垂直流量和经营数据,但由于缺乏较为合理的闭环体系和资金把控手段,其本身并不属于“深”场景金融。此外,该场景中流量和数据造假的成本要远低于供应链和电商平台场景,因此在开展此类场景金融过程中,可通过多源数据校验、线上与线下相结合、空壳企业识别模型等手段对数据欺诈进行严格防范,否则可能会成为黑产重点攻击的对象。

    (三)G端政府场景金融

    2019年9月20日,国家发改委、银保监会联合发布《关于深入开展“信易贷”支持中小微企业融资的通知》(发改财金〔2019〕1491号),通知指出金融机构要切实履行服务中小微企业第一责任人的职责,扩大“信易贷”规模,提高中小微企业的政策获得感。

    2020年4月7日,国税总局、银保监会联合发布《关于发挥“银税互动”作用助力小微企业复工复产的通知》(税总办发〔2020〕10号),文中指出要加强各省税务机关与银保监部门和银行业金融机构的协作,利用“银税互动”联席会议机制和“百行进万企”等平台,帮助银行业金融机构主动对接企业需求、精准提供金融服务。

    以上均指出,金融机构通过与G端政府机构进行合作服务中小微企业是场景金融的重要方向。下面将对金融机构与政府平台合作的场景金融模式进行介绍:

    1. 政府征信平台模式
    在这里插入图片描述
    图 11 政府征信平台模式

    (1) 场景描述

    为解决小微企业“融资难、融资贵”的难题,各地政府部门牵头建设信易贷平台、地方征信公司和中小微企业融资平台等机构,一方面通过将政务数据进行整合和挖掘,向金融机构提供更加丰富的企业信用评估依据,另一方面也把当地小微企业信贷产品进行整合,向小微企业提供更加便利的融资渠道和融资方式,并针对企业资金需求特点和还款能力,提供适配的金融服务。

    (2) 场景优势

    一是,数据维度丰富且合规。

    政府平台整合的多维度政务数据,并允许金融机构提供线上化前置风控获客、信用评估、风险预警。

    二是,部分政府平台能够提供担保。

    部分政府平台提供“信贷激励金”“风险准备金”等支持,为金融机构提供了一定的“风险缓释措施”,能够激励当地金融机构更加积极地服务小微企业。

    (3) 业务经验分享

    政府平台可以提供丰富维度的“场景数据”和“场景流量”,但无法帮助金融机构完成“资金闭环”的保障,从场景参与度来讲,属于“浅”场景金融模式。这类场景的经验分享如下:

    一是,需要补充场景内数据。

    目前各地政府平台数据虽然维度丰富,但垂直化不足,无法深入透视企业的具体交易行为,虽然可以在一定程度刻画企业经营资质,但无法精确刻画企业资金缺口、用信需求、上下游关系等信息,这需要“深”场景的交易信息进行补充。

    二是,黑产风险较高。

    随着各家银行“税贷”类产品不断丰富,黑产“以税养贷”等欺诈手段也越来越成熟,政府类数据恰恰属于黑产“盯上”的“易养”数据,因此在这类平台类场景中,数据欺诈、团伙欺诈风险也相应升高。

    三是,接口方式不统一提高了对接成本。

    政府平台虽然打破了本地化数据孤岛,但是从全国角度来讲,各地政府平台的数据标准和对接方式并不统一,对于全国性质的金融机构,需要逐个对接各地政府平台,对接成本较高。

    2. 政府采购贷款模式
    在这里插入图片描述
    图 12 政府采购贷款模式

    (1) 场景描述

    金融机构通过各地政府采购平台获取为政府提供商品和服务的供应商的信息,以政府采购诚信考核和信用审查为基础建立了企业白名单,并以政府采购产生的应收账款作为第二还款来源,为小微企业提供金融服务。

    (2) 场景优势

    一是,场景数据较深。

    政府采购平台具备供应商丰富的历史订单、履约订单、支付情况等信息,可以供金融机构对其供应商进行经营资质、商品服务质量、企业用信需求等维度的评估。

    二是,生态企业预筛选。

    政府先于金融机构,在供应商筛选环节已对企业综合实力进行了审查,起到了一定的资质预筛选的作用,降低了黑产、反欺诈的风险。

    三是,具有天然的缓释功能。

    政府的应收账款的质量高,且其上游企业对其存在一定程度的依赖性,因此同时具备“强缓释”和“弱缓释”功能。

    (3) 业务经验分享

    当企业提供的产品或服务不能满足政府要求时,或者政府在采购政策和偏好发生较大变化时,上游企业可能产生场景经营风险和场景交易风险。

    六、对于场景金融的开放式探讨

    (一)探讨一:场景金融中“缓释兜底”的风险

    在笔者的实际工作中,常常面对这样的问题:一是,场景方对我说“我们的业务有兜底,你们风控以合规为主吧?”;二是,业务部门对我说“我们的业务有兜底,模型能不能松一些?”三是,同业好友对我说“我们风控能力不行,但是我们引入保险兜底,是不是就可以做场景金融了?”

    《商业银行互联网贷款管理暂行办法》第五十五条:商业银行不得接受无担保资质和不符合信用保险和保证保险经营资质监管要求的合作机构提供的直接或变相增信服务。商业银行与有担保资质和符合信用保险和保证保险经营资质监管要求的合作机构合作时应当充分考虑上述机构的增信能力和集中度风险。商业银行不得因引入担保增信放松对贷款质量管控。

    首先,从监管角度可以看出,监管的两个出发点:一是,强化银行风控主体责任,防止银行风险管理“空心化”;二是,鼓励银行提升自身风控能力,减少冗余的风险缓释环节,降低社会融资成本,更好地支持实体经济发展。

    其次,从银行实操角度来看,一是,缓释兜底等措施等并没有真正地识别风险,只不过是将风险后置,并没有真正意义的“稀释风险”;二是,这类措施会压缩银行的盈利空间,使银行弱化核心风险识别能力,进而引发其他风险。

    (二)探讨二:场景金融中“担保池”的形成和风险

    前文已经分析了,长租公寓暴雷事件的风险主要集中于场景经营风险,其“不专业”的“受托支付”使得信贷资金在场景方和业主之间形成了一个毫无监管的资金池。

    在场景金融中“缓释兜底”,有保险公司的担保,有场景方的担保,以及场景方对保险公司的反担保,这样的话,可能会在场景方会形成一个“担保池”。既然长租公寓无监管的资金池会带来暴雷的风险,那么“担保池”的风险也需要我们警惕!

    (三)倡议:由金融出发,向场景融合

    场景金融提及的“场景”和“金融”,实际上是两种生态的融合。场景方建立了一个商业生态,金融机构建立了一个金融生态,两个生态必将融合,并且只有融合才能迸发出活力。然而,从场景生态向金融生态的扩张,似乎问题较多,那么我们金融人应时刻牢记“服务普罗大众、服务实体经济”,以场景金融和开放银行为左右腿,一步一个脚印,从金融生态出发,向场景生态融合。

    展开全文
  • 蚂蚁金服-支付风险识别亚军方案!

    千次阅读 2020-11-11 19:59:00
    比赛名称:蚂蚁金服-支付风险识别比赛链接:https://dc.cloud.alipay.com/index#/topic/intro?id=4比赛背景 基于移动互联网的线下支付、保险、...

    比赛名称:蚂蚁金服-支付风险识别

    比赛链接

    https://dc.cloud.alipay.com/index#/topic/intro?id=4

    比赛背景

    基于移动互联网的线下支付、保险、理财等新金融业务快速发展,互联网金融行业不断突破创新。与此同时,潜伏在网络暗处的黑产势力也不断升级,并威胁着整个行业,其中以信息泄露导致电子账户安全最为严重,并且愈演愈烈之趋势。

    黑客窃取的用户信息包括社保号码、地址、信用卡信息等,并利用这些泄露信息尝试登陆盗取账号资金或盗刷银行卡,直接导致银行和第三方支付公司的用户蒙受大量经济损失。

    赛题目的

    如何更好地利用海量的交易数据和有限的样本来识别迁移中的黑产手法,从而高效准确地判别交易的风险,是人工智能和大数据在风控场景中需要持续解决的技术难题。

    在此背景下,本次大赛希望围绕信息泄露导致账户安全威胁为课题,面向行业征集最智慧的安全解决方案,引领互联网风控核心技术发展。

    赛题数据

    在本次大赛中,将给出由一段时间内有正负标签样本的支付行为样本和没有标签的支付行为样本组成的训练数据集和一段时间后的某个时间范围内的有正负标签的支付行为样本构成的测试数据集,数据集均经过严格处理。

    亚军方案

    赛题背景

    赛题数据为支付宝交易数据,根据历史交易中(17.09-17.10)欺诈情况来预测未来的交易行为(18.02)的欺诈情况。

    测评指标是用于反欺诈测评指标的覆盖率:

    下面是本次比赛中的原生特征,可以看到基本全部来自于设备信息。

    在本次比赛中数据有以下特点,并且我们针对数据的特点需要提出针对性的处理方案。由图可见,数据样本的标签类别极度不均衡,缺失值情况也参差不齐,并且欺诈率与缺失情况关系很明显。

    特征工程

    不管是机器学习还是深度学习都是要有合适应用场景,熟悉其中的业务知识其实往往可以更快速或者更好的去做好一个模型,我们根据交易的业务将字段进行整理和分类,然后从业务的角度多维度的建立特征。

    从多维度多角度去思考特征,思考通常欺诈交易会产生哪些方面的变化和异常。

    多维度考虑,我们做了以下维度的特征依次为基础特征,信息校验,用户行为,即时特征,设备特征,时间特征,IP属性特征,收款方特征。

    其实可以看出交易量是呈周期性变化的,在训练集中有两个完整月的数据,测试集为一个完整月的数据,为充分利用数据同时保证训练验证测试的一致性,我们将训练集按月与测试集同结构拆分,分别做off_val,然后分别预测测试集,以更好的依据期周期来进行训练和预测。也由于复赛线上平台训练速度太慢,但拆分预测我们认为也是更合理的充分利用数据的一种方式。

    构造特征时保证特征的稳定性是金融行业最重要的思想,我们需要使特征在训练集 验证集和测试集保证分布一致,这也是保证模型稳定的关键。

    标签为-1是蚂蚁金服模型中判断为异常从而使交易失败的样本,灰样本的处理也是本赛题上分的关键点,这里涉及到一部分拒绝推断知识。

    这里可以看出交易的场景,方式,与交易相关的次数和频度都是具有良好区分度的特征。

    模型设计

    模型结构分为以下四部分,我们依次进行分析。

    • 首先是最好的白样本的剔除,我们用9月标签为0和1的样本预测10月标签为0,1的样本,去除其中概率最小的一部分(最优阈值需要不断尝试),同理去除9月的一部分白样本。

    • 然后训练去除最好白样本的这批样本,预测off_val的-1,然后将概率最大的一部分加入到样本中给定标签为1。

    我们先去除好样本是为了弱化好客户的特征,凸显坏客户的特征,增加预测-1是坏客户的准确性。

    比赛开源

    第7名代码:https://github.com/mathcbc/Rank7-Solution-for-2018-ATEC-Anti-Fraud-Competition

    亚军文章转载自:吊车尾学院-E哥

    原文链接:https://zhuanlan.zhihu.com/p/57347243

    竞赛组队交流群

    鱼佬,武汉大学硕士,2020腾讯广告算法大赛冠军

    阿水,北航计算机硕士,CV领域Top选手

    杰少:南京大学硕士,DCIC冠军选手

    展开全文
  • 赛题的目的是根据历史交易数据识别当前交易是否为欺诈交易。举办方给出由一段时间内有正负标签样本的支付行为样本和没有标签的支付行为样本组成的训练数据集和一段时间后的某个时间范围内的支付行为样本构成的测试...

    赛题的目的是根据历史交易数据识别当前交易是否为欺诈交易。举办方给出由一段时间内有正负标签样本的支付行为样本和没有标签的支付行为样本组成的训练数据集和一段时间后的某个时间范围内的支付行为样本构成的测试数据集,希望选手们通过机器学习算法和对无标签数据的挖掘在训练集上训练出性能稳定时效性好的模型,能够在测试集上对交易的风险进行精准判断。

    赛题主页:https://dc.cloud.alipay.com/index#/topic/intro?id=4&from=alipay

    分析训练样本

    一共有994,731条训练数据,对于需要验证的标签,一共有三种,分别是0,1,-1。其中98.3%的用户的标签是0,1.21%的用户是1,0.48%的用户标签是-1。训练样本包含了62天的数据信息,时间区间从20170905到20171105,平均每天的记录规模是16000个。

    import pandas as pd
    import numpy as np
    from pandas import DataFrame,Series
    import matplotlib.pyplot as plt
    import sys
    
    import seaborn as sns
    #import lightgbm as lgb
    import gc
    import time
    from sklearn import preprocessing
    from sklearn.metrics import precision_recall_curve
    from sklearn.model_selection import train_test_split
    from sklearn.feature_selection import VarianceThreshold
    
    # 读取数据内容,并保存为dataframe格式
    data = pd.read_csv('./input/atec_anti_fraud_train.csv')
    data['id'] = data['id'].astype('category')
    data['label'] = data['label'].astype('category')
    # print(data.describe())
    # 查看样本的标签的分布情况
    fre = data.label.value_counts()
    # 观察每天的数据量
    date_info = data['date'].value_counts().sort_index()
    data.describe()
                   date             f1  ...           f296           f297
    count  9.947310e+05  994731.000000  ...  787146.000000  787146.000000
    mean   2.017098e+07       0.726283  ...      41.244121      99.023500
    std    6.011735e+01       0.651947  ...      45.658241      96.240483
    min    2.017090e+07       0.000000  ...       1.000000       1.000000
    25%    2.017092e+07       0.000000  ...       2.000000       2.000000
    50%    2.017101e+07       1.000000  ...      17.000000     115.000000
    75%    2.017102e+07       1.000000  ...      79.000000     194.000000
    max    2.017110e+07       2.000000  ...     280.000000     299.000000
    
    [8 rows x 298 columns]
    ----------------------------------------
    fre = data.label.value_counts()
     0    977884
     1     12122
    -1      4725
    Name: label, dtype: int64
    ----------------------------------------
    # print(date_info) # 平均每天的记录规模,从20170905到20171105
    # 20171029    15592
    # 20171030    16455
    # 20171031    16596
    # 20171101    17884
    # 20171102    17305
    # 20171103    16406
    # 20171104    15639
    # 20171105    15891
    # Name: date, Length: 62, dtype: int64
    

    标签为-1的样本的处理  

    -1是未知标签,因此在这个问题上,合理使用这些样本是一个加分关键点。

    1. 完全不考虑label为-1的情况(可以作为baseline)
    2. 将label为-1的全部标记为1,放入训练集。因为这些因为异常被中断的交易是蚂蚁风控系统认为风险比较大的交易,因此可能蕴含着异常交易的特征,可以用于补充label 1样本太少的问题。
    3. 使用机器学习算法对label为-1样本进行预测学习,将被大概率预测为1的样本标记为1,放入训练集中。

    第二种处理方式的效果要优于另外两种方式

    特征分析和选择 

    赛方一共提供了298个特征列,在使用全部的特征进行模型训练时,发现模型指标只能在0.30左右,陷入局部最优。因此需要对特征列进行分析,选择真正对结果有帮助的特征列。因为特征列的缺失情况不一,为避免缺失值填充对特征选择的影响,要特征选择。选择的主要依据有

    1. 特征的缺失率不能太大。若大部分样本都缺失,则特征无用。
    2. 训练集和测试集的特征分布一致,不能有太大的偏差。否则建立的模型不具备泛化能力。
    3. 标签在不同的特征值上的分布具有差异性
    4. 通过gdbt算法训练出的模型选择重要特征

    缺失率分析

    对所有的特征检查数据缺失,可以发现很多不同的但是序号连续的特征可能是互相关联的。比如f1-f4,都是三值函数,都没有缺失。f20-f23都缺失了207448条记录。有如下结论,缺失值为x的特征一定同时缺失,也就是说如果A列特征缺失x条,B列特征也缺失x条,那么一条记录中,A和B要么同时缺失,要么同时不缺失。

    # 检查特征的缺失情况,第一列是缺失数量,第二列是特征列数量
    data_lost=data.isnull().sum().reset_index(name='count')
    data_lost.columns=['feature','counts']
    lost_count=data_lost.groupby('counts',as_index='False').count()
    print(data.isnull().sum())
    id            0
    label         0
    date          0
    f1            0
    f2            0
    f3            0
    f4            0
    f5       199825
    f6            0
    ...
    f288     207585
    f289     207585
    f290     207585
    f291     207585
    f292     207585
    f293     207585
    f294     207585
    f295     207585
    f296     207585
    f297     207585
    Length: 300, dtype: int64
    
    #print(lost_count)
    #         feature
    # counts
    # 0            21
    # 919          48
    # 136021       69
    # 199825        1 # 缺失数量为199825的特征只有一个
    # 207448        6
    # 207585       24
    # 211036        4
    # 270515       78
    # 273904       14
    # 286285        5
    # 341661       14
    # 341887        4
    # 925781       12

    可以发现虽然一共有298个特征列,但是数据的缺失数量只有13个不同的值。可以看到有12个特征他们的缺失情况是925781,大部分的样本都没有数据。只有139个特征的缺失率是低于20%。对于这样的数据分布,我们尝试了不同的特征删除策略:删除缺失率大于20%,30%,40%,50%等等。

    在对测试集进行缺失值分析的时候,查看了测试集的特征。发现对于相同的特征,训练集和测试集的缺失情况不尽相同,因此对于缺失率相差比较大的特征列,最好也删除。否则训练集的特征对于测试集没有很好的适应能力。

    训练集和测试集的分布情况 

    正常的情况下,训练集和测试集的特征分布应该一致,这样根据训练集训练得到的模型才对测试集适用。一致的分布意味着,取值范围一致,概率密度核kde分布曲线类似。

    def plot_kde(train, test, col, values=True):
        fig, ax = plt.subplots(1, 4, figsize=(15, 5))
    
        sns.kdeplot(train[col][train['label'] == 0], color='g', ax=ax[0])
        sns.kdeplot(train[col][train['label'] == 1], color='r', ax=ax[0])
        sns.kdeplot(train[col][train['label'] == -1], color='y', ax=ax[0])
        sns.kdeplot(train[col], color='y', ax=ax[1])
    
        sns.kdeplot(test[col], color='b', ax=ax[2])
        sns.kdeplot(train[col], color='y', ax=ax[3])
        sns.kdeplot(test[col], color='b', ax=ax[3])
        plt.show()
        del train, col, test
        gc.collect()
    
    train_data = pd.read_csv('./input/atec_anti_fraud_train.csv')
    test_data = pd.read_csv('./input/atec_anti_fraud_test_b.csv')
    
    col_need = ['f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16',
                'f17', 'f18', 'f19', 'f20', 'f21',
                'f22', 'f23', 'f24', 'f25', 'f26', 'f27', 'f28', 'f29', 'f30', 'f31', 'f52', 'f53', 'f161', 'f162', 'f163',
                'f164', 'f165', 'f211',
                'f212', 'f213', 'f214', 'f215', 'f216', 'f217', 'f218', 'f219', 'f220', 'f221', 'f222', 'f223', 'f224',
                'f225', 'f226', 'f227',
                'f228', 'f229', 'f230', 'f231', 'f232', 'f233', 'f234', 'f235', 'f236', 'f237', 'f238', 'f239', 'f240',
                'f241', 'f242', 'f243',
                'f244', 'f245', 'f246', 'f247', 'f248', 'f249', 'f250', 'f251', 'f252', 'f253', 'f254', 'f255', 'f256',
                'f257', 'f258', 'f259',
                'f260', 'f261', 'f262', 'f263', 'f264', 'f265', 'f266', 'f267', 'f268', 'f269', 'f270', 'f271', 'f272',
                'f273', 'f274', 'f275',
                'f276', 'f277', 'f278', 'f279', 'f280', 'f281', 'f282', 'f283', 'f284', 'f285', 'f286', 'f287', 'f288',
                'f289', 'f290', 'f291',
                'f292', 'f293', 'f294', 'f295', 'f296', 'f297']
    
    for col in train_data.columns:
        if col != 'id' and col != 'label' and col in col_need:
            plot_kde(train_data, test_data, col)

    其中左图为训练集的分布kde,中图为测试集的kde,右图为训练集和测试集的合并在一起观察的情况: 

     

     

     

    记录

    "array must not contain infs or NaNs")
    ValueError: array must not contain infs or NaNs

    筛选具有辨识能力的特征 

    对于特定的特征,如果样本标签在各值上的分布没有明显的区别,那么这个特征对于最终的预测能起到的作用很小。相反,如果某个特征值上异常交易占比特别高,那么当新样本出现这个特征值时,系统就会引起警觉。常规的方式有

    1. 通过训练集特征与label的pearson相关性选择特征
    2. 通过观察异常交易在每个特征值上的占比情况选择特征

    以2为例,

    feat=['f1','f2','f3','f4']
    fig = plt.figure()
    fig.set(alpha=0.2)
    i=0
    for feature in feat:
        safe_user = data[data.label == 0][feature].value_counts()
        risk_user= data[data.label == 1][feature].value_counts()
        rate=risk_user.div(safe_user)
        plt.subplot2grid((2,2),(int(i/2),int(i%2)))
        rate.plot(kind='bar')
        i=i+1
        plt.title(feature + u"危险用户/安全用户")
    plt.show()

    以前四个特征为例,前四个特征是三值特征,即 每个特征的取值只有0,1,2三个值。检查label为0和1,与特征为0,1,2之间的关系.可以明确的发现对于前4个特征来说,当其为2时,危险交易数目/正常交易数目的比率明显高于其他两个值。尤其是f2特征,这个比率达到了0.25。

    f10的三个值占比都很平均,无法通过这个特征单一分析出交易是否是异常交易的概率,对标签不具有敏感性。在特征选择的时候,这样的特征最好删除。

    经过上面的三层分析,可以删掉很大的一部分特征了。在这里比赛中,主要使用了上面的方式进行特征的筛选,而使用随机森林以及GBDT的方式则略作涉猎,并没有系统的作为依据。

    #筛选之后剩下的需要使用的特征
    col_need=['f1', 'f2', 'f3', 'f4', 'f6', 'f7', 'f8', 'f9', 'f11',
           'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f161',
           'f162', 'f163', 'f164', 'f165', 'f211', 'f212', 'f213', 'f214',
           'f215', 'f216', 'f217', 'f218', 'f219', 'f220', 'f221', 'f222',
           'f223', 'f224', 'f225', 'f226', 'f227', 'f228', 'f229', 'f230',
           'f231', 'f232', 'f233', 'f234', 'f235', 'f236', 'f237', 'f238',
           'f239', 'f240', 'f241', 'f242', 'f243', 'f244', 'f245', 'f246',
           'f247', 'f248', 'f249', 'f250', 'f251', 'f252', 'f253']
    
    #这个函数用于将其余的不需要的特征列删除
    def preprocess_likeo(df,col_need):
        num =0
        drop_cols=[]
        for col in df.columns:
            if(col not in col_need):    
                drop_cols.append(col)
                num= num +1
        df.drop(drop_cols,axis=1,inplace=True)
        print('drop ',num, " features in data set")
        return df

    缺失值的填充 

    在对每个特征进行分析,然后通过实验综合考量得到训练特征之前,我们还需要做特征处理。缺失值填充可以分为连续值的缺失值填充和离散值的缺失值填充。连续值的缺失值填充常见的有中值填充、众数填充、均值填充以及使用randomforest等机器学习算法进行填充。缺失值的填充也有众数填充,-1填充以及使用学习算法进行填充。

    1. 如何划分特征是连续值还是离散值。我们通过观察每个特征的分布情况,人为的划分,然后根据赛方反馈的结果进行调整。
    2. 用什么方法进行填充。在现阶段我们发现对于连续值,使用中值填充的方式优于均值填充。对于离散值,则是-1填充较好。
    将要用到的函数
    #添加每行数据的缺失值情况
    def lost_info(data):
        data_lost=data.isnull().sum().reset_index(name='count')
        data_lost.columns=['feature','counts']
        lost_count=data_lost.groupby('counts',as_index='False').count()
        print("there are ",lost_count.shape[0] ," different lost values in ",data.shape[1]," columns.")
        print("Add ",lost_count.shape[0]," cols behind the origin data...")
        col_len=lost_count.shape[0]
        lost_values=lost_count.index
        lost_info_data=pd.DataFrame()
        for i in np.arange(1,lost_count.shape[0]):
            lost_value=lost_values
            lost_cols_count=lost_count.loc[lost_value,"feature"]
            #same_index=np.array(data_lost[data_lost.counts==lost_value]['feature'])[0]
            same_index=data_lost[data_lost.counts==lost_value]['feature']
            post_fix=np.array(same_index)[0]
            data_lost_sample=data[same_index].isnull().sum(axis=1)/lost_cols_count
            lost_info_data["lost_"+str(lost_cols_count)+"_"+post_fix]=data_lost_sample
        data["sum"]=lost_info_data.sum(axis=1)
        data["isnull_count"]=data.isnull().sum(axis=1)
        #data=pd.concat([data,lost_info_data],axis=1)
        return data  
    
    #分别使用均值填充,插值填充和判定是否空值的方式填充连续型特征
    def mean_fillna(df,features):
        for feature in features:
            df[feature+'_mean']=df[feature].fillna(df[feature].mean())
        return df
    
    def interpolate_fillna(df,features):
        for feature in features:
            df[feature]=df[feature].interpolate()
        return df
            
    def isnan_fillna(df,features):
        for feature in features:
            df[feature+'_isnan']=df[feature]
            df.loc[(df[feature].isnull()),feature+'_isnan']=1
            df.loc[(df[feature].notnull()),feature+'_isnan']=0
        return df
    def median_fillna(df,features):
        for feature in features:
            df[feature+'_meadian']=df[feature].median()
        return df
    
    #连续特征的处理方式
    def continues_fillna(df,features):
        df=median_fillna(df,features)
        #df=interpolate_fillna(df,features)
        return df
    
    
    #使用-1填充离散型特征,并生成是否为空的特征列
    def category_fillna(df,category_cols):
        for category_col in category_cols:
            df[category_col].fillna(-1,inplace=True)
        return df
    
    #为train和test数据标记是否是离散值,当数据unquie唯一值个数超过threld的时候,则被认为是连续特征,否则是离散特征。
    #并且填充缺失值
    def set_cate_type_and_fillna(train_x,test,threld=80):
        #给离散列转换类型,得到离散值
        data_clo_unique_num=pd.DataFrame(train_x.apply(lambda x:len(x.unique())),columns=['unique'])
        for i in data_clo_unique_num.index:
            print(i," ",data_clo_unique_num.loc[i,'unique'])
        cate_cols=set(data_clo_unique_num[data_clo_unique_num['unique']<threld].index)
        cont_cols=set(train_x.columns)-cate_cols
        for i in cate_cols:
            train_x=train_x.astype('category')
            test=test.astype('category') 
        train_x=category_fillna(train_x,cate_cols)
        test=category_fillna(test,cate_cols)
        train_x=continues_fillna(train_x,cont_cols)
        test=continues_fillna(test,con_cols)
    
    print("the size of train set is "+str(train_x.shape[0])+", the size of test set is "+str(test.shape[0]))
    set_cate_type(train_x,test,10)
    
    # 在定义了上面的函数之后,下面将执行到模型训练之前的数据处理代码
    #重新加载一下数据,和分析阶段的数据名可能有区别
    train_x=pd.read_csv('input/atec_anti_fraud_train.csv')
    test = pd.read_csv('input/atec_anti_fraud_test_b.csv')
    
    train_x.sort_values(by='date',inplace=True)
    
    train_x.drop("id",axis=1,inplace=True)
    train_x.loc[train_x['label']==-1,'label']=1
    
    train_y=train_x["label"]
    train_x.drop("label",axis=1,inplace=True)
    
    test_id=test["id"].copy()
    test.drop("id",axis=1,inplace=True)
    
    train_size = len(train_x)
    all_data = train_x.append(test)
    all_data = preprocess_likeo(all_data,col_need)
    all_data = lost_info(all_data)
    
    train_x = all_data[:train_size]
    test = all_data[train_size:]
    
    print("the size of train set is "+str(train_x.shape[0])+", the size of test set is "+str(test.shape[0]))
    set_cate_type_and_fillna(train_x,test,80)

    特征工程结束!!!


    模型训练

    在完成了特征分析和处理之后,进入到了最复杂的过程,模型训练。实际上,上面的-1标签的处理、数据倾斜的处理、特征选择和缺失值填充也是模型训练的组成部分。在实际的工作中,先确定上面的部分,然后调节实验参数,得到较好的本地结果,上传系统得到评分,然后再修改特征部分,调节参数,...,一直循环这样的过程,不断分析本地结果和系统结果的得失。有时候会陷入局部最优,一直无法提升成绩。

    模型训练大致有四个步骤:

    1. 交叉验证集的生成
    2. 模型选择
    3. 参数优化
    4. 模型融合

    多模型融合可以使得结果获得0.02左右的提升。

    交叉验证集的生成

    按照时间排序之后,分成五份,依次取4份作为训练集一份作为测试集进行模型训练,如此交叉验证的结果优于随机选择的5折交叉验证。

    模型的选择

    Lightgbm是微软去年推出的很好用的机器学习竞赛算法。它的本质也是集成学习的算法,这个方法中可以通过参数选择使用随机森林、GBDT或者是Goss算法。相对于传统的sklearn中的集成算法,这个算法的优点在于:

    1. 传统集成算法对于CART树使用pre-sorted的算法。这是一个简单的解决方案,但是不易于优化。LightGBM 利用基于 histogram 的算法通过将连续特征(属性)值分段为 discrete bins 来加快训练的速度并减少内存的使用。
    2. 大部分决策树的学习算法通过level(depth)-wise策略生长树,而lightgbm使用Leaf-wise (Best-first) 的决策树生长策略。它将选取具有最大损失的叶节点来生长。 因此在叶子结点相同的时候,leaf-wise 算法可以比 level-wise算法减少更多的损失。
    3. 大多数机器学习工具都无法直接支持类别特征,一般需要把类别特征转化one-hotting特征,降低了空间和时间的效率。LightGBM优化了对类别特征的支持,可以直接输入类别特征,不需要额外操作。并在决策树算法上增加了类别特征的决策规则。

    在实践中,我们发现lightgbm算法可以达到xgboost相同的score,但是时间开销更少。同时,因为lightgbm可以同时训练GBDT模型和随机森林模型,因此简化了写代码的时间开销。通过实际训练对比,发现使用GBDT的score要略优于使用随机森林模型。

    LightGbm的训练参数有很多,主要的有叶子节点数num_leaves,叶子结点中含有的最少样本数min_child_samples,学习速率learning_rate以及训练循环次数num_boost_round。使用5折交叉验证,在最佳的情况下,score可以达到0.43。

    参数优化

    常用的参数优化方式有两种,第一种是使用基于网格搜索grid-search的方式;第二种是基于贝叶斯优化的参数搜索方式,已有的hyperopt包就是这样的最优参数搜索包。

    grid-search参数优化

    基于grid-search的参数优化的本质是给定需要调节的参数名称以及参数值,通过遍历这个参数空间,尝试每一种参数之间的搭配,选择score最高的参数值作为返回。sklearn.model_selection中提供了ParameterGrid方法,可以对给定的参数生成遍历之后的参数组合列表,将这样的参数传入算法中,依次训练即可得到参数空间中最优的参数值。

    hyperopt参数优化

    grid-search 是全空间扫描,所以比较慢。hyperopt是一种通过贝叶斯优化(贝叶斯优化简介)来调整参数的工具,对于像XGBoost这种参数比较多的算法,可以用它来获取比较好的参数值。

    hyperopt需要对每个参数指定搜索空间,而不是如grid-search中那样指定值,比如参数x在0-1区间内均匀取值,参数y在0-1之间对数取值。然后,可以指定参数优化的搜索算法,如随机搜索(对应是hyperopt.rand.suggest)和模拟退火(对应是hyperopt.anneal.suggest),TPE算法。

    模型融合

    模型融合就是将多个模型的结果重新整理归纳,得到一个更具有泛化能力和精度的最终模型。多模型融合算法可以比单一模型算法有极为明显的效果提升。

    将每个模型结果取均值得到最终的结果,这样的模型融合方式就是均值融合。这种简单的方式,实际效果很很好。通过融合多个成绩在0.40-0.43的lightgbm模型,最终的score可以达到0.4361。

    下面是模型训练部分的代码,封装了一些方法,在注释里面进行解释。

    #评价函数,可用于普通的sklearn包算法的结果分析,如GBDT
    def feval_spec(preds, train_data):
        from sklearn.metrics import roc_curve
        fpr, tpr, threshold = roc_curve(train_data, preds)
        tpr0001 = tpr[fpr <= 0.001].max()
        tpr001 = tpr[fpr <= 0.005].max()
        tpr005 = tpr[fpr <= 0.01].max()
        #tpr01 = tpr[fpr.values <= 0.01].max()
        tprcal = 0.4 * tpr0001 + 0.3 * tpr001 + 0.3 * tpr005
        return tprcal
    
    #用于lightgbm的评价函数
    def feval_spec_train(preds, train_data):
        from sklearn.metrics import roc_curve
        fpr, tpr, threshold = roc_curve(train_data.get_label(), preds)
        tpr0001 = tpr[fpr <= 0.001].max()
        tpr001 = tpr[fpr <= 0.005].max()
        tpr005 = tpr[fpr <= 0.01].max()
        #tpr01 = tpr[fpr.values <= 0.01].max()
        tprcal = 0.4 * tpr0001 + 0.3 * tpr001 + 0.3 * tpr005
        return 'spec_cal',tprcal,True
    
    #Kfolds将数据根据索引分为k份,可以用于生成第一层输出的时候,保证各折数据之间没有干扰
    # GroupSelect将Kfolds中的第i折数据索引作为预测集pre_set,其余的作为训练集train_set。
    # TrainSet针对训练数据的i折,得到训练数据和第二层的输入数据
    def Kfolds(x_index,k=5,seed=1):
        np.random.seed(seed)
        xL=np.array_split(np.random.choice(x_index,len(x_index),replace=False),k)
        return xL
    
    def GroupSelect(xL,i=0):
        xLc=xL.copy()
        pre_index=list(xLc.pop(i))
        train_index=sum([list(x) for x in xLc],[])
        return train_index,pre_index
    
    def TrainSet(x,y,xL,i=0):
        train_index,pre_index=GroupSelect(xL,i)
        train_x,pre_x=x.loc[train_index],x.loc[pre_index]
        train_y,pre_y=y.loc[train_index],y.loc[pre_index]
        return train_x,train_y,pre_x,pre_y
    
    #K折交叉验证,可用于sklearn传统机器学习算法
    def KflodsTrain(x,y,test,k=5,classifier=lgb.LGBMClassifier()):
        xL=Kfolds(np.array(x.index),k)
        #predict_proba=pd.DataFrame()
        test_predict_proba=pd.DataFrame()
        for i in range(k):
            print("begin the "+str(i)+" of "+str(k)+" kflods training...")
            train_x,train_y,pre_x,pre_y=TrainSet(x,y,xL,i)
            model=classifier.fit(train_x,train_y)
            predict_res=pd.Series(model.predict_proba(pre_x)[:, 1],index=pre_x.index)
            train_metric=feval_spec(model.predict_proba(train_x)[:,1],train_y)
            valid_metri=feval_spec(predict_res,pre_y)
            print("The ",i," times res: train set spe_val:",train_metric,", validation set sep_val: ",valid_metri)
            #predict_proba=pd.concat([predict_proba,predict_res])
            test_predict_proba=pd.Series(model.predict_proba(test)[:,1],index=test.index)
        #print("The output data of classifier: ",type(classifier), " is ready for stacking...")
        #print("the size  of data is ",predict_proba.shape[0])
        test_predict_proba_mean=test_predict_proba.mean(axis=1)
        return test_predict_proba_mean
    
    #K折交叉验证算法,用于lightgbm算法
    def KflodsTrain_light(x,y,test,k=5,lgb_params=None):
        if lgb_params==None:
            lgb_params = {
                'boosting_type': 'gbdt', 
                'objective': 'binary', 
                'nthread': -1, 
                'metric': 'auc',
                'num_leaves': 7,  # -1 means no limit
                'min_child_samples': 1000,  # Minimum number of data need in a child(min_data_in_leaf)  
            }
        xL=Kfolds(np.array(x.index),k)
        #predict_proba=pd.DataFrame()
        test_predict_proba=pd.DataFrame()
        for i in range(k):
            print("begin the "+str(i)+" of "+str(k)+" kflods training...")
            train_x,train_y,pre_x,pre_y=TrainSet(x,y,xL,i)
            xgtrain = lgb.Dataset(train_x,train_y)
            xgvalid = lgb.Dataset(pre_x,pre_y)
            evals_results={}
            bst1 = lgb.train(lgb_params,xgtrain,valid_sets=[xgtrain,xgvalid],valid_names=['train','valid'],evals_result=evals_results,
                        num_boost_round=200,early_stopping_rounds=30, verbose_eval=False,feval=feval_spec_train)        
            print('The ',i,' times running....')
            print('Best ite and score ',bst1.best_iteration,bst1.best_score)
            #predict_proba=pd.concat([predict_proba,predict_res])
            test_predict_proba=pd.Series(bst1.predict(test,num_iteration=bst1.best_iteration),index=test.index)
        #print("The output data of classifier: ",type(classifier), " is ready for stacking...")
        #print("the size  of data is ",predict_proba.shape[0])
        test_predict_proba_mean=test_predict_proba.mean(axis=1)
        return test_predict_proba_mean
    
    
    
    #设置lightgbm参数之后,调用上面的方法即可
    total_res=pd.DataFrame()
    total_res['id']=test_id
    lgb_params = {
                'boosting_type': 'gbdt', 
                'objective': 'binary', 
                'nthread': -1, 
                'metric': 'auc',
                'bagging_fraction':0.8,
                'feature_fraction':0.8,
                'num_leaves': 250,  # -1 means no limit
                'min_child_samples': 100,  # Minimum number of data need in a child(min_data_in_leaf)  
            }
    total_res["score"]=KflodsTrain_light(train_x,train_y,test,10,lgb_params)
    total_res.to_csv("submission_b_22.csv",index=False)

     

    参考:

    ATEC蚂蚁开发者大赛-支付风险识别-Rank7

    数据挖掘之支付风险异常识别

    ATEC学习赛想拿奖,这些你必须看&mdash;&mdash; ATEC相关问题汇总(3月获奖榜单颁布,持续更新)

    展开全文
  • 如下所示: 假定这里我们规定正样本为0(即无风险的支付行为),负样本为1(即有风险的支付行为)。第一个概率表示预测结果为正样本的概率,第二个概率表示预测结果为负样本的概率,若预测结果为正样本的概率小于...
  • 虽然人脸识别算法准确率不断提升,但是将其应用于金融领域还存在一定安全风险,在人脸识别算法准确率、人脸检测、活体检测等方面性能差异产生一定安全问题。 1 人脸识别算法准确率差异大 不同人脸识别算法人脸特征...
  • 1、首先选出只带标签的数据(有风险和无风险的),进行分析,建立一个 recall rate 风险交易召回率较高的二分类模型。 2、接着在无标签的数据上应用此模型,打上标签,并与之前有标签的数据进行合并,形成最终完整...
  • 以某互联网金融平台的用户交易数据为对象,通过分析其中借贷逾期违约的传播行为,提出通过传播特征构建模型算法识别互联网金融平台的高风险用户。在构建基于阈值传播和随机传播的SIS和SIR模型的基础上,将模型转换...
  • 程序化交易日臻复杂, 其蕴含的技术故障、重大差错等风险, 容易对市场秩序和交易安全造成冲击。 鉴于程序化交易的专业性和 复杂性, 要形成针对性强、有效性高的一线监管约束, 前提是构建 有效的程序化交易识别和...
  • 当前,金融业正处于以科技赋能,实现大发展、大变革的关键时期,金融科技蓬勃发展,与此同时,金融科技企业生产运行过程中产生的客户个人属性、资金交易、合同等敏感信息数据也逐步以不同形式转化为资产传输于信息...
  • 上一篇博客讲了利用随机森林模型,在有标签的交易数据基础上建立模型,并简要讲了随机森林一些参数的调优,这篇将会对无标签数据进行处理,并与原训练数据合并送入随机森林模型学习,得到最终模型。并会将测试数据接...
  • 小蚂蚁说: 移动支付在带给人们便捷生活的同时,也面临着网络欺诈的空前挑战。...本文讲述了蚂蚁金服技术团队在支付宝 现有风险识别体系上,进行了深度学习的升级,基于 被骗者及欺诈者 行为...
  • 电子商务交易信用风险研究,徐铭蔚,张晗,本文在了解国外电子商务信用风险识别理论研究现状、电子商务信用风险理论以及神经网络基本理论的基础上,对电子商务信用风险进行
  • 第45次《中国互联网络发展状况统计报告》显示,截至2020年3月,我国网民规模为9.... 4、查看统计数据和风险详情:打开京东智联云风险识别控制台,选择云安全-风险识别页面,查看统计数据、风险详情、流量包管理等信息。
  • 电子银行的出现,优化了业务流程,降低了交易成本,延伸了服务范围,代表着银行业未来发展的趋势。不过,电子银行的“虚拟”特征和安全问题自诞生之日起就是人们关注和担心的焦点。
  • 银行交易风险控制业务场景大全

    千次阅读 2019-04-23 16:56:49
    进行银行交易风险监控系统的业务分析和系统设计,首先要理清楚涉及哪些业务渠道,然后才是每个渠道有哪些风险场景。 所谓银行渠道,就是指银行对外(主要是指客户、合作商户)提供服务的方式,如银行的各级分行、...
  • 上篇《基于数据安全的风险评估-脆弱性识别》,是从脆弱性识别内容、识别方式、脆弱性定级,三个部分进行介绍。与脆弱密切相关的是威胁,威胁是一种对组织及资产构成潜在破坏的可能性因素,威胁需要利用资产脆弱性...
  • (转)数字货币平台的交易风险

    千次阅读 2018-01-16 21:53:28
    数字货币平台的交易风险 来源:金融之家 数字货币 /平台 /交易 /风险 /金融之家 2017-03-07 09:42:49 数字货币平台的交易风险 文| |大沧海律师事务所陈铖 金融之家3月7日讯,央行营业管理部检查组约谈数字货币...
  • DeepEye:一个基于深度学习的程序化交易识别与分类方法徐广斌,张伟上海证券交易所资本市场研究所,上海 200120上海证券交易所产品创新中心,上海 200120...
  • 在支付宝内部主要负责盗用风险和欺诈风险防范的王维强(茂深),带领团队依托支付宝海量数据通过大数据模型对支付宝生态内的各类风险进行分析挖掘,研究出了一套保障支付宝体系内的账户、交易安全的方法论。...
  • 3. 风险模型 3.1 风险规模的度量 3.2 风险模型的种类 4. 交易成本模型 4.1 定义交易成本 4.2 交易成本模型的种类 3. 风险模型 风险管理是通过对敞口实施有目的的选择和规模控制来提高收益的质量和稳定性。...
  • 人们正在考虑采用多种方法来汇总金融机构内部和部门之间的风险,并提供金融交易风险敞口的透明度。 如果没有能力查看基本头寸和现金流量,以标准方式进行估值并由交易对手通过通用标识符进行汇总,则无法观察到...
  • 第三章:识别趋势现状和反转位置 Motivation 趋势形态是四大技术分析因素(多重时间结构动量、调整/趋势形态识别、价格回撤目标和时间回撤目标)中的第二个因素。 我们需要形态分析告诉我们两点关键信息:市场当前在...
  • 根据文中提到的线索,数据玩家找到了裁判文书原文((2019)闽0203刑初890号): ...其在注册账户过程中,先输入本人身份信息,待进行人脸识别步骤时,利用软件抓包技术将银行系统下发的人脸识别身份认证数据包...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,324
精华内容 8,929
关键字:

交易风险的识别