每日消息!商家安全算法的道与术:蚂蚁集团商家安全防控实践

导读: 数字生活中,人们的衣食住行都能够通过手机一站式地解决,十分便利。在消费场景中,商家作为重要参与方为人们提供便利性的同时也可能被黑产利用。对黑产而言,通过商家身份使用收款功能从事风险交易更为便捷。因此,做好商家安全,保障数字生活生态的健康性与保护用户的资金安全十分必要。本次分享主要介绍商家安全防控中三个重要的节点,包括:

1. 商家真实性认知


(相关资料图)

2. 商家交易风险识别

3. 商家智能决策

商户准入签约:解决签约过程中商家信息的真实性校验问题 商户事中交易:解决商户签约后实际经营过程中的交易风险识别问题 商户管控决策:融合真实性和交易风险识别结果,做最优管控决策1

--

01

商家真实性认知

首先介绍商家安全的第一环——商家真实性认知。

这个环节试图去回答商家是谁,在哪里,属于什么行业 。一般从以下 3个维度来判断 商家的真实性:

商户凭证真实性 :商家在准入签约环节需要提供图像凭证信息,如门头照、营业执照、内景照等,可以判断这些图像是否商家真实拍摄上传,并从这些图像里推断出商家的经营场景及其所属行业,与后续其他信息源做对比验证 商户文本真实性 :商家填写的商户名、地址、行业等文本信息也需要判断是否真实规范,并从这些信息中推断出商家经营的行业地址等,与后续其他信息源做对比验证 商家交易真实性 :商家交易情况可以用来动态验证商家提供的图像、文本信息的真实性,例如从凭证和商户名确定为从事餐饮的面馆如果交易时间均不在用餐时间范围内,则可以推测商家提供的图像、文本信息可能存在虚假,需要要求商家重新提交相关认证信息。

1. 凭证真实性

首先,介绍凭证真实性识别。

这个场景会面临图像标注成本高的问题。我们要求商家提供的门头照、内景照等凭证类信息更多的是自然场景下的图像,与公开数据集差异很大,因此无法利用公开数据集训练适用于该场景下的模型。而标注数据又会产生很高的人工成本,为解决该问题, 对标注数据要求比较低的自监督学习和半监督学习方法成为了选择

在没有任何标注数据的情况下,我们选择了SimCLR这一基于对比式的自监督学习方法来进行训练。 这个算法的好处在于其通过数据增强构建正负样本的能力,可以提升我们场景下伪冒风险的识别效果。这主要是因为黑产会通过旋转、变换角度、篡改门头文字等方式重复提交相关凭证达到成为签约商户的目的。而这些手段实际上是一些数据增强方式。如图左上角左侧所示,其原理是一张图像通过不同的变化得到两张图像,自监督学习的监督信息则是同一图像经过增强获得的图像对标签为1,不同图像处变换后的图像对标签为0。该算法训练时的优化方向是让来自同一张图像的距离变近,而来自不同图像的距离变远,从而实现在不依赖标注数据的情况下,可以提取到较通用的图像embedding,供下游伪冒识别的任务使用。

在有少量标注数据的情况,我们可以采用半监督的学习方式 。一般情况下,半监督学习是使用少量的标记样本去训练一个模型;然后,使用该模型对没有标签的数据进行打分,通过设定一个高置信的阈值得到伪标签样本;最后,将这部分样本加入到之前的标注数据中进行第二轮的训练。而我们参考的FixMatch算法在无标签样本部分进行了一定的优化,引入了一致性的损失。如图左上角右侧所示,我们对无监督的样本同样进行数据增强,这是希望有监督学习获得的模型在关注分类准确率的同时,还能对相同图像变换得到的图像给出相似的分数。同时,在这个基础上,我们引入了迁移学习中的领域分类loss,这是因为商户的凭证类型很多,如门头照、内景照、营业执照等。而这些图像的差异很大,我们希望领域分类loss可以提升模型在不同凭证类型之间的通用性。实际结果也表明模型产出的表征能适用不同的凭证类型,在多个下游任务中同准确率下覆盖平均提升10%以上。

以上便是为了解决图像标注成本问题所采用的方法,接下来介绍凭证真实性中遇到的第二个问题—— 复杂背景

