了解最新的技术趋势是数据挖掘与机器学习从业者不可或缺的功课。也正因如此,机器学习领域的顶级国际会议——神经信息处理系统大会(简称NIPS,今年更名为NeurIPS)总是一票难求。今年12月初举行的NeurIPS会议门票甚至在短短11分钟内便宣告售罄,创下历年之最。本周笔者通过爬虫获取了NeurIPS官网所有接受论文的公开信息,并通过简单的文本分析,帮助有兴趣的读者更快了解这一顶会盛事。
一从NIPS到NeurIPS
NIPS,全称神经信息处理系统大会(Conference and Workshop on Neural Information Processing Systems),是一个有关机器学习和计算神经科学的A类国际会议。该会议由NIPS基金会主办,在每年的12月举行一次,年年都会吸引大量业界人士参会讨论。今年NIPS因为名称缩写被指“具有性别歧视意味” 而被迫更名为NeurlPS,但这并不妨碍它又一次成为机器学习领域的热点话题。由下图可见,随着近年深度学习的长足发展,会议接受论文量渐呈爆发之势。在会议创建之初,接受论文多年来不足200,而到今年,接受论文已经超过1000篇了。
如此庞大的论文数量,对任何有兴趣了解会议论文的人来说都是一项挑战。虽然会议组有各类session导读,但并没有一个总目录来帮助读者更好地去分辨这些论文来自哪些子领域。接下来,笔者会采用文本分析的一些常用方法,来探索一下2018年NeurlPS会议的热点内容。
二数据获取及基本信息
如果我们点击2018年会议的网址,则会弹出以下界面:
以上网页列举了2018年会议的所有接受论文及作者。但如果我们想进一步获得每篇论文的详细信息,则需要接着点击访问各篇论文的连接。例如,当我们点击第一篇论文“Efficient Algorithms for Non-convex Isotonic Regression through Submodular Optimization”时,网页会跳转至以下信息:
在打开的论文页面中,我们可以获得的信息包括论文名称、PDF下载地址、作者、摘要等等。值得注意的是,本页面并没有提供论文作者的单位信息,需要打开PDF链接后再次提取。因此,笔者在爬取相关内容时求助于Google大法并找到了pdf处理神器——pdfminer来帮助我们从PDF里提取有关信息。
在分析完NeurlPS官网上的信息和模式后,我们确定可爬取的内容包括以下几点:
论文编号
论文名称
论文作者信息
论文摘要
论文下载地址
三词云分析
在爬取数据结束后,我们将其保存至CSV格式文件中,利用python进一步做数据分析。先看一眼数据长什么样:
标题是对论文内容的准确概括。因此,想要掌握会议重点,我们首先考虑基于论文标题来生成词云。Wordcloud能使得我们在给定一段文本输入后,按照设定的参数计算每个单词出现的频率,并根据频率大小生成一个图片文件(如下图)。
从图中可知,今年NeurlPS会议论文标题中出现最多的为learning、model、deep、network、bayesian等等。这与近年深度学习爆炸式增长是紧密相关的。除去这些热点词,我们也可以注意到由于深度学习在计算机视觉上的广泛应用与成功,有关image的论文也比较多。
但是光看词云,总觉得缺了点什么,太过泛泛了些。虽然通过session导读和oral论文我们可以把握一部分重点论文。但这不利于我们宏观理解会议的整体状况。这时我们便可以使用文本聚类将这1100篇论文根据标题的相似性进行分组,方便我们大致知道每个子领域的论文情况。
四文本聚类分析
“聚类是把相似的对象通过静态分类的方法分成不同的组别或者更多的子集(subset),这样让在同一个子集中的成员对象都有相似的一些属性。” ——wikipedia
要使用聚类方法,首先要将文本数据转化为可聚类的连续性数据。我们不妨先尝试tf-idf方法,将标题涉及到的单词组成词库,并把每一个论文标题映射成tf-idf向量。在经过基本数据预处理后,通过以下函数将文本数据转为矩阵形式:
接着,我们便可以采用肘部法则确定Kmeans聚类的簇——k的取值。我们依次取k = 3 到100类,计算并画出随着k值变化的误差曲线如下:
我们知道K-means的误差函数有一个缺陷,即随着簇的增多,误差会自然而然越来越少,极端情况下,当k = 样本数 时,误差最小为0。因此我们选择图中第一个明显拐点出现时k = 9的情况作为聚类的簇值。
确定完K值之后,1100篇论文根据Kmeans算法被划归成9类。
第五类论文竟达到了500篇,这引起了笔者的警惕。那么这类论文有什么共性呢? 让我们看看每类论文出现最多的词。
emmm,好像关键词并没有什么规律可言啊,那么是不是中间出了什么问题呢?
一个可能的原因是,由于论文的标题都比较简短,tf-idf不能很好地划分论文的特性。那如果提取tf-idf的文本长一点呢?我们不妨用论文摘要来代替论文标题再试一次,得到新版k值-误差图如下:
由图可见,这次我们的聚类拐点出现在k = 10处。因此,我们将论文数据划分为十类,并输出每一类别论文的关键词和数量。
这次结果似乎看着还比较正常。我们根据以上关键词,可以对本次NeurlPS会议的子领域涉及有一个初略的推断:
从论文数量上看,讨论梯度相关的论文是最多的,达到了169篇。这与神经网络训练常遇到梯度消失/爆炸这一现实难点互相映照。另外,第二类讨论领域知识数据的论文也有154篇,这与现实中标签数据难以获取、训练样本准备耗时的难点也存在某些联系。其他的热点问题,如语音识别、目标识别、强化学习等等也都是如今的现实热点。
五总结
本文讨论了如何基于NeurlPS会议官网来获取相关数据,并通过词云和文本聚类的方式,对会议热点有一个全景式的了解。由于笔者笔力及时间有限,本文还有很多未曾分析到或有待改进的地方。比如:通过分析论文作者的所属单位来看各高校、企业在学术界的影响力;通过分析论文中的参考文献引用次数来选出历年会议中最有影响力的论文;通过词向量、或者词向量与tf-idf结合的方式来更好地代表文本来聚类;尝试用LDA文本主题模型来对论文全文进行聚类等等。由于篇幅和时间所限,在此不能一一详述,有兴趣的读者不妨一试。
团队介绍:我们是毕马威旗下的专业数据挖掘团队,微信公众号(kpmgbigdata)每周六晚8点准时推送一篇原创数据科学文章。我们的作品都由项目经验丰富的博士或资深顾问精心准备,分享结合实际业务的理论应用和心得体会。欢迎大家关注我们的微信公众号,关注原创数据挖掘精品文章;您也可以在公众号中直接发送想说的话,与我们联系交流。
领取专属 10元无门槛券
私享最新 技术干货