首发于知乎专栏知识图谱和智能问答,作者为量子胖比特。
背景
历史上,多数企业级应用都运行在一个关系型数据库上(RDBMS),近年来,随着数据存储技术的飞速发展,关系型数据库在灵活性和可伸缩性方面不再处于垄断地位。NoSQL 作为一组迅速崛起的数据存储技术,用于解决关系型数据库在多变的应用场景下的性能限制,目前包含如下几种类型:
-
键值型,如 Redis 或 Riak
-
列型,如 HBase 或 Cassandra
-
文档型,如 MongoDB 或 CouchDB
-
图型,如 Neo4j 或 GraphDB
这些数据库各有自己擅长的领域,都在恒昌有着非常广泛的应用场景。尤其是图数据库,作为恒昌知识图谱的底层存储方案,是多方数据的知识融合及提炼后进行汇聚的场所,为恒昌丰富的产品线与数据技术间的承转起着重要作用。
图数据库
简介
图数据库中的“图”,取自数学中的一个分支——“图论”。在图论中,“图”代表的是一种数据结构,形式上,其实就是“顶点”和“边”的集合,用更为通俗地语言来讲,图通常具备如下特征:
-
由节点和边构成;
-
节点可以有属性(通常以键值对的方式出现);
-
边可以有方向,并总是有一个开始节点和一个结束节点;
-
边也可以有属性。
图数据库就是利用图的特性来对数据进行存储管理,并对传统图的概念进行了扩展。越来越成熟的数据模型,使得利用事物(即“节点”或“实体”)及事物之间的联系(即“边”或“关系”)来对各类业务场景进行抽象变得更加容易。也正因为图数据库基于图论的理论和算法实现,相对于关系型数据库,它也更擅于处理网状的复杂关系。
图数据库有多种实现,它们通常都支持对图数据模型的增、删、改、查(CRUD)方法,并较多地用于事务(OLTP)系统中被应用系统实时访问。图数据库所涉及的核心技术主要包括两层:
-
底层存储;大体上它们可以分为“原生图存储”和“非原生图存储”。原生图存储会针对图的链式提取进行优化,在事务性方面会有较强的保障;非原生图存储,一般会将图数据序列化,然后将数据存储到某种特定的 NoSQL 系统(比如键值型或列型数据库),甚至是其他通用的数据存储中。
-
处理引擎;处理引擎的实现,在一定程序上依赖于底层存储。原生图存储模型通常会使用“免索引邻接”,这通常是指关联节点在数据库里面是物理意义上指向彼此的;而很多采用非原生图存储模型的图数据库系统会选择以分布式的方式实现,它们更适用于大数据量下的联机分析处理(OLAP)。
目前市场上常见的一些图数据库可以参考下图 ,横轴越往右表示其底层存储更偏向原生图的方式,纵轴越往上表示其计算引擎更倾向以原生图的方式来处理数据。
Neo4j
恒昌广泛使用 Neo4j 作为知识图谱底层图数据持久化的方案,并基于其优异的事务能力对业务团队提供实时的数据查询能力,除此外还在 Titan、Gaffer 等分布式图数据库或计算引擎上有着深入的研究。Neo4j 是目前最成熟的图数据库之一,毫无疑问也是最流行的。它无论在事务、性能,还是安全性、可靠性等角度,都能比拟现存最优秀的数据库系统,有些特性甚至更为优秀。下图显示了它在所有图数据库系统中的优势。
Neo4j 提供了对 ACID(原子性、一致性、隔离性、持久性)的完整支持,并且优雅地实现了“免索引邻接”。这使其在处理 N 度关系的时候能够“得心应手”,当伴随着附加的处理条件时,优势尤为明显。以恒昌客户在 Neo4j 中的数据模型为例来分析一次一度关系的提取,任意两个有关联的恒昌客户及他们之间的关系在 Neo4j 中典型的物理存储结构可以参考下图。
将上面的案例简单地扩展一下,从一个借款客户出发,提取其周边三层关系以内的联系人在恒昌是否有借款以及具体的借款状态是非常有意义的,因为从社会网络分析的角度来讲,这些信息可以一定程度上刻画该借款人的信用或欺诈风险。目前此类操作可以做到毫秒级响应(未优化的测试数据约为25毫秒左右),这正是因为 Neo4j 中每一层关系都是物理意义上的指针连接;相同的操作,在关系型数据库里面,需要基于联系人关系表分别进行一级、两级、三级表关联操作,并将取得的结果合并、排重,这组操作即使进行了有针对性的优化,仍旧非常耗时。
图数据库在恒昌的应用
从数据规模来看,目前我们的图数据库已经融合了多方数据,包括业务系统主要产品线各阶段的数据、用户授权数据等。这些数据形成的实体规模已过亿,所形成的关系更是多达数亿。随着恒昌产品越来越丰富,以及用户对恒昌平台越来越信任,这个数据还在持续高速增长;从数据产品来看,基于图数据库开发的知识图谱正在发挥着越来越大的作用,目前已经上线或待上线的产品覆盖了客户失联修复、反欺诈规则引擎、欺诈团伙调查等,近期还会覆盖风险预警、获客等方向。
欺诈团伙调查
数据科学领域有名名言叫“一图胜千言”。图数据库的优势在于能通过“实体”和“关系”这种简单直观的描述方法来表述现实世界中错综复杂的关联关系。然而,图数据库呈现信息的方式,并不限于简单的节点和边。它可以提供逐层挖掘的方式,引导用户逐步深入分析各种关系;还可以快速及时地呈现实体之间最新的关系变化,为用户积累新鲜的知识和经验;也可以清晰地呈现复杂关系间的联络线索,为用户判断事件来龙去脉提供有效引导。此处,我们仍然以恒昌的客户为例,参考下图中的客户徐某(因数据安全的原因,部分信息作了涂抹,并对原有图结构进行了简化),如果仅考虑该客户自己填写的信息,虽然我们也能看到一度关联信息,但完全看不出该结构会有什么问题,也无法进行深入调查。
当关联信息得到补充(相对于原来的进件联系人,补充了同事、邻居、亲属、朋友等关系,还基于用户授权数据进行了深度扩展)后,暂不考虑物品(如手机号、银行账号、地址等),仅考虑自然人,获取徐某二度关系内同时在恒昌有借款行为的用户,得到下图(基于同样原因数据有涂抹及简化)的结果,该图每一个圆都代表一位恒昌客户,图顶部的状态说明了客户当前所处状态。仔细观察左下角以徐某为中心的四个客户(已用红框标出),他们刚好是所呈现图的最大完全子图,符合图论中团的定义。再看除徐某外的三个客户:两个逾期,一个被拒。如果徐某是新入图数据库的借款人,从数学模型的角度看,几乎可以直接判定拒绝。因为符合这种状态的团,是欺诈团伙或是组团代办的几率非常大。
到这时工作并未完结,如果有需要,可以基于图中的关系尝试与几位客户联系以进行深入背景调查证实,调查的结论可以融合到图数据库中形成数据闭环,直接改善后续自动化预警的结果。
风险事件预警
尽管欺诈团伙调查能取得很不错的效果,但因为其可能需要调查员随时联系客户或其周边人群以验证调查员的的推论,因此整体成本还是相当高的。为了解决这个问题,基于模型的风险事件预期就应声而出了。如果说欺诈团伙调查是主动出击,则风险事件预警更像是被动防御。她随时守护着恒昌的客户群体,一旦有判定的风险事件就会警告相关方,必要的时候可以自动向调查员提请欺诈团伙调查。
风险事件预警会通过模型生成一组类似上述欺诈团伙调查中出现的场景,但给每一个场景一个相对低一些的初始置信度,后期通过不断地反馈迭代来优化置信度。当一个新客户到来之后,首先会将其信息整合到知识图谱中。紧接着,该客户会被规则引擎捕捉到,规则引擎会基于客户信息从知识图谱中提取一组特征,由该特征决定了引擎首先会触发哪些场景,而这些场景的结论可能导致规则引擎又触发另外一组场景。在满足特定条件下,最终结果输出,如果有相应的风险事件被触发则信息会送达相关团队。
风险事件预警最有意思的地方在于,一个新客户的到来,可能会导致一个早先客户的风险事件被触发。这主要是因为新客户融入到知识图谱中时带进的新数据,可能会让图谱中的某些子网的结构发生彻底的改变。我们目前采用一组启发式的算法来扩展新进客户的影响,效果显著。这同时也意味着,风险事件预警并非只针对贷前风险事件,还会对贷后风险事件作为预警。比如触发了某个老客户的潜在逾期风险时,就可以引导相关团队提前关注,在情况恶化前及时止损。具体的技术细节不再赘述。
失联信息修复
众所周知,互联网金融的核心是风险控制。无论属于何种风险,最终极的形态就是“人间蒸发”,行话即“客户失联”。首先,“失联”是要尽量避免的。如果客户奔着欺诈而来,那几乎也注定了后续无法联系上,姑且让我们称此类失联为“第一类失联”;其次,“失联”是无法完全避免的,主要是因为失联的“成本”很低,很多客户受到一点挫折就可能游走在“消失”与“不消失”的边缘。即使客户自身“消失”的意愿不高,换个手机号、搬个家、换个公司都有可能导致客户及其联系人完全联系不上,让我们称此类除第一类失联之外的为“第二类失联”。原则上,如果反欺诈做得好,“第一类失联”是不应该出现的。而对于第二类失联,则恰恰是图数据库大展身手的地方。
将图数据库应用于失联修复是非常直接而自然的,因为图数据库的特点就是其在数据丰富的条件下,能非常方便地进行各类关系的提取。恒昌的失联修复项目结合了知识图谱(基于图数据库)及传统的机器学习技术,前者作为修复策略的具体联系方式来源;后者作为策略有效性的评估依据。目前我们能做到失联客户实时修复,修复专员完成具体操作后会有相应的备注及日志信息,这些数据会被实时收集用于改进修复策略。本文仅拿众多策略中较为容易理解的一条来略作说明,这条策略主要是从图数据库中提取和失联客户处于同一公司,且当前住址与失联客户接近的用户作为修复中间人。虽然是一条简单的策略,但深入考虑一下,会发现国内有很多规模不小的工厂会吸引周边村子的人去工作,而这些村子可能本身规模也不小,这样的话修复中间人不见得认识失联人。因此这条简单的策略背后会也会有一个启发式算法,通过公司/工厂的规模来调整当前住址需要匹配的粒度(比如,是到村、到组、还是得具体到门牌相邻)。更进一步地,如果在此基础之上,修复中间人和失联人有过通话记录往来或是有通讯录关联(事实的条件远比这个复杂),就大幅增加了该修复中间人的置信度,甚至可以基于此条件在图数据库查询过程中提前中止,直接返回相关结论。以上操作基于图数据库可以将数据一次取出再进行处理,基本是毫秒级响应,如果触发了提前中止,耗时可能更短;但如果基于关系型数据库,首先会涉及多张业务表的检索、关联;其次,还可能按照初次处理结果多次连接数据库,造成数据库资源的浪费。
获客
这部分主要谈“开源节流”中的“开源”。互联网金融的出现,加速暴露了中国长期以来以银行为核心的金融体系形成的弊端。由于银行独特运营特征,让资金的融通出现了供给与需求较为严重的错配现象,在银行的金融体系中较为较为青睐的贷款客户很多压根都用不着贷款。而对于大多数真正需要借款作为资金周转的人往往很难达到银行所需的借款资质。
图数据库在商品推荐场景下的应用已然非常成熟,但主要集中在电商行业。我们采用的方案有两个步骤,第一步是自动识别优质客户,采用 Bootstrap 方法,基于一组种子优质客户进行多次迭代以扩展优质客户。这个过程的特点是除了客户自身属性特征,还会基于图数据库提取基于社会网络分析的特征;第二步是基于图数据库挖掘较高置信度的优质客户周边人群,将满足特定模式条件人作为潜在客户,两个步骤各自都有严格的评估标准以保准最终效果。
总结
在实际的应用架构中,通常会混合使用多种数据库,以利用它们各自的特点来创建一个数据生态系统。对于恒昌而言,业务系统的高效及事务特征会让关系型数据库继续出彩;大规模的用户授权数据可能会让我们在底层配上分布式的列式存储或键值存储库;但回归根本,恒昌期望为客户提供优异的财富管理及借款信息咨询与服务,就需要优秀的风险控制作保障。而这,恰恰也是图数据库能最大程度发挥价值的领域之一。我们长久以来践行将“风险控制”作为平台生命线,致力于以先进的金融创新技术护航平台安全,以知识图谱等最前沿的高新技术铸风控之盾,势必能打造一个安全、高效、用户体验好的互联网金融平台。
关于作者:
JXU1RjkwJXU5RTRGJXVGRjBDMjAwOCV1NUU3NCV1NkJENSV1NEUxQSV1NEU4RSV1NkI2NiV1NkM0OSV1NTkyNyV1NUI2NiV1RkYwQyV1NjI4MCV1NjcyRiV1NEVCQSV1RkYwQyV1NzU2NSV1NjFDMiV1NjRDRCV1NEY1QyV1N0NGQiV1N0VERiV1MzAwMSV1NzU2NSV1NjFDMiV1NEU5MiV1ODA1NCV1N0Y1MSV1MzAwMSV1NzU2NSV1NjFDMiV1NjczQSV1NTY2OCV1NUI2NiV1NEU2MCV1MzAwMiV1NzNCMCV1NEUzQSV1NjA1MiV1NjYwQyV1NTIyOSV1OTAxQSV1NjI5NSV1OEQ0NCV1N0JBMSV1NzQwNiV1NjcwOSV1OTY1MCV1NTE2QyV1NTNGOCV1NjI4MCV1NjcyRiV1NEUyRCV1NUZDMyV1NzgxNCV1N0E3NiV1OTY2MiV1OUFEOCV1N0VBNyV1NEUxMyV1NUJCNiV1RkYwQyV1NzdFNSV1OEJDNiV1NTZGRSV1OEMzMSV1NTZFMiV1OTYxRiV1OEQxRiV1OEQyMyV1NEVCQSV1MzAwMiV1ODA1NCV1N0NGQiV1NjVCOSV1NUYwRiV1RkYxQSUyMCUyMGVtYWlsJTNBJTIwJTIwcEBjb29saWt0YXMuY29tJTIwJTIwd2VjaGF0JTNBJTIwcHRyc3h1
OpenKG.CN
中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
点击阅读原文,进入 OpenKG 博客。