通过网站、app提供服务的线上商户,可能整个网页都正常,但在一些很小的局部位置可能出现赌博充值入口等风险元素等。 为了让模型快速关注到带有风险信息的区域,我们提出了基于上下文引导的attention机制 。如图左下角左边所示,该方法使用一个大的卷积核去训练一个全局的attention,一个小的卷积核去训练一个局部的attention;然后让这两个attention进行对比的交叉学习,从而使模型能够知道哪块区域相对于全局而言是有很大差异的;之后,给这块区域更大的权重,让模型关注这部分区域进而更好地捕捉这部分风险特征。该方法在网站和app风险识别上取得了很好的效果。

同时,在复杂背景下,同一个风险在不同图像里会表现出不同的风险特征。如通过拍屏的方式拍取网上的图片进行签约,这种风险会表现出不同的风险特征:第一,拍摄的屏幕可能有摩尔纹;第二,电脑的边框拍入图像内;第三,从反光倒影中能看到拍屏情况。传统的方式是使用同一个特征提取网络来提取不同的特征,这显然效果是不佳的。 为了解决这个问题,我们提出了基于解耦特征的细粒度内容识别 。如图左下角右边所示,该方法将网络解耦,针对不同的特征使用不同的网络进行识别,并使用下游的标签自适应动态学习特征通道的权重进行融合。

通过算法的建设,标注成本和复杂背景问题基本能够得到解决。但凭证真实性模型的评估不同于交易风险有案件投诉,上线后效果评估很难进行。为此, 我们建立了可持续学习链路,将模型识别的不同分数段样本进行随机抽样,让人工进行持续少量标注,通过不断累积的标注样本来监控模型效果,当模型效果出现衰退时进行增量更新迭代。

最终, 通过以上工程和算法的链路我们搭建了如图右上角所示的凭证真实性模型框架 。首先,我们关注图像的拍摄质量;然后,关注凭证是不是真实拍摄的;其次,识别图像是否有风险;最后,对没有问题的凭证进行经营场景和行业的分析。

2. 文本真实性

第二块是文本真实性的内容。这部分主要解决文本分类和文本匹配这两个问题。

文本分类主要用来判断商户名、地址是否规范以及判断商户行业等。 我们采用了基于Bi-LSTM的短文本预训练方案。 这是因为商家场景主要涉及商户名、地址、商品名等短文本,语义信息差,词表长尾严重,使用句子级别的预训练模型效果一般;同时,LSTM的距离特征捕捉能力对于短文本够用,参数相较于BERT少很多,推理效率高。如图右上角所示,因为我们的文本过短,相较于一般LSTM的先正向后反向训练我们对网络结构进行了一定优化,在训练任何一个context时都会同时考虑正反向的情况。通过这个结构得到的预训练模型,相较于BERT而言参数由110M下降到14M,下游各分类任务的准确率也均有15%左右的提升。

文本匹配 主要用于判断商户名或者商户地址是否有批量签约风险以及相似的地址是否指向相同的商户。文本匹配是检索类的任务,一般通过产生的向量表征与底库进行匹配召回后再进行精排。因对比学习能够产生更适合文本匹配任务的embedding向量,考虑到simCSE支持无监督和有监督的训练方式,同我们的应用场景匹配,我们选择了该方法。如图左下角所示,我们会使用无标签数据进行第一阶段的无监督训练,其在训练过程中对同一句话通过随机dropout的方式产生两个不同的embedding,用这两个embedding构建正例进行模型训练;第二步,使用打标好的少量标注数据做一个类似finetuning二阶段训练。通过这个模型产出的embedding向量进行匹配检索任务,相较于文本分类使用的短文本预训练方式,匹配准确率有6%的提升。

基于文本分类和文本匹配这两个算法方案, 文本真实性识别的整体结构如上图右边所示。 首先,我们会通过文本分类的方式判断文本的质量;在质量符合要求的基础上进行内容的理解和识别,如行业识别和NER提取;最后,通过实体匹配的方式去判断商户是否为批量签约。

3. 交易真实性

交易真实性是引入交易信息来判断前面提到的凭证和文本这类静态信息是否真实。

