明略技术合伙人任鑫琦:数据关系挖掘算法、技术难点及应用场景分析

作者 刘羽飞

数据孤岛、零散数据等现象一直是企业大数据应用过程中所常见的问题,当数据以及数据来源增加过快时,不同数据之间的打通就成了最大的困难,有时这对于传统企业来说更是尤为困难。而数据关系挖掘作为解决数据孤岛等难题的手段之一,可以有效的帮助企业将多样化的数据进行统一存储并挖掘出其中隐藏的价值,目前在公安、电信、金融等传统行业中的应用也正变得愈加广泛。为了了解数据关系挖掘背后的算法应用、技术难点等问题,InfoQ对明略数据技术合伙人及SCOPA产品负责人任鑫琦进行了独家专访。

SCOPA是明略数据去年底刚刚推出的一款数据关系挖掘新产品,它构建在企业大数据平台之上,可结合明略数据在特定领域与行业中积累的业务知识,进行领域模型的转换,并且将转换后的领域模型对象数据进行关联,将所有数据转换成业务人员能轻松理解的数据形式,挖掘出这些数据之间的联系,把有关联的数据放在一起,最后交给上层的业务人员用以展示或分析。

InfoQ:提到数据挖掘和数据分析,就不得不谈算法的问题。前一段时间谷歌AlphaGo在围棋对战中战胜世界顶级围棋棋手李世石,这使得机器算法的话题引起了一阵热议。能否请您谈一谈明略的SCOPA在实际使用时都用到了哪些算法?怎么用的?这些算法各自又有什么不同的特点?

任鑫琦:SCOPA在做数据的关系构建或数据关联时,要用到的方法是多种多样的。因为在这一过程中所面对的数据形式、数据来源、数据种类同样也是多种多样的。基础的数据挖掘算法肯定是必要的,比如基础的分类算法和聚类算法,这也是明略数据在公安和金融领域通过实践而知的,不同于其他行业应用的一个重要方面。

传统行业的业务人员更多的是依靠自己的经验和习惯去总结一些类似于公式的东西,然后将抽样数据或者是能找到的结构化数据套用在这个公式上去计算,然后得到比如像重点人防控的数据模型或者是金融行业里的反欺诈数据模型等等。这些模型的问题大多在于它是源于“人”的经验,其数据特征都是由“人”的主管意识来决定的。

从传统的数据挖掘方法上来看,明略其实是利用相关技术,先将所有数据进行人工智能处理,比如先自动的按照一些基本特征去进行分类、聚类,虽然这中间产生的数据处理结果并一定能被人类完全理解,但是SCOPA会在这个基础之上再根据一些真实的数据样本,比如公安部门中的案件数据,或者金融领域里过去发生的欺诈行为的数据,来作为样本再进行训练。这样的话,之后得出来的规则集和模型,其实都是由真实的数据特征所决定的结果,相比“人”的主观意识来说会更精确。

另外在解决数据关联问题上,明略会把数据转化成类似知识图谱的形式去进行存储,帮助业务人员能够更容易地去理解这些数据。而在这之后,就可以结合很多在互联网领域中很成熟的图像数据挖掘与分析的方法,从中再继续提取数据特征,找到有用的信息。

比如一些离线的图挖掘算法,可以做一个省内一亿人口之间的数据记录关系网,然后就能从数据关系网当中挖掘出一些可疑的团伙或是一些正常的交集群,这些通过现成的数据挖掘算法就可以实现。甚至还可以做一些link prediction的预测工作,分析这张数据关系网里面哪部分处于活跃状态,哪部分未来可能会发生一些关联的事件。

同时这张数据关系网也可以做一些可视化的展示,或是可视化的分析。比如在一个群体内部,可以分析出哪些方面是权重点,而这就需要一些更具体的图挖掘或图分析的算法了。比如可以利用基于Betweenness或Closeness等方法去计算出一些核心点。

举一些简单例子,比如基于Betweenness计算的点,它相当于在一个犯罪团伙内所有通路和路径交汇最多的一个点,也相当于这个团伙组织架构的一个核心点,而这个点可能并不只一个,那么如果能够把这些点都一一破获的话,那么这个团伙或者组织就基本会落网了,这在公安部门打击一些非法传销或者非法金融链条的时候会有所应用。而基于Closeness的方法则是利用计算中心度的方式来寻找一些团伙内真正的核心人物,这个人关联到团伙内其他人的平均距离应该是最短的,这也是打击非法团伙的最快方式。

此外由于在大量的结构化数据之外还有很多非结构化的数据,尤其是像公安部门中的案情、笔录、出警描述这样的文本数据,里面往往都包含着非常重要信息,所以SCOPA所使用比较多的另外一类算法,就是自然语言处理NLP,同时也会进行非常精准的命名实体识别,并计算实体之间的关系。比如可以通过一段文字描述锁定在某地区出现过的一群人,同时分析这些人之间的联系,其中哪些人跟某个案件有什么样的关联,受害人或被害人是谁,他们是否有一些共同的特征,某些地址、单位是否会跟他们产生关联,这些都是自然语言处理算法需要解决的问题。

