You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

10 KiB

001 | 聊聊2017年KDD大会的时间检验奖

国际数据挖掘与知识发现大会**ACM SIGKDD**ACM SIGKDD Conference on Knowledge Discovery and Data Mining简称**KDD**,是由美国计算机协会**ACM**The Association for Computing Machinery的数据挖掘与知识发现专委会**SIGKDD**Special Interest Group on Knowledge Discovery and Data Mining主办堪称数据挖掘研究领域的顶级会议。

KDD最早是从1989年开始的KDD 研讨班Workshop发展而来当时的研讨班依托于人工智能顶级会议IJCAI大会或者AAAI大会而后在1995年升级成为会议的模式到现在已经有20多年的历史。今年的KDD大会于8月13日至17日在加拿大哈利法克斯成功召开。

SIGKDD每年都会奖励一篇论文这篇论文要在过去十年间对研究、方法论以及实践产生重大影响这就是所谓的时间检验奖Test of Time Award引用次数以及对一个领域的影响力度是评选这个奖项的重要指标。

2017年的KDD时间检验奖授予了美国康奈尔大学信息科学系主任、计算机科学系教授索斯藤·乔基姆斯Thorsten Joachims。这次授予是为了表彰他的论文《线性时间内训练线性支持向量机》Training Linear SVMs in Linear Time这篇论文也是2006年的KDD最佳论文引用数超过1600多次。

Thorsten的学术贡献

Thorsten是一位机器学习界享有盛誉的学者也是ACM和AAAI的双料院士他所有论文的引用数加起来超过了4万次。2001年从德国多特蒙德大学博士毕业后他正式加入康奈尔大学从事机器学习研究。

获得这个奖项之前Thorsten曾多次获得重要奖项比如2017年ACM WSDM的最佳论文奖Best Paper Award、2016年ACM SIGIR的时间检验奖、2015年ACM KDD的时间检验奖、2009年ECML的最佳论文奖、2009年ICML的10年最佳论文奖Best 10-Year Paper Award、2006年ACM KDD的最佳论文奖、2005年ICML的最佳论文奖、2005年ICML的优秀学生论文奖、2005年ACM KDD的最佳学生论文奖等。

Thorsten在机器学习领域一直有着非常特殊的贡献。首先他在支持向量机SVM的应用上做出了诸多努力。比如这次的时间检验奖就是奖励他如何把支持向量机的训练达到线性复杂度,从而使支持向量机在大规模数据上的应用成为可能。

Thorsten还致力于把支持向量机的基本算法也就是仅仅支持分类问题和回归问题的算法应用到更加复杂的有结构的输出结果上俗称结构化的支持向量机算法。得益于这项工作支持向量机可以对信息检索中很多复杂的、非二分的评估指标进行直接优化如F1值F-score、平均精度均值Mean Average Precision从而让支持向量机的应用变得更加广阔。

在让支持向量机能够顺利应用到信息检索的过程中Thorsten还发现了另外一个问题那就是如何利用搜索引擎的间接用户反馈Implicit Feedback来训练排序算法经常是一个结构化的支持向量机模型。具体来说传统的搜索系统和信息检索系统主要是依靠人工标注的训练数据来进行优化和评估。这里所说的人工标注训练数据主要是指人为地评价目标查询关键字和所对应的网页是否相关。

早期大家发现虽然搜索引擎可以利用这样的数据来优化排序算法但是搜索引擎在使用过程中会产生很多用户数据。这些数据可以是用户点击搜索页面结果产生的信息也可以是其他的信息比如用户在搜索页面的驻留时间等等。早期这些信息并没有用于优化搜索引擎。以Thorsten为主的一批学者意识到点击信息的重要性然后开始利用这些数据来训练和评估排序算法。这是Thorsten的第二个主要学术贡献。

Thorsten第三个主要学术贡献也是他最近几年的学术成功那就是把**因果推论Causal Inference**和机器学习相结合,从而能够更加无偏差地训练模型。可以说这部分工作开创了一个新领域。

长期以来,如何有效地应用用户产生的交互数据来进行模型训练,都是大规模机器学习特别是工业界机器学习的难点。一方面,工业系统能够产生很多用户数据;另一方面,这些用户数据又受到当前部署系统的影响,一般都有一定的偏差。

因此工业级机器学习系统面临一个长期挑战,那就是,如何能够在评估模型以及训练模型的时候考虑到这样的偏差,从而去除这样的偏差。

Thorsten利用因果推论中的倾向评分Propensity Scoring技术以及多臂赌博机Multi-armed Bandit思想把这样的方法成功地引入到机器学习中使得无偏差地训练模型成为可能。目前这方面的新研究和新思想正在机器学习以及应用界产生越来越多的共鸣。

