AI内参_04_003_精读2017年KDD最佳应用数据科学论文
你好,我是洪亮杰。
今天我们继续来聊今年的KDD最佳应用数据科学论文。
呃,与研究类论文不同的是呢,KDD的应用类学术论文,更加强调论文所描述的方法,或者系统在实际应用中发挥了作用。
比如,很多论文都是对现有的已部署的系统进行总结,对工业界的很多研究人员和工程师往往都有不小的借鉴意义。
那么和研究类论文一样,从阅读经典文献和学习最新研究成果的角度,我们都应该认真分析和探讨每年的最佳应用类论文。
二零一七年,KDD最佳应用数据科学论文题目是android基于结构性异构信息网络的智能安卓恶意软件检测系统。
可以说,二零一七年是信息安全备受关注的论文。
二零一六年,美国大选过程中,传出了种种关于俄罗斯利篇论客入侵大选候选人的新闻,让整个社会对信息安全的话题变得异常敏感。
这是一篇有关如何智能的分析。
安卓恶意软件的论文真是非常应景。
我先来介绍一下作者群信息文章的第一作者和第二作者,都是来自于西弗吉尼亚大学的计算机科学与电气工程系。
第一作者,侯诗福是该系的博士生,先后发表过多篇论文。
第二作者叶艳芳是该系的助理教授,叶艳芳二零一零年从厦门大学博士毕业,先后在金山公司和科摩多从事信息安全方面的研究和开发工作。
二零一三年呢,他加入了西弗吉尼亚大学任教这篇KDD论文,因为第一作这也是在读学生,所以呢也是最佳学生论文。
第三,作者宋扬秋是来自香港科技大学的计算机系助理教授。
宋扬秋呢是有丰富的学术和工业界经历的,二零零九年加入了香港科技大学。
在这之前曾经在西弗吉尼亚大学任教。
二零一二年到二零一五年之间,他曾在伊利诺伊大学、香槟、分校、香港科技大学、华为、诺亚方舟实验室等地访问。
二零零九年到二零一二年,曾经在微软亚洲研究院和IBM研究院工作。
二零零九年与清华大学博士毕业,最后一位作者是土耳其企业家米勒夫阿多勒哈尤格鲁。
他是科莫多的CEO,于一九九八年创立了公司。
这篇论文挂了他的名字,是因为使用了科莫多的数据。
我们首先来看一下这篇文章的主要贡献类似的。
按照我们周一分析最佳研究论文的思路,首先必须弄明白,这篇文章主要解决了什么场景下的问题。
这篇文章希望解决的问题描述起来很直观,那就是如何有效的监测安卓手机系统下的恶意软件。
经预测,到二零一九年全球的手机市场中百分之七十七点七将是智能手机,而这里面安卓系统的市场占有率至少是百分之八十。
由于安卓系统的开放性以及分散的各类安卓手机软件市场,对安卓软件进行监控和分析存在很大难度。
各类恶意软件在安卓生态系统中可以说层出不穷,比如说给IIIYYT、 fo等等更悲观的统计来根据塞门铁克互联网网安全微段报告认为,五分之一的安卓软件是恶意软件,之前很多恶意软件的分析和检测。
由于基于某种指纹监字技术,然而这种技术常常被恶意软件开发者的新手段绕过。
因寻寻找更加杂杂软的检检测方式,就成了各种信息安全公司所追逐的目标。
这篇论文的主要贡献是根据安卓的api提出了一种新的基于结构性异构信息网络的方法,来对安卓程序的API模式进行更加复杂的建模,从而能够理解整个安卓程序的语义。
作者们还采用了多核学习的方法,在结构性异构信息网络的基础上,对程序、语义模式进行分类。
最后,文章提出的方法在科莫多的真实数据上达到了非常高的准确度,远远优于现在的一些主流方法。
并且科莫多已经在产品中部署了这个方法,了解了这篇文章的目的和贡献。
接下来我就来剖析一下作者们提出的方法。
首先需要将安卓的程序代码转换为可以分析的形式。
一般来说,安卓的软件被打包为后缀名为dex的的ali week的执行文件。
那么这个执行文无法被被接分析,于是需要把这个执行文件通过一个叫smile的反汇编译解析析成si i代码。
这个时候软件的语义就能够通过smile代码来解析了。
作者们从smari代码中提取有有APII用通通对API的分析析,对程序行为建模一一步就是要从繁复复的PII调用中摸索出这里的规律。
于者们这个时候构建了四类矩阵来表达API和某个app之间的基本特征。
一、某一个app是否包含了某一个API?二、某两个API是否同时出现在某一段代码中?三、某两个API是否出现在同一个app中中?某两个API是否使用了相同的调用方法。
可以看出,这些矩阵可以抓住API和app之间的一个基本信息,还可以抓住一系列API,同时出现进行某种操作的特征信息。
这些矩阵成了发现高阶规律的基础。
为了发现更加复杂的规律,作者们在这里引入了一个工具叫异构信息网络。
异构信息网络的概念最早由伊利诺伊大学香槟分校的数据挖掘权威。
韩家伟和他当时的学生孙宜舟提出异构信息网络的核心思想,就是希望能够表达一系列实体之间的复杂规律。
传统的方法把实体表达成图的节点,实体之间的关系,表达成节点之间的链接。
这样的方式忽略了实体本身的不同,以及关系的类型也有所不同。
异构信息网络就是更加完整和系统的表达多种不同实体和实体关系的一种建模工具。
在这篇文章中有两类实体app和API调用有四类关系。
而刚才定义的矩阵,其实就是这四类关系所对应的图的邻接矩阵把app和API的关系描述成为异构信息网络。
以后下面的工作就是定义更高阶的规律关系。
为了更好的定义这些复杂关系,作者们使用了一个叫原路径的工具。
原路径其实是提供一个描述性的模板语言来定义高阶关系。
比如我们可以定义一个从app到API,再到app的路径,用于描述两个app可能都含有相同的API调用这个路径,就可以帮助我们从最开始的四个矩阵推出更加复杂的矩阵来表达一些信息。
那么根据人们的领域知识,这里就是安全领域。
作者们就定义了多达十六种原路径,从而全面捕捉app和API之间的各种关系,利用异构信息网络和原路径,构建了程序的语义表达后,下一步就是进行恶意软件的判别。
这里作者们采用了多核学习的思想,简而言之就是把之前通过元路径所产生的新矩阵看作一个核。
这里面的多核学习就是要学习一个线性的分类器特征,是每个app到某一个核的一个非线性转换。
那么这个转换是在学习过程中得到的。
换句话说,这个多核学习的流程要同时学习一个分类器来判断一个程序是不是恶意程序,还需要在这个过程中学习从app到核的转换。
最后,我们来看一下作者们提出方法的实验效果。
作者们使用了科摩多的数据集,收集了二零一七年两个月的一千八百三十四个app的信息,正常程序和恶意程序几乎各一半。
另外还有一个数据集,包含了三万个app信息,也几乎是正例复例各一半。
从实验结果来看,结合了十六个定义好的原路径的多核学习,能够实现高达百分之九十八的f一值,f一值,可以认为是精度和召回的一个平衡,同时准确率也是高达百分之九十八。
文章还比较了一些其他比较流行的方法,比如神经网络朴素、贝叶斯分类器、决策树以及支持向量机。
这些方法基于的f一值都在百分之八十五和百分之九十五之间,和文章提到的方法有较大差距。
另外,文章还和现在的一些商业软件,比如north n out CM做了比较。
另外,商业软件的准确度也在百分之九十二上下徘徊,因此文章所采用的方法的确比之前的很多方法都更有效果。
今天我为你讲了KDD二零一七年最佳应用类论文,这篇论文提出了如何来分析安卓手机软件的行为,进而检测手机应用是否是恶意软件。
一起来回顾一下要点。
第一,简要介绍了这篇文章的作者群信息。
第二,详细介绍了这篇文章要解决的问题以及贡献。
第三,简要分析了文章提出方法的核心内容。
总结一下文章解决的问题就是如何有效监测安卓手机系统下的恶意软件。
主要贡献是提出了一种新的基于结构性异构信息网络的方法来理解安卓程序的语义,使用原路径的工具定义复杂关系。
还采用了多核学习的方法,完成恶意软件的判别论文,使用科莫多的数据集,验证了所提出的方法,比当下流行的一些其他方法都更加有效。
最后给你留一个思考题。
文章中提到的多核学习方法,这个步骤是不是必须的,能否换成其他方法呢?欢迎你给我留言,和我一起讨论。