如上图所示,交易真实性识别框架主要依赖交易形态、时序等信息首先判断商家是否具有真实经营活动,身份是否真实;在判断商家身份真实的基础上,我们会根据交易信息来预测经营场景,如当LBS聚集可以推断商家为门店类,当LBS分散时,商家可能是线上商户或者流动摊贩;接着,我们会根据交易时间和人群分布等来校验商家提交的行业真实性。

图下方展示的是这个过程中我们用到的一些算法。 从交易形态分布去推测行业和经营场景涉及可解释性问题,因此 我们采用的是可解释的boosting模型 。该方法是一个引入非线性函数的线性加权算法,其能够在拥有趋近于XGB识别效果的同时提供更好的可解释性。在动态行业校验部分, 我们使用了Isolation Forest的算法 。其假设商家提供的静态行业信息是真实的并依此进行分群,将其交易特征与同行业其他商户交易特征放在一起做异常检测,如果模型表明商家为离群点,说明其不属于该行业,即之前提供的静态行业信息是虚假的。Robust Training 主要为了解决标签的噪音问题。由于使用交易信息去判断商户的行业、经营场景有一定的困难,因此人工标注的数据可能存在噪音。而这种方法会构建两个分类网络,让A学习完后把易学的样本给到B,然后让B学习完后把易学的样本给到A,通过这种互为teacher的交互过程降低噪音标签的影响。

通过凭证、文本、交易这三个维度的真实性分析,我们就能够判断商家的真实性情况并回答我们一开始提出的商户是谁,在哪里,做什么行业的问题。当商家通过真实性校验后便能进行经营收款等活动。接下来,我们便会关注交易环节的风险。

--

02

商家交易风险识别

事中交易环节,商家风险识别和用户风险识别所使用的数据有较大的差异。如图左侧所示,我们使用到的数据包括商家、商家行为、商家行为属性、买家、买家行为、买家行为属性以及商家与商家之间的关系、买家与买家之间的关系、商家与买家之间的关系。相较于文本序列而言,这是一个复杂的多层序列,同时也是异质的、长度更短的序列。因为关系数据的存在,数据与数据之间实际上聚合成了一个复杂的网络。因此, 在交易风险识别环节主要涉及序列算法和图算法的工作。

1. 异构序列算法

如上图所示,当我们想判断用户的第二笔交易是否存在风险时,一般先判断买家是否有问题,再判断商家是否存在问题,最后结合交易当下的时间、金额等属性联合判断交易是不是存在风险。根据这个思路,我们首先会把买家在这笔交易发生之前的事件属性抽取出来形成token放到embedding 层产生embedding向量,随后经过concat再放入NN进行后续的识别打分,最后得到一个买家序列风险分。在判断商家风险时,我们根据商家下的多笔交易及其属性构建序列,如支付金额序列、支付方式序列等。这些序列embedding后经过concat再输入到Transformer中。这里之所以选择Transformer是因为当交易属性序列过多时,concat得到的向量会很长,而Transformer自带self-attention机制,能关注到更重要的部分。通过这种方式我们就得到了商家序列风险分。最后,我们会使用得到的买家风险分、商家风险分和这笔交易的其他特征训练一个综合的交易风险模型。

这种方法是商家序列和买家序列的结果融合,并没有考虑到商家序列和买家序列embedding之间的关联性。于是 我们尝试在特征层对两者进行融合。

如上图所示,我们加入了融合层。对于买家序列和商家序列产生的embedding我们尝试了concat、self-attention、local-attention这三种不同的融合方式。实验结果表明local-attention这种仅考虑一定窗口内的attention方式效果最好,且运算复杂度更低。将融合结果输入到分类模型中去得到的最终结果,相较于上面使用分数融合的方式能将auc提升3%左右。

2. 图稀疏化算法

序列算法仅解决了一度关系问题,如果我们想在识别时同时考虑二度或三度邻居节点的特征就需要考虑图算法。

但当我们把一些学术界的方法,如动态图这类对计算资源要求较大的算法应用到大规模交易场景时,我们会遇到计算瓶颈问题。同时在风控场景中,图关系中的大部分节点都是正常的。

用户和交易,仅有少部分节点对风险识别来说是重要的。于是我们便考虑是否能对图进行压缩,减少非重要节点和边来达到节约计算成本的目的。在这个领域已经有比较多的尝试。第一种是图采样,比如只看一个节点的二度节点而不考虑其他。还有一种是子图切割,这种方法将图切成一个个小图,然后在小图中计算,最后将小图计算的结果合并输入到下游任务中。但这两种方法都会破坏图的连通性并且在进行抽样或者切割时并没有考虑到边和节点对于下游任务的影响,即对风险识别的影响情况。由此,我们选择了更优的图稀疏化算法。