当需要处理的案件描述非常多的情况下,比如110接警电话记录,或是警察调查走访的笔录等等,那么SCOPA就可以进行自动化的案件对比和分类工作,以便在大规模的案件描述里挖掘出一些数据特征,为一线调查人员的工作起到指引作用。

InfoQ:数据关系挖掘的作用毋庸置疑,理论上的方法也有很多,但是要想在实际的应用场景中做好落地,还需要考虑更多的细节问题。那么能否请您谈一谈进行数据关系挖掘时会面临哪些技术难点?

任鑫琦:关联数据挖掘或者更深入的说关系数据挖掘,研究的不仅仅是客观上的关联度,还会深入挖掘在物理世界中真实存在的某种准确的直接联系,同时还要确定是什么样的联系。那么在进行关系数据挖掘时的难点,主要就在于确定数据模型的特征时,必须要保证数据特征的准确性,否则可能做出来的模型也是不够精确的,而这种似是而非的数据模型在很多行业中其实是没有意义的,比如公安部门就必须要使用非常严格的数据模型。

SCOPA所使用的算法都是依赖于底层数据支持的,然而数据量越大并不一定就越好,而是数据的种类和来源越多越好。比如说公安部门需要确定犯罪嫌疑人之间的关系,那么如果能够拥有关联类数据、轨迹类数据、网络虚拟化数据、电信运营商数据等的话,就能确定嫌疑人经常出现的位置,这样可以依靠出现时间、空间、频次等几类模型来将这个人以及与之有关系的人或物给确定下来。

然而真正要完成这项工作,还需要克服两个挑战,第一个是如何尽可能多的收集和处理数据;第二个是如何在这么多复杂的数据之上挖掘关联性,这需要足够强的计算能力。

InfoQ:随着企业在大数据方面的需求不断扩大,数据的关联、关系挖掘在行业中的应用范围也正变得越来越广。您认为数据关系挖掘相关技术最近有哪些发展趋势呢?

任鑫琦:在没有大数据概念之前,很多时候是用数据库去做一些显性关联分析,而当有了大数据概念之后,更多地其实是想做隐性的关联分析与挖掘,也就是结合不同类型的数据,然后找到其中的联系。因此这其中的趋势,实际就是目前的数据关系挖掘更加偏向于跨领域数据或者跨类型数据的综合分析。

另外一个趋势就是数据分析中需要考虑的数据各种特征以及各种维度都越来越多,比如时间纬度、空间纬度、关系纬度、频次纬度等等,而这样一来数据关系挖掘的结果就会变得越来越准确。

目前还出现了一些类似于搜索引擎相关技术的数据分析技术,它可以通过一些文本及文字的匹配,进行一些类似关联度分析的数据挖掘。但是这种数据关系挖掘,可能今后发展的空间以及潜力会相对少一些。

InfoQ:目前看来,数据关系挖掘在保障公共安全以及维护治安方面的作用是非常显著的,通过技术层面的手段,寻找数据之间的隐藏信息,这对于公安部门来说正是提升执法效率的途径之一,您能否简单地介绍一个相关的数据关系挖掘应用案例呢?

任鑫琦:明略曾经为一个市级公安局做了数据系统,之后当某个区域内经常出现电动车或者电动三轮车盗窃案后,直接通过数据关系挖掘在一分钟之内锁定了该盗窃团伙。

这其实是根据这个区域中的摄像头数据,先找出一些可疑车辆,接着分析在一定时间范围内这些车辆出现的位置,基于这些筛查工作的结果,再对比车主个人信息、违章记录以及与车主有关联的人,从而把范围缩小到一些小人群上,然后把这些人群的行为轨迹进行区域数据模型验证,确定他们在固定的时间段内,在固定范围内出现的概率,在进一步的筛查之后,计算出关联度最高的那群人,最后由调查人员再通过进一步的调查取证,锁定了该电动车盗窃团伙。

而过去一般遇到这样的案件,如果警方只用传统的数据检索和数据比对的方式的话,可能至少需要一个小团队工作三到四天才能破案。

任鑫琦,明略数据技术合伙人及SCOPA产品负责人,同时也是大数据架构、分布式计算、数据交互可视化领域的专家,主要从事大数据系统高效落地、优化架构以及便捷应用方面的工作。任鑫琦于2009年毕业于北京大学计算机科学与技术系,2009年至2012年在SLB从事核心软件开发与架构设计工作;2012年加入秒针系统,负责大数据集群运维和系统架构工作,在两年的时间中完成了公司计算架构的转变,集群规模达到500台,总数据量超过3PB;2013年加入明略,先后负责集群管理和日志分析两款产品的研发工作,曾落地实践多个金融、公安领域项目。