线性大规模支持向量机

回到这篇时间检验奖的论文,它解决的是大规模优化支持向量机的问题,特别是线性支持向量机。这篇文章第一次提出了简单易行的线性支持向量机实现包括对有序回归Ordinal Regression的支持。算法对于分类问题达到了O(sn)其中s是非0的特征数目而n是数据点的个数也就是实现了线性复杂度而对有序回归的问题达到了O(snlog(n))的复杂度。算法本身简单、高效、易于实现并且理论上可以扩展到核函数Kernel的情况。

在此之前,很多线性支持向量机的实现都无法达到线性复杂度 。比如当时的LibSVM台湾国立大学的学者发明、SVM-Torch、以及早期的SVM-Light中采用的分解算法Decomposition Method都只能比较有效地处理大规模的特征。而对于大规模的数据(n)则是超线性Super-Linear的复杂度。

另外的一些方法能够训练复杂度线性地随着训练数据的增长而增长但是却对于特征数N呈现了二次方(N^2)的复杂度。因此之前的这些方法无法应用到大规模的数据上。这样的情况对于有序回归支持向量机更加麻烦。从德国学者拉尔夫·赫布里希Ralf Herbrich提出有序回归支持向量机以来一直需要通过转化为普通的支持向量机的分类问题而求解。这个转换过程需要产生O(n^2)的训练数据,使得整个问题的求解也在这个量级的复杂度。

这篇文章里Thorsten首先做的是对普通的支持向量机算法的模型形式Formalism进行了变形。他把传统的分类支持向量机Classification SVM写成了结构化分类支持向量机Structural Classification SVM并且提供了一个定理来证明两者之间的等价性。粗一看这个等价的结构化分类支持向量机并没有提供更多有价值的信息。然而这个新的优化目标函数的对偶Dual形式由于它特殊的稀疏性使它能够被用来进行大规模训练。紧接着Thorsten又把传统的有序回归支持向量机的优化函数写成了结构化支持向量机的形式并且证明了两者的等价性。

把两种模型表达成结构化向量机的特例之后Thorsten开始把解决结构化向量机的一种算法——切割平面算法Cutting-Plane以下称CP算法运用到了这两种特例上。首先他展示了CP算法在分类问题上的应用。简单说来这个算法就是保持一个工作集合Working Set来存放当前循环时依然被违反的约束条件Constraints然后在下一轮中集中优化这部分工作集合的约束条件。

整个流程开始于一个空的工作集合每一轮优化的是一个基于当前工作集合的支持向量机子问题算法直到所有的约束条件的误差小于一个全局的参数误差为止。Thorsten在文章中详细证明了这个算法的有效性和时间复杂度。相同的方法也使得有序回归支持向量机的算法能够转换成为更加计算有效的优化过程。

Thorsten在文章中做了详尽的实验来展现新算法的有效性。从数据的角度他使用了5个不同的数据集分别是路透社RCV1数据集的好几个子集。数据的大小从6万多数据点到80多万数据点不等特征数也从几十到四万多特征不等这几种不同的数据集还是比较有代表性的。从方法的比较上来说Thorsten主要比较了传统的分解方法。

有两个方面是重点比较的第一就是训练时间。在所有的数据集上这篇文章提出的算法都比传统算法快几个数量级提速达到近100倍。而有序回归的例子中传统算法在所有数据集上都无法得到最后结果。Thorsten进一步展示了训练时间和数据集大小的线性关系从而验证了提出算法在真实数据上的表现。

第二个重要的比较指标是算法的准确度是否有所牺牲。因为有时候算法的提速是在牺牲算法精度的基础上做到的因此验证算法的准确度就很有意义。在这篇文章里Thorsten展示提出的算法精度也就是分类准确度并没有统计意义上的区分度也让这个算法的有效性有了保证。

Thorsten在他的软件包SVM-Perf中实现了这个算法。这个软件包一度成了支持向量机研究和开发的标准工具。

小结

今天我和你分享了Thorsten的这篇论文堪称支持向量机文献史上的经典。一起来回顾下要点第一Thorsten在机器学习领域有三大主要学术贡献第二这篇论文理论论证非常扎实算法清晰而且之后通过有效的实验完全验证了提出算法的有效性。文章开启了支持向量机在搜索领域的广泛应用不愧为2006年的KDD最佳论文以及今年的时间检验奖论文。

最后,给你留一个思考题,在什么应用场景下,线性大规模支持向量机可以有比较好的效果?

欢迎你给我留言,和我一起讨论。

扩展阅读:Training Linear SVMs in Linear Time