图稀疏化算法引入了具体场景的监督信息,在商家场景的监督信息是商家历史上是否存在过风险。商家除了交易关系外,还会有介质、社交等关系。因此 我们会对每种关系分别做稀疏化,实际上就是分别训练模型,从而得到图中每个节点对的attention 值,并根据该值截取top N的邻居节点来完成图的稀疏化 。之所以根据关系的不同类型将图分成不同的关系网络分别训练,是因为其能够将异质图问题转化为多个同质图问题,这样简单的GAT模型就能得到attention值并且多个同质图可以并行处理提升计算效率。

接着,我们会把得到的多个稀疏化图汇总成一个异构多关系图,借鉴HAN思想来获得节点的通用embedding 。在该算法中涉及到两层attention:第一层关注节点attention,即在不同的关系中邻居节点的重要性;第二层关注语义attention,即不同的边关系的重要性。

最后通过两者的聚合,我们得到节点在异构图中的embedding 。通过第一步的稀疏化,我们减少了边的数量,也大大缩减了计算资源。同时,也因为其剔除了一定的噪音数据,当我们将第二步得到的embedding应用于下游识别任务时,能够在同准确率的情况下提升6%到10%的覆盖。

到此,我们获得了商家真实性和商家交易风险的识别结果。接下来,我们需要在此基础上判断商家是否需要管控,即商家智能决策。

--

03

商家智能决策

通常来说,决策是风控的最后一个环节。一方面,决策是识别结果的生效环节,我们需要关注使用什么样的管控方式来防范对应的风险;另一方面,决策是直接影响用户的环节,我们需要关注管控的方式和强度以保障用户的体验。这实际就是风险和体验平衡的问题。

这部分主要是一些经验分享, 在做决策模型时我们遇到了很多问题:

第一,模型的迭代效率

当出现风险漏过或者误打扰case时,如果是规则就能做出快速调整。而模型需要数据累积、迭代优化与替换这种长周期调整,可能会对业务产生比较大的伤害。因此我们借鉴强化学习的思想,将商家申诉、风险投诉类信息作为增量样本对模型进行增量更新。

第二,数据存在偏差

因决策流量是识别为偏风险的流量,决策建模并不是建立在全量样本上,因此数据是有偏的。同时,效果的评价也是有偏的,因为当一笔交易被A处置方式管控时,我们并不能知道其在B管控下的表现。所以我们利用动态流量分配的A/B test机制来获取更多无偏数据和标签训练模型。

第三,可解释性

由于管控是直接作用于用户的,当用户表示质疑时,我们是需要做出解释的。目前主流的可解释性是偏解释特征与最终结果或者标签的关联性,而并非因果性。因此,我们希望利用因果推断算法输出管控方式推荐的原因。

以上便是商家安全防控工作中的主要内容。

今天的分享就到这里,谢谢大家。

分享嘉宾:郑霖 蚂蚁集团 算法专家

编辑整理:黄晓琴 字节跳动

出品平台:DataFunTalk

01/ 分享嘉宾

郑霖| 蚂蚁集团 算法专家

深耕交易安全算法工作多年,涉足反盗用、反欺诈、反赌博、反作弊等领域,目前lead商家风险算法团队,核心打造商家风险及真实性认知等能力。

02/ 关于我们

DataFun: 专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100+线下和100+线上沙龙、论坛及峰会,已邀请超过2000位专家和学者参与分享。其公众号 DataFunTalk 累计生产原创文章800+,百万+阅读,15万+精准粉丝。

关键词: 风险识别 监督学习

推荐DIY文章
主机存在磨损或划痕风险 PICO4便携包宣布召回
穿越湖海!特斯拉Cybertruck电动皮卡可以当“船”用
vivoXFold+折叠旗舰开售 配备蔡司全焦段旗舰四摄
飞凡R7正式上市 全系标配换电架构
中兴Axon30S开售 拥有黑色蓝色两款配色
荣耀MagicBookV14 2022正式开售 搭载TOF传感器
it