什么是风控?为什么要使用迁移学习?迁移学习又是如何运用于场景化风控中的?
4月12日,前海征信“好信杯”大数据算法大赛第一期【技术分享会】启动,来自平安集团的数据建模高手邱高思豪为大家详解了赛题背景与迁移学习,并送上学习资料包。以下是分享会实录,干货自取~
◆ ◆ ◆
什么是风控
首先让我们来讲一个关于POS贷的案例:借款人是从事汽车修理生意的,POS机流水发生频繁,在核查中,我们注意到借款人的流水中对应的若干卡户存在密集刷卡的情况,并且刷卡的额经常是固定的。
分析情况与现场走访后,我们发现:
(1)虽然某些客户会定期修理和保养汽车,但不至于每月都需要维护。为此,我们向客户询问情况,却没有得到满意答复。
(2)在提取了借款人的征信记录后,发现有少量的逾期。
(3)修理厂的生意并非想象中的那么好
借款人将流水频繁的原因解释为有时候会帮助车主代理购买汽车保险,我们认为借款人的真实生意无法和流水记录进行完整验证。同时,对于刷卡记录密集发生的客户,我们怀疑有可能来自借款人用POS机刷卡套现的行为。由此,我们否决了客户的借款申请。
通过这个例子,可以了解到,在风控的贷前审核,我们主要是考虑借款方控材料真实性,工作收入稳定性与人际关系的合理性。
从去年开始,消费金融公司就提出了风控应该跟着场景走:知道资金用途,风控更容易。
在前段时间很火的医疗美容的骗贷新闻中,无数的中介和医院勾结骗取贷款。而在教育行业,也有很多教育机构租了几个教师,雇了几个教师干培训班,收完用户贷款后直接跑路。
我们可以看到在之前POS贷的风控问题中, 主要是对客户进行风险评估;而在上面医美和教育的例子里,我们不仅要对客户进行评估,还要对企业进行评估,以防骗贷。
因为风险点的不同,一套风险评估系统已经不能满足这些不同场景的风控需求。这也就是场景化风控提出的原因。
既然提到了场景化风控, 就先让我们来详细了解下这次好信杯比赛的两个场景, 信用贷款和现金贷。
普通信用贷款是指以借款人的信誉发放的贷款,借款人不需要提供担保。其特征就是债务人无需提供抵押品或第三方担保仅凭自己的信誉就能取得贷款,并以借款人信用程度作为还款保证的。由于这种贷款方式风险较大,一般要对借款方的经济效益、经营管理水平、发展前景等情况进行详细的考察,以降低风险。
信用贷款业务,主要通过银行、贷款公司、电子金融机构办理。
现金贷是一种小额短期借贷产品,其平均贷款金额在1000元左右,年化利率平均在50%-200%之间,借款期限集中在7-30天。根据目前市场上的现金贷业务种类,
可以分为随借随还类贷款,超短期贷款(类似国外的PAYDAYLOAN 也就是发薪日贷款),短期贷款,中期贷款四大类。
与一般的消费金融产品相比,现金贷主要具有以下五个特点:额度小、周期短、无抵押、流程快、利率高,这也是与其借贷门槛低的特征相适应的。
现金贷业务在初期采用了”闭着眼睛放贷”的高利率覆盖风险模式大量的盈利, 但是这个模式并不具有可持续发展性, 风控将成为现金贷业务中后期的关键。
因而随着现金贷市场的成熟, 建立行之有效的风控模型为当前的重中之重. 然而由于现金贷目前的产品积累时间不够, 我们没有足够的时间来收集足够的数据, 建立模型判断客户的信用风险. 让我们首先尝试一下, 如果直接将通过信贷数据训练的模型用在现金贷上会发生什么。
答案是效果很差,KS值和AUC值都非常的低. 让我们来分析一下其中的原因。
首先, 源领域和目标领域的客群分布不同。 现金贷年轻客户比例比较高, 而普通信贷客户大多是中年客户, 两者的年龄特征分布存在差异. 而在教育程度分布上, 普通信贷用户大多是本科以上学历, 而现金贷的客户大多是中专以下学历。
其次,源领域和目标领域的重要特征不同。普通信贷的重要特征为资产和信用历史,而现金贷的重要特征为多头借贷和违约成本。就违约成本来说, 对于现金贷的客户, 还钱的话就要多付很多利息, 然而不还钱的话, 由于不会上征信, 可能就只有家人和孩子被催收骚扰了。
◆ ◆ ◆
为什么要使用迁移学习?
通过上面比赛场景的列子,
我们可以看到, 由于传统的机器学习假设训练数据与测试数据需要服从相同的分布, 在现实世界中是很难满足的.
并且传统的机器学习需要对每个领域都标定大量的训练数据, 如果没有的话会使得很多与学习相关的研究与应用无法开展。这就替我们回答了,
为什么需要迁移学习。迁移学习可以从现有的数据中迁移知识, 用来帮助将来的学习。
如左边的图所示,在机器学习的经典监督场景中,
假设在模型A中,我们训练数据任务为识别图片中的物体,训练数据域为咖啡店的照片,那么在模型A的测试数据集中,我们也需要与训练数据相同的域和任务,这样我们才能保证训练出来的模型A能在测试数据上有良好的表现。
同理, 如果有一个模型B, 我们也需要数据属于同一个任务和域,才能训练一个可能具有良好表现的模型B。
但是当我们没有足够的来自于我们关心的任务或域的标签数据来训练可靠地模型时,传统的监督学习就支持不了了。
如果我们要训练一个模型来检测在夜间拍摄的照片上的行人,我们可以用一个在相似的域中训练的模型,例如白天拍摄的图片。然而,实际上,我们经常会遭遇表现上的衰退或者崩溃,因为模型已经继承了它的训练数据中的偏差,不知道如何泛化到新的域中。
如果我们要训练一个模型来执行新的任务,例如检测骑自行车的人,我们甚至不能够使用已有的模型,因为任务之间的标签都是不一样的。
迁移学习允许我们通过借用已经存在的一些相关的任务或域的标签数据来处理这些场景。如右图所示,我们尝试着把在源域中解决源任务时获得的知识存储下来,并将其应用在我们感兴趣的目标域中的目标任务上去。在实践中,我们力求将尽可能多的知识从源环境迁移到目标任务和域中。
接下来, 让我们来了解下迁移学习的定义. 在讲解中, 我们将以一个二元文档分类为例。
迁移学习涉及到域和任务的概念。数据域(domain):用D={χ,P(X)}表示,它包含两部分:特征空间χ(卡)和边缘概率分布P(X)其中X={x1,...xn}∈χ。在文本分类任务中,把每一个单词看作二值的特征即出现或者不出现,所有检索词向量的空间就是χ,xi对应某一文本第i个词向量的值,X就是特定的学习样本。如果说两个数据域不同,表示两个数据域的特征空间或者边缘概率分布不同。
任务(task):用T={У,ƒ(X)}表示,它包含两部分:标签空间У和条件概率P(y|x)。在文本分类任务中У是所有标签的集合。
给定一个源域Ds,一个对应的源任务
Ts,还有目标域 Dt,以及目标任务 Tt,现在,迁移学习的目的就是:在 Ds≠Dt或者Ts≠Tt 的情况下,让我们在具备来源于 Ds 和
Ts 的信息时,学习得到目标域 Dt 中的条件概率分布
P(Yt|Xt)。绝大多数情况下,假设可以获得的有标签的目标样本是有限的,有标签的目标样本远少于源样本。
给定源域和目标域Ds 和 Dt,其中,D={X,P(X)},并且给定源任务和目标任务 Ts 和 Tt,其中T={Y,P(Y|X)}。源和目标的情况可以以四种方式变化,我们仍然以我们的文档分类的例子在下面描述:
χs≠χt。源域和目标域的特征空间不同,例如,文档是用两种不同的语言写的。
P(Xs)≠P(Xt)。源域和目标域的概率分布不同,例如,两个文档有着不同的主题。这个情景通常被称为域适应(domain adaptation)。
YS≠YT。两个任务的标签空间不同,例如,在源领域上的任务要求将文本分为2类,而目标领域的任务要求将文本分类10类。
P(Ys|Xs)≠P(Yt|Xt)。源任务和目标任务的条件概率分布不同,例如,源和目标文档在类别上是不均衡的。这种场景在实际中是比较常见的。
接下来, 让我们来看一下迁移学习的分类,我们可以把迁移学习分类以下3类:
(1)源领域和目标领域相同, 源任务和目标任务相关, 则使用归纳式迁移学习(Inductive Transfer Learning)
(2)如果源领域和目标领域相关,源任务和目标任务相关, 则使用无监督迁移学习(UnsupervisedTransfer Learning)
(3)如果源领域和目标领域相关, 源任务和目标任务相同, 则使用直推式迁移学习(Transductive Transfer Learning)。
而通过源数据域和目标数据域标签的有无,
我们又可以把这3类迁移学习细分到不同的相关领域. 如果一个归纳式迁移学习没有源数据域标签, 则使用自我学习,
如果有源数据域标签并且源任务和目标任务是通过模拟学习的, 则为多任务学习; 如果一个直推式迁移学习假设使用不同的源和目标域,
不过使用相同的源任务和目标任务, 则使用域适应, 如果是相同的目标和域,则使用样本选择偏差以及协方差偏移。
如果只考虑我们的赛题,因为源域目标域和源任务目标任务都相关,并且源域和目标域都有标签,所以我们可以使用多任务学习来建立模型。然而在现实生活中,如果我们考虑的目标域是一个新开展的业务,可能我们的源域源域目标域和源任务目标任务都相关,但是我们将只有源域的数据有标签,而目标域的数据可能是没有标签的,这个时候,使用域适应来建立模型可能是更好的选择。
多任务学习是一种归纳式迁移学习,主要目标是利用隐含在多个相关任务的训练信号中的特定领域信息来提高泛化能力,多任务学习通过使用共享表示并行训练多个任务来完成这一目标。拿大家经常使用的school
data做个简单的对比,school
data是用来预测学生成绩的回归问题的数据集,总共有139个中学的15362个学生,其中每一个中学都可以看作是一个预测任务。单任务学习就是忽略任务之间可能存在的关系分别学习139个回归函数进行分数的预测,或者直接将139个学校的所有数据放到一起学习一个回归函数进行预测。而多任务学习则看重任务之间的联系,通过联合学习,同时对139个任务学习不同的回归函数,既考虑到了任务之间的差别,又考虑到任务之间的联系,这也是多任务学习最重要的思想之一。
目前多任务学习方法大致可以总结为两类,一是不同任务之间共享相同的参数(common parameter),二是挖掘不同任务之间隐藏的共有数据特征(latentfeature)。
基于边缘概率分布差异的领域适应学习算法是目前研究最多的一类算法。算法主要围绕实例加权和均值中心对齐等方法上。
在目标领域,根据统计学习理论,给定损失函数和模型的参数空间,目标是找到参数,使其为满足目标函数取最小值时的变量值。
(1)
由于训练集是来自源领域的联合分布,在训练时没有目标领域的标记数据被观察到,因此需要从源领域数据学习一个模型来代替。如果,则可以简单地通过求解式(2)的优化问题来学习模型用于目标领域。
(2)
当时, 优化问题变为式(3)
(3)
通过为每一个具有相应权重的实例增加惩罚值,可以为目标领域学到一个精确的模型。
基于单源的领域适应学习算法研究如何利用一个源领域的样本帮助目标领域学习,目标是减小这个源领域与目标领域的差异。Blitzer提出的SCL(structure
correspondencelearning)算法,首先在领域上定义m
个枢纽特征集,然后将这些特征集从数据集中去掉并将每个枢纽特征定义为一个新的标签向量,从而建立起m
个分类问题。算法在目标领域当中利用无标签的数据提取出一些可以减小领域间误差的特征表示。Daume提出一种核映射的方法来处理NLP问题,通过一个高维的特征空间将源领域和目标领域相互联系起来,然后利用传统的分类学习算法来训练分类器。Yang提出的ASVM(Adaptive
SVM)以一个或多个现有的分类器适应新的数据集,它的目的是使用类似于支持向量机的目标函数学习源分类器和适应性分类器之间的“δ函数”。
在明白了迁移学习相关的概念和常被用到的一些场景后, 我们将要介绍一些能够说明它潜力的地方。
比如,在无人机的感知和控制方面,人工智能和机器学习算法就扮演了重要角色。但是这种“数据驱动”方法有一个弊端:知识主要来源于对象受到的“损伤”,另外还需要复杂的数据获取和训练流程。
在新研究中,研究人员认为对于许多机器人任务来说,获取训练数据几乎不可能。例如,训练昂贵的机器人系统,使用模仿学习进行避障,通常需要搜集失败范例的数据。这常常是危险而具有灾难性的,所以需要借助其他办法,例如综合仿真,训练真实世界中的模型。
对于那些获取训练数据的任务,由于数据集“有限的变化性”,已学到的策略,也只能应用在他们所处的特定环境和物理系统中。另外,真实世界常常会遇到动态变化,例如环境和光线,这些常常会改变域属性。
卡耐基梅龙大学的研究人员通过在杂乱的环境中,使用基于视觉的自主微型无人机的飞行实验,通过观察无人机在坠落前的几次飞行的平均距离来评估系统性能,在近1千米的自主飞行中,在使用和不使用“域自适应”的两种条件开展测试。最终通过“域适应”和“迁移学习”的方法,进行策略学习,有效地提高了无人机自主学习的性能。
模拟将是实现通用人工智能不可或缺的一部分。在现实世界中直接训练一个代理来实现通用人工智能的代价太高,并且不必要的复杂度还会阻碍人工智能最初的训练。相反,如果基于诸如 CommAI-env的模拟环境的话,学习也许会更加成功。
CommAI-env(基于通信的人工智能环境(Environment
for Communication-based
AI))是facebook开发的一个用于训练和评估人工智能的平台。其使用了一个基于通信(communication)的设置,其中它可以通过一个
bit 层面的接口与 Environment(环境)进行交互。该 Environment 会要求 Learner 去解决一些基于通信的
Task(任务),并为其已经成功完成的每一个任务实例分配一个 Reward(奖励)。
在单个CommAI-env 会话(session)中,Learner会被暴露在许多种任务中,所以它必须学会识别不同的任务,并将不同的技能合适地应用到这些任务上。
许多任务都是渐进的,在这个意义上,解决其中一个或多个任务应该能让其它任务的解决更简单,只要 Learner 有对数据和算法的长期记忆(例如,一旦一个 Learner 解决了基本的计数任务以及如何将物体和属性关联起来,那么计数一个物体的属性就会更容易)。
一方面,Learner应该不只是记忆一个固定任务集合的解决方案,而且还要学习如何将其泛化到其所遇到的新任务上。
另一方面,就和人类一样,Learner 应该只需要少数几次遭遇后就能解决基本的问题:因此,学习的速度应该被考虑在评估之中。
尽管从模拟中学习是域适应的一个特例,总结一些域适应的其他例子也是有价值的。
域适应在视觉中是一个常规的需求,因为标签信息易于获取的数据和我们实际关心的数据经常是不一样的,无论这涉及到如图中所示的识别自行车还是自然界中的其他物体。即使训练数据和测试数据看起来是一样的,训练数据也仍然可能包含人类难以察觉的偏差,而模型能够利用这种偏差在训练数据上实现过拟合。
另一个常见的域适应场景涉及到适应不同的文本类型:标准的自然语言处理工具(例如词性标签器或者解析器)一般都是在诸如华尔街日报这种新闻数据上进行训练,这种新闻数据在过去都是用来评价这些模型的。然而,在新闻数据上训练出的模型面临挑战,难以应对在社交媒体信息上更加新颖的文本形式。
尽管我们今天的主题是关于迁移学习的,但是到今天为止,迁移学习并不是唯一一个试图利用有限的数据、在新的任务上使用学到的知识、并让模型在新环境上具有较好的泛化能力的机器学习领域。所以,在下面的内容中,我们会介绍一些其他的与迁移学习相关或者能够补充迁移学习目标的方向。
半监督学习
迁移学习力图最大效率地使用某些任务或者域中的无标签数据。这也是半监督学习所恪守的准则,半监督学习遵循经典机器学习的设定,但是它仅仅采用有限数量的标签数据来训练。如此,半监督域适应本质上就是在域变化的情况下进行半监督学习。许多来自于半监督学习的教训和思想同样地适用于迁移学习。
更有效地使用可用的数据
另外一个与迁移学习和半监督学习相关的方向是让模型在有限数量的数据上运行得更好。
这个可以用几种方式实现:你可以使用无监督学习或者半监督学习从无标签数据中抽取信息,以减少对有标签样本的依赖;你可以允许模型能够获取一些数据的固有属性,同时减轻正则化过程中的过拟合倾向;最后,你还可以使用至今仍然被忽视或者位于不明显的地方的一些数据。
提高模型的泛化能力
让模型更好地泛化也是与此相关的一个方向。为了实现更好的泛化能力,我们首先必须理解大规模神经网络的行为和错综复杂的结构,并且去研究它们泛化的原因和方式。最近的工作已经朝着这个目标迈出了大有希望的步伐,但是很多问题仍然等待解答。
zero-shot学习
最后,如果我们把迁移学习使用到极限,并且想要仅仅从很少的(一个,甚至
0 个)实例中学习,这就分别得到了 few-shot、one-shot 以及 zero-shot 学习。让模型执行 one-shot 和
zero-shot
学习,无疑属于机器学习中最艰难的问题。而另一方面,这却是我们人类天生就会的:幼年的时候,为了让我们能够认出任何狗狗,我们仅仅需要被告知一次「这是一条狗」,然而成年人可以仅通过在文中阅读就理解一个东西的本质,不需要事先见过它。
总之,迁移学习提供了很多令人兴奋的研究方向,特别是许多应用需要能够将知识迁移到新的任务和域中的模型。希望这次技术分享为你们给出了关于迁移学习的概述并且激发了你们的兴趣。
◆ ◆ ◆
学习资料
迁移学习概述
https://www.cse.ust.hk/~qyang/Docs/2009/tkde_transfer_learning.pdf
迁移学习全面概述:从基本概念到相关研究
http://sebastianruder.com/transfer-learning/
多任务学习
https://www.52ml.net/20775.html
http://www0.cs.ucl.ac.uk/staff/M.Pontil/reading/mt-kdd.pdf
http://ttic.uchicago.edu/~argyriou/papers/mtl_feat.pdf
http://jmlr.csail.mit.edu/papers/volume12/jebara11a/jebara11a.pdf
域适应
http://www.jsjkx.com/jsjkx/ch/reader/view_abstract.aspx?flag=2&file_no=201410110000003&journal_id=jsjkx
http://www.seas.upenn.edu/~strctlrn/bib/PDF/nips06.pdf
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.115.3723
http://www.cs.cmu.edu/~juny/Prof/papers/acmmm07jyang.pdf
4月19日20:00-21:00,前海征信技术专家将为大家带来第二期技术分享,感兴趣的同学请加前海征信赛事官方QQ群:605318706
下期嘉宾
张杰,前海征信股份中心有限公司产品部副总监,中国人民大学经济学硕士,拥有超过10年金融相关从业工作经验,在数据分析、风控建模、资产组合分析等量化分析与建模方面经验丰富。
扫描海报二维码或点击阅读原文直达赛事