first commit

This commit is contained in:
张乾
2024-10-15 21:15:28 +08:00
parent 1b0c35dd30
commit 914d92856f
72 changed files with 3115 additions and 3 deletions

View File

@ -0,0 +1,81 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
002 精读2017年KDD最佳研究论文
前面我们介绍过KDD大会的时间检验奖每年大会的另外一个亮点奖项就是最佳论文奖有两类一类是最佳研究论文一类是最佳应用数据科学论文。今天我就先来说说前者。
大会每年都会在众多的学术研究论文中选择最有新意和价值的研究论文评选出最佳研究论文的第一名和第二名。从过去十多年的经验来看KDD历年的最佳研究论文都会对之后很多领域的研究有开创性的影响。因此不论是从阅读经典文献的角度还是从学习最新研究成果的角度来说认真分析和探讨每年的最佳研究论文都是一个不错的选择。
今天我就带你认真剖析一下KDD 2017年的最佳研究论文《通过挖掘类比关系加速创新》Accelerating Innovation Through Analogy Mining
作者群信息介绍
第一作者汤姆·霍普Tom Hope来自耶路撒冷的希伯来大学The Hebrew University of Jerusalem计算机博士在读第三年。同时他还是英特尔以色列的资深数据科学员对深度学习的很多方面都有研究。目前他正在写一本基于TensorFlow的深度学习简明技术书籍。
第四作者达夫娜·沙哈夫Dafna Shahaf是霍普的博士导师目前在希伯来大学计算机系任助理教授。达夫娜于2012年从卡内基梅隆大学博士毕业。她曾经在微软研究院以及富士通公司实习并在斯坦福大学攻读博士后。达夫娜的论文曾获得2010年的KDD最佳研究论文可以说她一直站在机器学习研究的前沿。
第二作者乔尔Joel Chan是来自卡内基梅隆大学人机交互学院的科学家。乔尔于2014年从匹兹堡大学毕业获得认知心理学博士学位。他一直在人机交互领域进行研究。
第三作者安尼凯特·科图Aniket Kittur是来自卡内基梅隆大学人机交互学院的副教授。他于2009年从加州大学洛杉矶分校毕业获得认知心理学博士学位之后就一直在卡内基梅隆大学任教。
从整个作者群的情况来看,这篇文章是一个比较典型的机器学习技术与人机交互领域的交叉成果。
论文的主要贡献
我们先来看一下这篇文章的主要贡献。当然,要想深入理解这篇文章的贡献,我们还要先弄明白,这篇文章主要解决的是一个什么场景下的问题。
这篇文章主要阐述了帮助创新的一个重要步骤,那就是如何找到合适并且有效的类比案例。什么叫作类比案例?在人类发展的历史上,特别是科学技术的革新历程中,有很多重要的发明发现,都是因为当时的科学家借鉴了一些类似场景中的解决方案,或者是从这些场景中获取了灵感,进一步做出了创新。在这个步骤中,从类似场景中借鉴往往被称作类比。
比如,莱特兄弟从自行车中得到灵感,制造出了可以滑行的飞行器。再比如,诺贝尔生理学或医学奖得主萨尔瓦多·卢里亚从对赌博机运行的观察中,进一步发现了细菌基因突变的规律。同时,类比在很多国家的法律,不管是成文中或者是运行中都比比皆是。因此,我们可以看到,如何找到合适的类比,并能从中获取灵感,可能就是创新的一个关键因素。
时至互联网时代的今天我们已经有很多数据库、文献库可以作为获取类比灵感的重要数据源泉。比如谷歌学术搜索Google Scholar有上百万的论文和专利信息OpenIDEO有上百份关于社会问题的分析Quirky有超过两百万份的产品构想InnoCentive有超过四万份的社会、政治以及科技方面的解决方案美国专利局有超过九百万份的专利信息类似的例子还有很多。
与此同时,海量数据也为寻找灵感带来了很大的挑战。如何才能在这些百万级别的信息库里快速定位可能的类比场景,就成了阻碍创新速度的一大瓶颈。
找到类比场景有一个很大的挑战,那就是如何定义“类似”或者“相似”。如果仅从一些表面特征来看,很多场景之间的相似程度是很低的。因此,好的类比场景一定是能够找到,刨除表象相似以外的深层次相似的案例。另外一个挑战就是,寻找类比场景中,是否能有一个非常丰富的数据结构来支持推理,如果有,往往就能有比较简单的方法。
这篇论文的重点是如何从海量的无结构或者弱结构的文本数据中找到这样的类比。我们可以看出,这确实是一个巨大的挑战。
理解了这篇论文的目的,我这里就直接给你总结一下它的贡献,那就是提出了一种自动的在海量无结构的文本数据中挖掘类比场景的方法。这篇文章关注的是产品信息数据。作者们通过实际的数据,验证了提出的方法比之前的一些文本处理方法更加有效。
论文的核心方法
了解了这篇文章的目的和贡献后,接下来,我就来剖析一下作者们究竟提出了一个什么方法。
首先作者们提出了一组叫“目的”Purpose和“机制”Mechanism的概念。什么叫“目的”呢那就是当前的产品是要解决什么问题的。什么叫“机制”呢那就是当前的产品是使用什么手段或者方法来解决这个问题的。对于一个产品如果我们能够明确这个产品的目的和机制找到类比就变得更加容易。
比如,我们可以针对某一个问题,相同的目的,采用不同的机制或者对不同的问题采用相同的机制。作者们认为,这种对产品信息的分类符合很多工程设计的过程,是创新过程中的一个必要环节。
有了这种想法以后很自然的下一个步骤就是如何从数据中学习到目的和机制如何自动挖掘出海量产品信息的目的和机制。要想学习到这样的信息作者们提出了一种依靠标签数据的监督学习Supervised Leanring机制。具体说来作者们把文本信息中的每句话、短语交给亚马逊土耳其机器人Amazon Mechanical Turk上的在线工人来标注每个文本信息是目的信息还是机制信息。也就是说作者们依靠有标注的数据来训练提出的算法。
首先我们有一组文本每组文本都有这些文本的原始文字。针对每个文档我们都收集K个目的标注和K个机制标注。这时我们定义一组“目的标注”Purpose Annotation向量其实也就是一组0或者1的向量。当文本原始文字中的某个字被标识为目的的时候这个向量的相应元素置1反之置0。类似的我们也可以定义“机制标注”Mechanism Annotation向量。因为我们有K个标注因此我们也有相应的K个“目的标注”向量和“机制标注”向量。这两组向量可以说是原始标签信息的一种向量的表达。
下一步就是从每一个有标签信息的文档里产生唯一的目的向量和机制向量。这篇文章采用的方法是利用每个单词的嵌入向量Embedding来获得这个唯一的向量。
具体方法是这样的首先针对每一个标注总共有K个我们收集属于这个标注的单词的嵌入向量并把这些嵌入向量都拼接起来。然后计算这组拼接好的向量所对应单词的TF-IDF值Term FrequencyInverse Document Frequency词频-逆向文件频率并且取TF-IDF值最高的一些单词相对应的嵌入向量加权平均以后就得到了相应的唯一的目的向量或者是机制向量。作者们发现这种利用TF-IDF值加权的方法可以更加有效地表达文本的各种重要信息。注意这个步骤是依赖于文档标签的也就是说我们只能对训练数据进行这样的构造。
到目前为止我们描述了如何从文本到达文本对应的目的向量和机制向量的步骤。那么如何基于这样的数据以及向量来对未知的文档进行提取目的向量和机制向量呢文章采用了深度模型RNNRecurrent Neural Network循环神经网络具体说来是双向的RNN并且有一个GRUGated Recurrent Unit门控循环单元
这里我就不复述细节了,总体的思路就是,根据文档的嵌入向量信息,我们希望得到一组文档的隐含表达(中间参数),然后可以从这个隐含表达来预测目的向量和机制向量。注意,因为需要预测两组目标,目的向量和机制向量,因此,这里至少需要分别有两组参数。
除了预测文档的目的向量和机制向量以外,作者们还提出了一个用少数关键词来解释这两组变量的机制。具体说来,就是设立一个新的学习目标函数,希望通过少数关键词所对应的嵌入向量来重构目的向量或者机制向量,让得到的误差最小。
方法的实验效果
作者们使用了Quirky数据集通过亚马逊土耳其机器人标注了八千多组产品信息。首先检测了利用学习到的目的向量和机制向量是否能够比较容易地从海量数据中提取相应的类比信息。这里作者们直接利用把目的向量和机制向量拼接的方式来表达问题。答案是效果非常显著。在前1%到25%的提取结果中精度Precision和召回Recall都比之前的标准文本处理方法比如LDA、TF-IDF、全局的嵌入向量要好10%到20%,可以说这是非常有效果的。
作者们还测试了通过提出的方法是否能够为用户推荐比较好的类比场景。这里文章又找了38个亚马逊土耳其机器人的虚拟工人来为12个产品思路打分。在不知道推荐方法的情况下虚拟工人认为这篇文章提出的方法能够推荐更有新意、在深层次上更加类似的场景。这也部分解决了我们前面说到的文章希望解决的问题。
小结
今天我为你讲了KDD 2017年的年度最佳研究论文这篇论文提出了一种自动的方法来挖掘类比信息为快速创新铺平道路。一起来回顾下要点第一我简单地介绍了这篇文章的作者群信息帮你了解到这篇文章是机器学习和人机交互研究的一个结合。第二我详细地介绍了这篇文章想要解决的问题以及贡献。第三我简要地介绍了文章所提出方法的核心内容。
最后,给你留一个思考题,这篇文章提出的是使用标注信息来获取目的向量和机制向量,我们有没有办法能够不使用标注信息,采用完全无监督的方式呢?
拓展阅读Accelerating Innovation Through Analogy Mining

View File

@ -0,0 +1,78 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
003 精读2017年KDD最佳应用数据科学论文
周一我们讲了2017年KDD最佳研究论文今天我们继续来聊今年的KDD最佳应用数据科学论文。
与研究类论文不同的是KDD的应用类学术论文更加强调论文所描述的方法或者系统在实际应用中发挥的作用。比如很多论文都是对现有的已部署的系统进行总结对工业界的很多研究人员和工程师往往都有不小的借鉴意义。和研究类论文一样从阅读经典文献和学习最新研究成果的角度我们都应该认真分析和探讨每年的最佳应用类论文。
2017年KDD最佳应用数据科学论文题目是《HinDroid基于结构性异构信息网络的智能安卓恶意软件检测系统》HinDroid: An Intelligent Android Malware Detection System Based on Structured Heterogeneous Information Network。可以说2017年是信息安全备受关注的一年2016年美国大选过程中传出了种种关于俄罗斯利用黑客入侵大选候选人的新闻让整个社会对信息安全的话题变得异常敏感。这是一篇有关如何智能地分析安卓恶意软件的论文真是非常应景。
作者群信息介绍
文章的第一作者和第二作者都来自西弗吉尼亚大学West Virginia University的计算机科学与电气工程系。第一作者Shifu Hou是该系的博士生先后发表过多篇论文。第二作者叶艳芳Yanfang Ye是该系的助理教授。叶艳芳2010年从厦门大学博士毕业先后在金山公司和科摩多Comodo Security Solutions从事信息安全方面的研究和开发工作。2013年她加入西弗吉尼亚大学任教。这篇KDD论文因为第一作者也是在读学生因此也是最佳学生论文。
第三作者宋阳秋Yangqiu Song是来自香港科技大学的计算机系助理教授。宋阳秋有丰富的学术和工业界经历。2016年加入香港科技大学在这之前曾经在西弗吉尼亚大学任教。2012年到2015年之间他曾在伊利诺伊大学香槟分校、香港科技大学、华为诺亚方舟实验室等地访问。2009年到2012年曾在微软亚洲研究院和IBM研究院工作。2009年于清华大学博士毕业。
最后一位作者是土耳其企业家米勒夫·阿杜勒哈尤格鲁Melih Abdulhayoğlu。他是科摩多Comodo的CEO于1998年创立了公司。这篇论文挂了他的名字是因为使用了科摩多的数据。
论文的主要贡献
我们首先来看一下这篇文章的主要贡献。类似地,按照我们周一分析最佳研究论文的思路,首先必需弄明白,这篇文章主要解决了什么场景下的问题。
这篇文章希望解决的问题描述起来很直观那就是如何有效地监测安卓手机系统下的恶意软件。经预测到2019年全球的手机市场中77.7%将是智能手机这里面安卓系统的市场占有率至少是80%。由于安卓系统的开放性以及分散的各类安卓手机软件市场对安卓软件进行监控和分析存在很大难度。各类恶意软件在安卓生态系统中可以说层出不穷比如Geinimi、DroidKungfu以及Lotoor等等。更悲观的统计来自赛门铁克Symantec的《互联网安全威胁报告》认为五分之一的安卓软件是恶意软件。
之前很多恶意软件的分析和检测都是基于某种“指纹签字”技术,然而这种技术常常被恶意软件开发者的新手段绕过。因此,寻找更加复杂有效的检测方式就成了各种信息安全公司所追逐的目标。
这篇论文的主要贡献是根据安卓的API提出了一种新的基于结构性异构信息网络的方法来对安卓程序的API模式进行更加复杂的建模从而能够理解整个安卓程序的语义。作者们还采用了多核学习Multi-Kernel Learning的方法在结构性异构信息网络的基础上对程序语义模式进行分类。
最后,文章提出的方法在科摩多的真实数据上达到了非常高的准确度,远远优于现在的一些主流方法。并且,科摩多已经在产品中部署了这个方法。
论文的核心方法
了解了这篇文章的目的和贡献,接下来,我就来剖析一下作者们提出的方法。
首先需要将安卓的程序代码转换为可以分析的形式。一般来说安卓的软件被打包为后缀名为Dex的Dalivik执行文件这个执行文件无法被直接分析。于是需要把这个执行文件通过一个叫 Smali 的反汇编器解析成Smali代码。这个时候软件的语义就能够通过Smali代码来解析了。作者们从Smali代码中提取所有的API调用通过对API的分析来对程序行为建模。
下一步就是要从繁复的API调用中摸索出这里面的规律。作者们这个时候构建了四类矩阵来表达API和某个App之间的基本特征
某一个App是否包含了某一个API
某两个API是否同时出现在某一段代码中
某两个API是否出现在同一个App中
某两个API是否使用了相同的调用方法。
可以看出这些矩阵可以抓住API和App之间的一个基本信息还可以抓住一系列API同时出现进行某种操作的特征信息。这些矩阵成了发现高阶规律的基础。
为了发现更加复杂的规律作者们在这里引入了一个工具叫异构信息网络。异构信息网络的概念最早由伊利诺伊大学香槟分校的数据挖掘权威韩家炜Jiawei Han和他当时的学生孙怡舟Yizhou Sun目前在加州大学洛杉矶分校任教提出。异构信息网络的核心思想就是希望能够表达一系列实体Entity之间的复杂规律。
传统的方法把实体表达成图Graph的节点实体之间的关系表达成节点之间的链接。这样的方式忽略了实体本身的不同以及关系的类型也有所不同。异构信息网络就是更加完整和系统地表达多种不同实体和实体关系的一种建模工具。在这篇文章中有两类实体App和API调用有四类关系和刚才定义的矩阵相同。而刚才定义的矩阵其实就是这四类关系所对应的图的邻接矩阵。
把App和API的关系描述成为异构信息网络以后下面的工作就是定义更高阶的规律关系。为了更好地定义这些复杂关系作者们使用了一个叫元路径Meta-Path的工具。元路径其实是提供一个描述性的模板语言来定义高阶关系。
比如我们可以定义一个从App到API再到App的“路径”用于描述两个App可能都含有相同的API调用。这个路径就可以帮助我们从最开始的四个矩阵推出更加复杂的矩阵来表达一些信息。那么根据人们的领域知识这里就是安全领域作者们就定义了多达16种元路径从而全面捕捉App和API之间的各种关系。
利用异构信息网络和元路径构建了程序的语义表达后下一步就是进行恶意软件的判别。这里作者们采用了多核学习的思想。简而言之就是把之前通过元路径所产生的新矩阵看作一个“核”。这里的多核学习就是要学习一个线性的分类器特征是每个App到某一个核的一个非线性转换这个转换是在学习过程中得到的。换句话说这个多核学习的流程要同时学习一个分类器来判断一个程序是不是恶意程序还需要在这个过程中学习从App到核的转换。
方法的实验效果
作者们使用了科摩多的数据集收集了2017年两个月里1834个App的信息。正常程序和恶意程序几乎各一半。另外还有一个数据集包含3万个App信息也几乎是正例负例各一半。从实验结果来看结合了16个定义好的元路径的多核学习能够实现高达98%的F1值。F1值可以认为是精度和召回的一个平衡同时准确率也是高达98%。
文章还比较了一些其他比较流行的方法比如神经网络、朴素贝叶斯Naïve Bayes分类器、决策树以及支持向量机这些方法基本的F1值都在85%和95%之间和文章提到的方法有较大差距。另外文章还和现在的一些商业软件比如Norton、Lookout、CM做了比较。这些商业软件的准确度也在92%上下徘徊。因此,文章所采用的方法的确比之前的很多方法都更有效果。
小结
今天我为你讲了KDD 2017年的最佳应用类论文。这篇论文提出了如何来分析安卓手机软件的行为进而检测手机应用是否是恶意软件。一起来回顾下要点第一简要介绍了这篇文章的作者群信息。第二详细介绍了这篇文章要解决的问题以及贡献。第三简要分析了文章提出方法的核心内容 。
总结一下,文章解决的问题就是如何有效监测安卓手机系统下的恶意软件,主要贡献是提出了一种新的基于结构性异构信息网络的方法,来理解安卓程序的语义。使用元路径的工具定义复杂关系,还采用了多核学习的方法完成恶意软件的判别。论文使用科摩多的数据集,验证了所提出的方法比当下流行的一些其他方法都更加有效。
最后,给你留一个思考题,文章中提到的多核学习方法这个步骤,是不是必需的?能否换成其他方法呢?
拓展阅读HinDroid: An Intelligent Android Malware Detection System Based on Structured Heterogeneous Information Network

View File

@ -0,0 +1,80 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
007 精读2017年ICCV最佳研究论文
ICCVInternational Conference on Computer Vision国际计算机视觉大会是每两年举办一次的计算机视觉顶级会议。从1987年开始举办已经有30年的历史。2017年的ICCV大会于10月22日至29日在意大利的水城威尼斯举行。
在每届ICCV大会上都会从众多学术论文中挑选出两篇最有新意和价值的论文作为最佳研究论文和最佳学生论文。ICCV的最佳论文奖又叫作“马尔奖项”Marr Prize是为了纪念英国的心理学家和神经科学家大卫·马尔David Marr而设计的奖项。马尔将心理学、人工智能和神经生理学的研究成果结合起来提出了全新的关于视觉处理的理论他被认为是计算神经科学的创始人。
今天我就来带你认真剖析一下ICCV 2017年的最佳研究论文“Mask R-CNN”。这篇论文是一个集大成的工作介绍了一个新的方法可以用于同时解决图像的“物体识别”Object Detection、“语义分割”Semantic Segmentation和“数据点分割”Instance Segmentation的工作。
什么意思呢?通俗地讲,那就是给定一个输入的图像,利用这篇论文提出的模型可以分析这个图像里究竟有哪些物体,比如是一只猫,还是一条狗;同时能够定位这些物体在整个图像中的位置;并且还能针对图像中的每一个像素,知道其属于哪一个物体,也就是我们经常所说的,把物体从图像中“抠”出来。
作者群信息介绍
这篇论文的作者全部来自Facebook的人工智能研究院Facebook AI Research
第一作者就是近几年在计算机视觉领域升起的学术之星何恺明博士Kaiming He。他于2016年加入Facebook人工智能研究院之前在微软亚洲研究院进行计算机视觉的研究工作他还是CVPR 2016年和CVPR 2009年的最佳论文得主。目前何恺明在计算机视觉领域有三项重大贡献。
第一他与其他合作者发明的ResNet从2016年以来成为了计算机视觉深度学习架构中的重要力量被应用到了计算机视觉以外的一些领域比如机器翻译和AlphaGo等相关论文引用数超过5千次。
第二他与其他合作者开发的Faster R-CNN技术发表于NIPS 2015上是图像物体识别和语义分析的重要技术手段也是今天我们要讨论的这篇论文的基础论文引用数超过2千次。
第三他与其他合作者在ICCV 2015年发表论文《深入研究整流器在ImageNet分类上超越人类水平》Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification研究了一种改进的ReLURectified Linear Unit线性整流函数又称修正线性单元结构从而达到了更好的效果论文引用数近2千次。
第二作者乔治亚⋅吉克里奥夏里Georgia Gkioxari目前是Facebook人工智能研究院的博士后研究员。乔治亚可以说是师出名门在Facebook工作之前才从加州大学伯克利毕业师从计算机视觉泰斗吉腾德拉⋅马利克Jitendra Malik。乔治亚之前还分别在谷歌大脑和谷歌研究院实习过。在过去几年中乔治亚在计算机视觉界已经发表了多篇高质量论文。
第三作者皮奥特⋅多拉Piotr Dollár是Facebook人工智能研究院的一名经理。2007年从加州大学圣地亚哥分校获得博士学位2014年加入Facebook这之前在微软研究院工作。皮奥特长期从事计算机视觉的研究工作。
最后一个作者罗斯⋅吉尔什克Ross Girshick是Facebook人工智能研究院的一名科学家。他于2012年毕业于芝加哥大学获得计算机博士。罗斯之前也在微软研究院工作也曾在计算机视觉泰斗吉腾德拉的实验室里担任博士后的研究工作。
论文的主要贡献
我们首先来看一下这篇文章的主要贡献。还是要先去理解,这篇文章主要解决的是一个什么场景下的问题。
刚才我们已经简单地谈到了这篇文章要解决的问题就是对输入图像的物体识别、语义分割以及数据点分割是这三个任务的一个集成。在之前的一个工作中“Faster R-CNN”[1]已经解决了前两个任务。那么这篇论文其实就是Faster R-CNN在逻辑上的一个扩展。然而这个扩展也并不是那么显而易见的。为了解决数据点分割的任务Mask R-CNN提出了深度学习网络结构上的一个创新这是本篇论文的一个重要贡献。
本文提出的模型不仅在数据点分割的标准数据集COCO上表现强劲击败所有之前提出的模型以外还能够很容易地扩展到其他的任务中比如“人体形态估计”Human Pose Estimation从而奠定了Mask R-CNN作为一个普适性框架的地位。
论文的核心方法
要想理解Mask R-CNN的核心思想我们就必须先简要理解Faster R-CNN的一些基本原理。刚才说到了Mask R-CNN就是在其之上的一种改进和延伸。
Faster R-CNN对于每一个输入图像中的每一个候选物体都会有两个输出一个是候选物体的标签比如猫、狗、马等还有一个就是一个矩形框Bounding Box用于表达这个物体在图像中的位置。第一个标签输出是一个分类问题Classification而第二个位置预测则是一个回归问题Regression
Faster R-CNN分为两个阶段Stage。第一个阶段叫作“区域提交网络”Region Proposal Network目的是从图像中提出可能存在的候选矩形框。第二个阶段从这些候选框中使用一个叫“RoIPool”的技术来提取特征从而进行标签分类和矩形框位置定位这两个任务。这两个阶段的一些特性可以共享。
区域提交网络的大体流程是这样的。最原始的输入图像经过经典的卷积层变换之后形成了一个图像特征层。在这个新的图像特征层上模型使用了一个移动的小窗口Sliding Window来对区域进行建模。这个移动小窗口有这么三个任务需要考虑。
首先移动小窗口所覆盖的特征经过一个变换达到一个中间层然后经过这个中间层直接串联到两个任务也就是物体的分类和位置的定位。其次移动的小窗口用于提出一个候选区域有时候也叫ROI也就是矩形框。而这个矩形框也参与刚才所说的定位信息的预测。
当区域提交网络“框”出了物体的大致区域和类别之后模型再使用一个“物体检测”Object Detection的网络来对物体进行最终的检测。在这里物体检测实际是使用了Fast R-CNN[2]的架构。所以也就是为什么Faster R-CNN的名字里用“Faster”来做区分。Faster R-CNN的贡献在于区域提交网络和Fast R-CNN的部分也就是物体检测的部分达到了共享参数或者叫共享网络架构这样也就起到了加速的作用。
Mask R-CNN在第一部分完全使用Faster R-CNN所提出的区域提交网络在此基础上对第二部分进行了更改。也就是说不仅仅在第二部分输出区域的类别和框的相对位置同时还输出具体的像素分割。然而和很多类似工作的区别是像素分割、类别判断、位置预测是三个独立的任务并没有互相的依赖这是作者们认为Mask R-CNN能够成功的一个重要的关键。对比之前的一些工作像素分割成了类别判断的依赖从而导致这几个任务之间互相干扰。
Mask R-CNN在进行像素分割的时候因为要在原始的图像上进行分割因此需要在整个流程中保留原始图像的位置关系。这个需求是类别判断和位置预测所不具备的。而在Faster R-CNN中因为不需要这个需求因此类别判断和位置预测所依赖的信息是一个压缩过后的中间层。那么很明显Mask R-CNN依靠这个压缩层就不够了。在这篇文章中作者们提出了一个叫RoIAlign的技术来保证中间提取的特征能够反映在最原始的像素中。如果对这部分内容感兴趣建议你去细读文章。
方法的实验效果
作者们使用Mask R-CNN在目前流行的图像物体检测任务数据集COCO 2015和COCO 2016上做了检测相对于之前的这两个竞赛的冠军实验结果表明Mask R-CNN的精度都大幅度增加。在一个“平均精度”Average Precision的度量上Mask R-CNN比COCO 2015的最佳结果好了近13%而比COCO 2016的最佳结果好了4%可以说效果非常明显。在实验结果中作者们非常细致地测试了整个Mask R-CNN中每一个部件的效果。其中把三个任务分开、以及RoIAlign方法都有非常显著的作用证明了这些模型组件是优秀结果的必要步骤。
小结
今天我为你讲了ICCV 2017年的最佳研究论文这篇文章介绍了目前在图像物体识别中的最新算法Mask R-CNN的大概内容。
一起来回顾下要点:第一,我们简要介绍了这篇文章的作者群信息。第二,我们详细介绍了这篇文章要解决的问题以及贡献 。第三,我们简要地介绍了文章提出方法的核心内容 。
最后给你留一个思考题你觉得为什么Mask R-CNN包括之前的一些工作要把物体检测的工作分为两步第一步先分析一个大的矩形框第二步进行物体检测这两步都是必要的吗
参考文献
Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. IEEE Trans. Pattern Anal. Mach. Intell. 39, 6 (June 2017), 1137-1149, 2017.
Ross Girshick. Fast R-CNN. Proceedings of the 2015 IEEE International Conference on Computer Vision (ICCV) (ICCV 15). IEEE Computer Society, Washington, DC, USA, 1440-1448, 2015.

View File

@ -0,0 +1,75 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
008 精读2017年ICCV最佳学生论文
周一我们认真剖析了ICCV 2017年的最佳研究论文“Mask R-CNN”。今天我们来分享ICCV 2017的最佳学生论文《焦点损失用于密集物体检测》Focal Loss for Dense Object Detection
可以说这篇文章是我们周一分享的最佳论文的孪生兄弟。首先这篇论文的作者群也基本是Facebook人工智能研究院的班底。其次这篇文章解决的问题也很类似也是物体识别和语义分割只是不解决数据点分割的问题。
作者群信息介绍
除第一作者外这篇论文的作者都来自Facebook的人工智能研究院。
第一作者林仓义Tsung-Yi Lin目前在谷歌大脑Google Brain团队工作发表论文的时候在Facebook人工智能研究院实习。林仓义在台湾国立大学获得本科学位在加州大学圣地亚哥分校获得硕士学位2017年刚从康奈尔大学博士毕业。博士期间他师从计算机视觉专家塞尔盖⋅比隆基Serge Belongie发表了多篇高质量的计算机视觉论文。
第二作者皮里亚⋅高耶Priya Goyal是Facebook人工智能研究院的一名研究工程师。在加入Facebook之前皮里亚从印度理工大学获得了学士和硕士学位。
第三作者罗斯⋅吉尔什克Ross Girshick第四作者何恺明还有最后一个作者皮奥特⋅多拉Piotr Dollár这三位作者也是周一的最佳研究论文的作者我们已经介绍过了你可以回去再了解一下。
论文的主要贡献
我们首先来看一下这篇文章的主要贡献。
刚才我们已经简单地谈到了,这篇文章要解决的问题,就是对输入图像进行物体识别和语义分割这两个任务。对于这个问题有两种主要的思路,这两个思路都在不断地发展。
第一种思路,那就是直接从输入图像入手,希望能够从输入图像中提取相应的特征,从而能够直接从这些特征中判断当前的图像区域是否属于某个物体,然后也能够一次性地找到矩形框的位置用于定位这个物体。
这种思路虽然直观但有一个致命的问题那就是对于一个输入图像来说大量的区域其实并不包含目标物体因此也就可以被认为是学习过程中的“负例”Negative Instance。如何有效地学习这么一个“不均衡”Imbalanced的数据集是这种思路需要考虑的问题。
因为这个因素,研究者们就开始思考另外一种思路,那就是先学习一个神经网络用于找到一些候选区域,然后在第二个阶段根据候选区域再去最终确定物体的类别和矩形框的位置。
在最近几年的实际评测中基于两个阶段Two-stage的模型包括我们在上一篇分享中提到的Faster R-CNN以及其他变种一般都有比较好的表现。而基于一个阶段One-stage的模型在这篇文章发布之前还不能达到两个阶段模型的水平。
本篇文章提出了一个新的目标函数叫作“焦点损失”Focal Loss用于取代传统的“交叉熵”Cross Entropy的目标函数。这个新目标函数的主要目的就是让一个阶段模型能够在正负例比例非常不协调的情况下依然能够训练出较好的模型从而使得一个阶段模型在效果上能够和两个阶段模型媲美。同时文章还提出了一种比较简单易用的深度网络结构可以简单地训练出整个模型。
论文的核心方法
在这一节,我们来讲一讲“焦点损失”的含义。因为这是一个新的目标函数,建议你还是阅读原文来理解这个目标函数的数学性质。这里,我们针对这个新的目标函数进行一个高度概括性的解释。
我们从普通的二分分类问题中常用的交叉熵我们简称为CE目标函数说起。首先我们认为模型预测类别是正例的概率是P。CE目标函数基本上可以认为是这个概率的对数的负数也就是在机器学习中经常使用的“负对数似然”Negative Log Likelihood。模型的目的是最小化“负对数似然”从而学习模型参数。
作者们观测到这么一个现象那就是CE目标函数在P是一个比较大的数值时比如大于0.5的时候依然会有一个“损失”Loss。什么意思呢就是说某一个数值点我们现在已经知道它可能是正例的可能性大于0.5了,也就是我们其实已经大体知道这个结果了,但是目标函数依然认为学习算法需要去对这个数据点进行作用,从而减少这个“损失”。
这其实也就是整个问题的核心那就是传统的CE目标函数并没有指导机器学习算法用在“应该使劲”的地方而是分散到了一些原本已经不需要再去关注的数据点上。当然这也就造成了学习困难的局面。
这篇文章提出的“焦点损失”对CE进行了一个看上去很小的改动那就是在CE目标函数的“负对数似然”之前乘以一个“相反概率”的系数并且这个系数有一个指数参数去调节这个系数的作用。如果你对这个内容感兴趣建议你参考原论文查看细节。如果对细节不感兴趣那重点理解这个目标函数的作用就可以了。
“焦点损失”有两个性质。第一当一个数据点被分错类的时候并且这个数据点的真实概率很小那么损失依然和CE类似。当一个数据点的真实概率趋近1也就是原本算法就可以比较自信的时候损失会相对于CE变小。第二刚才所说的系数起到了一个调节作用决定究竟需要对哪些“容易分类的数据点”降低损失到什么程度。
文章在新的“焦点损失”的基础上提出了一个新的网络结构叫RetinaNet使用一个阶段的思路来解决物体检测和语义分割的任务。这里我简要概括一下RetinaNet的一些特点。
第一RetinaNet使用了ResNet来从原始的输入图像中抽取基本的图像特性。
第二文章采用了一种叫FPNFeature Pyramid Net的网络架构来对图像的不同分辨率或者不同大小的情况进行特性抽取。
第三和Faster R-CNN相似的RetinaNet也是用了Anchor的思想也就是说从小的一个移动窗口中去寻找一个比较大的矩形框的可能性。
最后RetinaNet把从FPN抽取出来的特性用于两个平行的网络结构一个用于物体分类一个用于矩形框的定位。这一点很类似两个阶段模型的做法。
方法的实验效果
作者们使用RetinaNet在目前流行的图像物体检测任务数据集COCO上做了检测。首先RetinaNet的“平均精度” Average Precision要好于之前的所有一个阶段模型初步验证了提出的目标函数和网络架构的优越性。并且在实验中作者们分别使用了不同的“焦点损失”指数参数来展示这个参数对于结果的重要性。同时作者们还展示了RetinaNet能够比Faster R-CNN这种经典的两阶段模型以及一些变种在实验结果上至少持平甚至要更好。
小结
今天我为你讲了2017年ICCV的最佳学生论文这篇文章介绍了目前在图像物体识别中的最新目标函数“焦点损失”的大概内容。
一起来回顾下要点:第一,我们简要介绍了这篇文章的作者群信息。第二,我们分析了这篇文章要解决的问题和主要贡献 。第三,我们详细介绍了文章提出方法的核心内容 。
最后,给你留一个思考题,除了这篇文章介绍的更改目标函数的方法,针对不平衡的数据集,你觉得还有哪些通常使用的方法?

View File

@ -0,0 +1,69 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
009 如何将深度强化学习应用到视觉问答系统?
本周我们一起来剖析ICCV 2017的论文周一和周三分别讲了最佳研究论文和最佳学生论文。今天我们来分享一篇完全不同的文章题目是《使用深度强化学习研究协作性视觉对话机器人》Learning Cooperative Visual Dialog Agents with Deep Reinforcement Learning讲的是如何通过“深度强化学习”来解决视觉问答系统。
作者群信息介绍
第一作者阿布谢克·达斯Abhishek Das是一名来自佐治亚理工大学的在读博士生。他于2017年和2018年在Facebook人工智能研究院实习已经获得了Adobe的研究奖学金和Snapchat的研究奖学金可以说是一名非常卓越的博士生。之前在智能系统特别是在利用强化学习研究智能机器人会话系统的领域已经发表了多篇论文。
共同第一作者萨特维克·库托儿Satwik Kottur来自卡内基梅隆大学博士第四年研究领域为计算机视觉、自然语言和机器学习。2016年暑假他在Snapchat的研究团队实习研究对话系统中的个性化问题。2017年暑假在Facebook研究院实习研究视觉对话系统。近两年萨特维克已在多个国际顶级会议如ICCV 2017、ICML 2017、IJCAI 2017、CVPR 2017、NIPS 2017以及EMNLP 2017发表了多篇高质量研究论文可以说是一颗冉冉升起的学术新星。
第三作者何塞·毛拉José M. F. Moura是萨特维克在卡内基梅隆大学的导师。何塞是美国工程院院士和IEEE院士长期从事信号处理以及大数据、数据科学的研究工作。他当选2018年IEEE总裁负责IEEE下一个阶段的发展。
第四作者斯特凡·李Stefan Lee是来自乔治亚理工大学的研究科学家之前在弗吉尼亚理工大学任职长期从事计算机视觉、自然语言处理等多方面的研究。斯特凡2016年博士毕业于印第安纳大学计算机系。
第五作者德鲁·巴塔Dhruv Batra目前是Facebook研究院的科学家也是乔治亚理工大学的助理教授。德鲁2010年博士毕业于卡内基梅隆大学2010年到2012年在位于芝加哥的丰田理工大学担任研究助理教授2013年到2016年在弗吉尼亚大学任教。德鲁长期从事人工智能特别是视觉系统以及人机交互系统的研究工作。文章的第四作者斯特凡是德鲁长期的研究合作者他们一起已经发表了包括本文在内的多篇高质量论文。
论文的主要贡献
我们首先来看一下这篇文章的主要贡献,理解这篇文章主要解决了什么场景下的问题。
这篇论文是建立在这么一个虚拟“游戏”Game的基础上的。
首先我们有两个“机器人”Agent一个叫“Q机器人”Q-Bot一个叫“A机器人”A-Bot。这个游戏的规则是这样的。一开始A机器人得到一张图片IQ机器人一开始得到I的一个文字描述c而并不知道图片本身。然后Q机器人开始问A机器人关于图片的各种问题A机器人听到问题之后进行作答帮助Q机器人更进一步理解图片。Q机器人最终的目的是能够把这个图片“猜到”也就是说能够把图片从一个数据库中“提取”Retrieve出来。当然在实际的操作中这一步可以是去衡量Q机器人对于图像的理解也就是“描述图像的向量”和“真实图像的描述向量”的差距差距越小说明越成功。
那么你可以看到这其实是一个很难的问题。Q机器人必须从A机器人提供的图像文字描述中寻找线索并且能够提出有意义的问题。而A机器人必须了解Q机器人到目前为止究竟理解什么信息才能帮助Q机器人成功。
整个游戏或者叫任务常常被称作是“协作性的视觉对话系统”Cooperative Visual Dialog System。这篇文章的主要贡献就是第一个利用深度加强学习来对这样一个系统进行建模并且与之前的非加强学习模型相比提出的解决方案极大地提高了准确度。
论文的核心方法
那么,既然要把整个问题使用深度强化学习来建模,我们肯定就需要定义强化学习的一些构件。
第一我们来看看模型的“动作”Action。两个机器人的动作空间就是自然语言的词汇表。因为在这个游戏或者说在强化学习的每一轮中两个机器人都是需要根据现在的状态来进行下一步的动作也就是问问题的语句。这是一个离散的动作空间。除此以外Q机器人还需要在每一轮之后对自己理解的图像向量进行更新。那么这是一个连续的动作空间。
第二我们来看看模型的“状态”State。对于Q机器人来说每一轮的状态是一个这些信息的集合包括最初的A机器人提供的图像的描述以及到目前为止所有轮问答的每一句话。而A机器人的状态空间则包括最初的图像本身图像的描述以及到目前为止所有轮的对话。
第三我们来看看模型的“策略”Policy。对A机器人和Q机器人来说都是要根据现在的状态来评估下面的语句的可能性。这里评估的机制其实分别用两个神经网络来学习A机器人和Q机器人的策略。同时Q机器人还需要有一个神经网络来根据现有的A机器人的回答来更新对图像的一个认识。
第四我们来看一看模型的“环境”Environment和“回馈”Reward。在这个游戏里两个机器人都会得到一样的回馈而这个回馈的根据是Q机器人对图像的认识所表达的向量和图像的真实表达向量的一个距离或者更加准确地说是距离的变化量。
以上就是整个模型的设置。
那么我们来看两个模型策略神经网络的一些细节。首先对于Q机器人来说有这么四个重要的部件。第一Q机器人把当前轮自己问的问题和A给的回答当做一个组合用LSTM进行编码产生一个中间变量F。第二当前步骤的F和以前的所有F都结合起来再经过一个LSTM产生一个中间变量S。然后第三步我们根据这个S来产生下一步的语句以及当前对图像的一个重新的认识。也就是说F其实就是一个对历史所有状态的描述而S则是一个压缩了的当前描述信息并且我们使用S来作为下一步的一个跳板。A机器人的策略神经网络的架构非常类似这里就不赘述了区别在于不需要去产生图像的理解。
整个模型采用了目前深度强化学习流行的REINFORCE算法来对模型的参数进行估计。
这篇文章其实有不少技术细节,我们在今天的分享里只能从比较高的维度帮助你进行总结,如果有兴趣一定要去阅读原文。
方法的实验效果
作者们在一个叫VisDial的数据集上做了实验。这个数据集有6万8千幅图像是从我们之前提到过的COCO数据集里抽取出来的并且提供了超过68万对问答。可以说这个数据集还是比较大型的。
文章比较了利用普通的监督学习以及“课程学习”Curriculum Learning的方法。从效果来看强化学习的效果还是很明显的。最直接的效果是强化学习能够产生和真实对话相近的对话效果而其他的办法比如监督学习则基本上只能产生“死循环”的对话效果不理想。不过从图像提取的角度来讲强化学习虽然比监督学习的效果好但是差距并不是特别明显基本上可以认为目前的差距依然是在误差范围内的。
小结
今天我为你讲了ICCV 2017的一篇有意思的文章。这篇文章介绍了如何利用深度强化学习来搭建一个模型去理解两个机器人的对话并能够理解图像信息。
一起来回顾下要点:第一,我们简要介绍了这篇文章的作者群信息。第二,我们详细介绍了这篇文章要解决的问题以及贡献 。第三,我们重点介绍了的文章提出方法核心内容 。
最后,给你留一个思考题,你认为把强化学习用在这样的对话场景中,难点是什么?

View File

@ -0,0 +1,63 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
010 精读2017年NIPS最佳研究论文之一如何解决非凸优化问题
机器学习与人工智能领域的顶级会议NIPSConference on Neural Information Processing Systems神经信息处理系统大会从1987年开始举办已经有30多年的历史。NIPS 2017大会于2017年12月4日到9日在美国加利福尼亚州的长滩Long Beach举行。
每年大会都会在众多的学术论文中挑选出几篇最有新意和价值的论文作为最佳研究论文。在NIPS 2017上一共有三篇论文获得了最佳论文的称号。今天我就来带你认真剖析一下其中的一篇《具有凸目标的基于方差的正则化》Variance-based Regularization with Convex Objectives。这篇论文的两位作者都是来自斯坦福大学的学者。
这篇文章理论性很强主要研究的是一种“健壮的优化问题”Robust Optimization也就是说我们在优化一个“损失函数”Loss Function的时候不仅要考虑损失函数的“均值”Mean还要考虑损失函数的“方差”Variance。然而一个既要考虑均值又要考虑方差的综合的损失函数往往是一个“非凸”Non Convex的问题。对于一般的非凸优化问题来说我们往往不能找到一个全局的最优解甚至是找到局部最优解也很困难。这篇文章就是要来解决这么一个问题。
作者群信息介绍
第一作者洪升⋅南空Hongseok Namkoong是斯坦福大学“运筹学”Operations Research的一名在读博士研究生。他的导师分别是约翰⋅达齐John C. Duchi和彼得⋅格林Peter W. Glynn。2013年到斯坦福之前南空在韩国的韩国科学与技术高级研究所Korea Advanced Institute of Science and Technology有时候又称为KAIST获得工业工程和数学学士学位。最近两三年南空已经在发表了两篇NIPS的文章包括这篇最佳论文以及一篇ICML的论文。
第二作者约翰⋅达齐John C. Duchi是南空的导师之一。达奇可以说是师出名门他于2007年从斯坦福本科毕业接着在斯坦福跟随机器学习权威达菲⋅科勒Daphne Koller拿到了计算机科学的硕士学位然后又到加州大学伯克利分校跟随统计学习权威迈克尔⋅乔丹Michael Jordan拿到了计算机科学的博士学位。在博士阶段的暑假里达奇还到Google研究院中追随约然⋅辛格Yoram Singer积累了非常有价值的实习经验。之后他来到了斯坦福大学担任统计和电气电子工程系的助理教授。
有了这些良好的基础达奇的学术成绩也是非常扎实。他于2010年获得了ICML最佳论文奖。紧接着2011年在Google实习期间的工作AdaGrad成为了现在机器学习优化领域的经典算法这个工作的论文有超过2500次的引用而且也是深度学习优化算法的一个重要基础。目前达奇所有论文的引用数超过6千次。
论文的主要贡献
我们首先来看一下这篇文章的主要贡献,理解文章主要解决了一个什么场景下的问题。
很多机器学习问题其实都可以最终归结于优化一个目标函数Objective Function或者有时候叫做损失函数Loss Function的问题。针对训练数据集上损失函数的优化即最大化或最小化并且在测试集上表现优异是可以被证明为最终能够较好“泛化”Generalization的一种体现。
那么通常情况下这个损失函数都是针对均值的一个描述比如在整个训练数据集上的平均误差或者说在整个训练数据集上的平均准确度。然而我们都知道在一些很“偏斜”Skewed的数据分布上均值并不是很好的一个数据描述。即便我们的函数能够在“平均”的情况下优化一个损失函数这个函数也有可能在一些甚至大部分数据点上表现得不尽如人意。
于是,研究人员就引入了“健壮的优化问题”。也就是我们希望损失函数在更多的点上有优异的表现。那么,损失函数的健壮性是用损失函数的方差来衡量的。也就是说,我们希望损失函数在不同数据点上的波动要小。
有了这个概念之后,下一步就显得比较自然了,那就是把损失函数的均值部分,也就是我们通常要做的部分和有方差的部分串联起来,形成一个新的目标函数。这个目标函数有两个部分,第一部分就是均值部分,第二个部分就是方差的部分,中间有一个自由的参数,把这两个部分衔接起来。这样,我们就有了一个既考虑均值又考虑方差的新的健壮化的优化问题。
然而一个既要考虑均值又要考虑方差的综合的损失函数往往是一个“非凸”Non Convex的问题。什么叫做非凸函数一个“凸”Convex问题可以简单理解为函数只有唯一的最小值并且我们具备有效算法来找到这个最小值。而对于非凸问题来说我们往往不能找到一个全局的最优解或者找到局部最优解也很困难。
健壮优化问题已经在之前的研究中提了出来,那么这篇文章的主要贡献在于,为健壮优化问题找到了一个“凸”问题的逼近表达,并基于此提出了一个优化算法,解决了这个新提出的凸问题的近似解。
这里,值得注意的一点是,对于非凸问题提出凸问题的近似表达,是解决非凸问题的一个重要思路。有很多经典的非凸问题,都是通过凸问题的近似来得到解决或者部分解决的。从这个思路来说,这篇文章是延续了解决这种问题的一贯的策略。
论文的核心方法
这篇论文的核心方法以及证明都有很强的理论性需要有一定的数学功底和类似研究背景才能更好地理解。如果对文章内容有兴趣建议不仅要阅读原本的NIPS论文还需要去阅读其附加的文档一共有50多页才能比较全面地理解这篇文章的细节。我们在这里仅仅从概念上做一个高度浓缩的概括。
作者们在文章中提出了一种叫“健壮化的正则风险”Robustly Regularized Risk的目标函数。这个新的目标函数是建立在一个叫“经验分布”Empirical Distribution上的“散度”Divergence。而这个新的健壮化正则风险是一个凸问题。
直白一点说这个健壮化的正则风险可以被认为是一个包含两项的式子这两项是在数据集上的损失函数的期望加上一个损失函数的方差。在这个新的两项的式子中期望和方差都是定义在数据的经验分布上的。于是这样就把这个新提出的风险式子和我们实际需要解决的问题挂上了钩。当然后面大段的论文就是要证明这两个式子之间的差距到底有多少是不是新的式子提供了一个比较“紧”的“界限“Bound
紧接着,这篇文章其实讨论了这个健壮化的正则风险可以写成一个更加简单的优化问题,然后文章在附录中提供了这个简化后的优化问题的求解。
方法的实验效果
虽然这篇文章的核心内容是一个理论结果或者是算法革新。但是这篇文章依然是在两个数据集中做了实验一个是在UCI ML的数据集上展示了提出的新的健壮化的目标函数达到了比一般的目标函数更好的效果另外一个则是在RCV1文本分类的问题上比一般的优化目标函数有更好的效果。
小结
今天我为你讲了NIPS 2017年的最佳研究论文之一文章非常理论化。文章的一个核心观点是希望能够通过对损失函数的均值和方差同时建模从而达到让目标函数健壮化的目的。
一起来回顾下要点:第一,我们简要介绍了这篇文章的作者群信息。第二,我们详细介绍了这篇文章要解决的问题以及贡献 。第三,我们简要地介绍的文章提出方法的核心内容 。
最后,给你留一个思考题,要想控制目标函数的预测结果的方差,除了本文提出的把均值和方差都设计到目标函数里,还有没有别的方法?

View File

@ -0,0 +1,57 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
015 WSDM 2018论文精读深度学习模型中如何使用上下文信息
今天我们继续来精读WSDM 2018的一篇论文《隐含交叉在循环推荐系统中利用上下文信息》Latent Cross: Making Use of Context in Recurrent Recommender Systems。这篇文章同样出自谷歌团队其核心思想是希望通过深度模型来模拟并实现在推荐系统中广泛使用的“交叉特征”Cross Feature的效果。
作者群信息介绍
这篇论文的所有作者都来自谷歌,我们这里对其中的主要作者做一个简单介绍。
文章的第一作者亚力克斯·布伦特Alex Beutel是谷歌的资深科学家于2016年加入谷歌。布伦特毕业于卡内基梅隆大学获得计算机科学博士学位师从机器学习的权威亚力克斯·斯莫拉Alex Smola
最后一位作者艾德·池Ed H. Chi是谷歌的主任科学家他拥有39项专利已经发表了110多篇论文。在加入谷歌之前池是帕罗奥图Palo Alto研究中心的主任研究员。池毕业于明尼苏达大学获得计算机科学博士学位。
论文的主要贡献
我们首先来看这篇文章的主要贡献,梳理文章主要解决了一个什么场景下的问题。
推荐系统经常需要对当下的场景进行建模有时候这些场景被称作“上下文”Context。在过去比较传统的方法中已经有不少方法是探讨如何利用上下文信息进行推荐的比如使用“张量”Tensor的形式进行建模还有一些方法是利用对时间特性的把握从而对上下文信息进行处理。
近些年,随着深度学习的发展,越来越多的深度学习模型被应用到推荐系统领域中,但还没有直接探究如何在深度学习模型中使用上下文。这篇文章就想在这一方面做一个尝试。
这里面有一个比较棘手的问题。过去,这样的上下文常常使用“交叉特性”,也就是两个特征的乘积成为一个新的特征。这样的方法在矩阵分解或者张量分解的模型中得到了非常广泛的使用。然而在深度学习中,过去的经验是不直接使用这样的特性。但是,在上下文非常重要的推荐系统中,不使用交叉特性的的结果,往往就是效果不尽如人意。
这篇文章提出了一个叫“隐含交叉”Latent Cross的概念直接作用在嵌入Embedding这一层从而能够在深度模型的架构上模拟出“交叉特性”的效果。
论文的核心方法
作者们首先探讨了推荐系统中一个常见的特性那就是利用交叉特性来达到一个“低维”Low-Rank的表达方式这是矩阵分解的一个基本假设。比如每一个评分Rating都可以表达成一个用户向量和物品向量的点积。
那么作者们就提出了这样一个问题作为深度学习的基石前馈神经网络Feedforward Neural Network是否能够很好地模拟这个结构呢
通过模拟和小规模实验作者们从经验上验证了深度学习的模型其实并不能很好地抓住这样的交叉特性所带来的“低维”表达。实际上深度学习模型必须依赖更多的层数和更宽的层数才能得到相同的交叉特性所达到的效果。对于这一点我们或多或少会感到一些意外。同时作者们在传统的RNN上也作了相应的比较这里就不复述了。
得到了这样的结果之后,作者们提出了一个叫作“隐含交叉”的功能。这个功能其实非常直观。传统的深度学习建模,是把多种不同的信息输入直接拼接在一起。“隐含交叉”是让当前的普通输入特性和上下文信息进行乘积,从而直接对“交叉特性”进行建模。
这样做的好处是不言而喻的。之前,我们寄希望于深度学习模型自身能够学习到这样的交叉关系。而现在,作者们直接让上下文信息作用于输入信息和其他的中间特征,使得上下文信息的作用得到了提升。
这篇文章提出的办法可以说是第一个尝试解决传统推荐系统的一些想法,使之移植到深度学习的语境中。
方法的实验效果
这篇文章使用了谷歌的Youtube数据来做实验。作者们比较了一系列的方法得出的结论是RNN配合“隐含交叉”比仅仅使用RNN的效果要好2%~3%,这个提升已经是一个非常可观的数字了。
小结
今天我为你讲了WSDM 2018的一篇来自谷歌团队的文章这篇文章介绍了在传统推荐系统的模型中比如矩阵分解等都有的交叉特性如何应用在深度学习中。
一起来回顾下要点:第一,我们简要介绍了这篇文章的作者群信息;第二,我们详细介绍了这篇文章要解决的问题以及贡献 ;第三,我们分析了文章提出方法的核心内容以及实验结果。
最后,给你留一个思考题,深度学习模型在默认状态下并不能很好地抓住交叉特性,这是深度模型的问题吗?

View File

@ -0,0 +1,69 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
016 The Web 2018论文精读如何对商品的图片美感进行建模
“万维网大会”The Web Conference 2018前身叫作“国际万维网大会”International World Wide Web Conference从1994年开始举办已有20多年的历史了在Google学术排名上是“信息系统”排名第一的国际顶级学术会议。
从万维网大会最初举办开始,这个会议就成为了互联网方面独一无二的权威学术会议。会议包含搜索、推荐、广告、数据库、信息提取、互联网安全等诸多领域的优秀论文,每年都吸引着上千名世界各地的学者和工程师来分享他们的最新研究成果。
2018年的万维网大会于4月23日~27日在法国里昂举行。整个会议收录了171篇论文还有27个研讨班Workshop、19个讲座Tutorial、61个展板论文Poster和30个演示Demo
万维网大会的一大特点就是论文成果涵盖了非常广的领域。要在这些论文中找到有价值的学习信息是一件非常耗时、很辛苦的任务。这里给你分享几篇我认为今年这个会议上最有价值的论文,希望能起到抛砖引玉的作用。
今天我们就来看一篇优秀论文提名题目是《基于美感的服装推荐》Aesthetic-based Clothing Recommendation。这篇论文一共有六位作者除了两位分别来自新加坡国立大学和美国的埃默里大学之外绝大多数作者都来自清华大学。
论文的主要贡献
在现代的电商推荐系统中商品特别是服装服饰的图片其美观和质量是用户进行购买决策的关键参考因素。不少过去的商品推荐系统已经考虑了图片的属性特别是尝试同时利用图片信息和文字信息来实现多模Multi-Modal数据理解的目的从而能够进行更加智能的推荐。不过当前的大多数方案都只是考虑基本的图片特性。
从思路上来说大多数的类似工作都是利用某种深度神经网络提取图片特性然后和其他特性例如我们说过的文本信息加以组合从而能够扩宽我们对商品信息的提取。这样提取出来的图像特征自然没有显式地对图像的“美感”Aesthetic进行建模。
这篇文章的作者们认为,商品图片的“美感”是非常重要的属性,针对美感进行建模会有更显著的商品推荐效果。概括来说,这篇论文的一个贡献就是提供了一种模型,来对图片的美感和一般性的图片语义特性同时进行建模。这是一个在过去的工作中都没有的创新点,我们接下来会详细说明一这个模型的架构。
当作者们提取出了图片的美感信息以后接下来的一个问题就是如何利用这些特性。这篇论文使用了张量分解Tensor Factorization的思路。我们在前面介绍推荐系统的时候曾经提到过张量分解是一种很有效且常用的利用上下文语义信息的推荐模型。和一些之前的工作类似这里作者们采用了三维的张量来表达用户、商品和时间之间的关系。同时作者们还把图片信息有效地结合到了张量分解中从而能够利用美感信息来影响推荐结果。
论文的核心方法
了解了这篇论文的大体思路以后,我们现在来看看论文的第一个核心部件:如何利用深度神经网络来提取图片的美感信息?
首先这篇论文提出的模型假设对于每一个商品我们都有一个综合的美感标签并且还有一个细节标签来表达这个商品图案的“图像风格”Style。美感的综合标签是一个1~10的打分而图像风格则是文字的图像特征比如“高曝光”、“对比色”等。那么我们需要一个神经网络模型来同时对美感标签和细节的图像风格进行建模。
具体来说文章提出的模型分为了两个层次。第一个层次是用来解释细节的图像风格。在本文采用的数据中一共有14种图像风格作者们就用了14个子网络Sub Network来针对这些风格。每个风格都对应一个独立的子神经网络。每一个子神经网络都是标准的“卷积网络”CNN。他们的目标是尽可能地学习到特性来表示每个细节的图像风格。
当我们有了第一层的14个子网络之后再把这些子网络学习到的特性都整合起来形成中间特性层然后再经过一个卷积网络从而学习到一个对商品的整体美感评分进行解释的神经网络。
在文章中作者们提到这两个层次的神经网络并不是分类进行训练的而是在一个整体中进行训练。意思就是说我们同时训练底层的针对图像风格的14个子网络的参数以及高层次的针对美感评分的网络的参数。
当我们得到了图片的美感信息之后,下一步,就来看一下如何利用张量分解来进行商品推荐。
相比于传统的张量分解在这篇文章中作者们提出了一种新颖的针对商品推荐的张量表达模式叫作“动态协同过滤”Dynamic Collaborative Filtering或简称 DCF。
DCF认为每一个用户对于某个商品的购买取决于两个方面的因素。第一用户是否对这个商品有喜好。第二这个商品是不是符合时间维度上面的“流行度”。作者们认为只有当这两个条件同时满足的时候也就是用户喜欢某个当季的商品时才会做出购买的决定。因此作者们使用了两个矩阵分解来分别代表这两个假设。
第一个矩阵分解是针对用户和商品这个矩阵,这里我们会学习到用户对商品的喜好度。第二个矩阵分解是针对时间和商品这个矩阵,这里我们会学习到时间和商品的流行度。然后,作者把这两个矩阵分解(或者说是把两个矩阵)相乘,这就得到了一个张量,来表达用户在时间维度上对商品的喜好。
那么,如何把刚才学习到的图片美感信息给融入到这个新的张量学习框架下呢?作者们是这么做的,针对我们刚才所说的两个矩阵分解进行“扩展”。
刚才我们说,这个张量分解是基于一个假设,那就是用户在时间维度上的购买决定取决于,用户是否对这个商品有喜好,以及这个商品是不是符合时间维度上面的“流行度”。我们用了两个矩阵分解来表达这两个假设。每一个矩阵分解都是把一个大的矩阵分解成两个向量,比如用户和商品的矩阵就被分解为用户特性和商品特性。
基于此,作者们就在这个用户和商品的矩阵后面,再加上一个商品和图片美感信息矩阵,用来混合这两种信息。也就是说,我们刚才的第一个假设,用户对商品的好感,就被扩展成了两个矩阵的加和,用户和商品矩阵以及商品和图片信息矩阵,这两个矩阵的加和依然是一个矩阵。同理,时间和商品的流行度,被扩展成了时间和商品矩阵以及商品和图片信息矩阵的加和。也就是说,新的模型是两个矩阵的乘积组成的张量分解,而这里的每个矩阵分别又是两个矩阵的加和。这就是作者们最终提出的模型。
方法的实验效果
作者们在亚马逊的衣服数据集上做了实验来验证模型的有效性。这个亚马逊的数据集由将近四万的用户、两万多的商品和超过二十七万的购买信息构成。除了这篇文章提出的模型以外作者们还比较了一些其他算法例如完全随机的算法、只推荐最流行的商品、传统的矩阵分解模型以及只有基本图像信息但没有美感信息的算法。文章汇报了排序的精度NDCG以及“召回”Recall等指标。
从实验效果来看,这篇文章提出的模型要明显好于矩阵分解以及只有基本图像信息的算法,表明针对产品的图像美感进行建模是有价值的。并且,作者们提出的新的张量分解方法也被证明是切实有效的。
小结
今天我为你讲了今年万维网大会的一篇优秀论文。文章介绍了如何对商品的图片美感进行建模,以及如何把提取到的信息融入到一个基于张量分解的推荐系统中。
一起来回顾下要点:第一,我们详细介绍了这篇文章要解决的问题以及贡献;第二,我们简要地介绍了文章提出方法的核心内容;第三,我们简单分享了一下模型的实验成果。
最后,给你留一个思考题,有没有在没有标签情况下对图片的美感进行建模的呢?

View File

@ -0,0 +1,67 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
020 SIGIR 2018论文精读如何利用对抗学习来增强排序模型的普适性
今天我们继续来精读SIGIR 2018国际信息检索研究与发展大会的论文今天分享的是本次大会的最佳短论文标题是《使用对抗学习实现神经排序模型的跨领域正则化》Cross Domain Regularization for Neural Ranking Models using Adversarial Learning
非常有必要先简单介绍一下这篇文章的作者群,可以说这是一个“明星阵容”。
第一作者丹尼尔·科恩Daniel Cohen来自马萨诸塞大学阿默斯特分校University of Massachusetts Amherst是计算机科学系的博士生。2017年曾经在微软研究院剑桥分部实习。这篇获奖论文就是实习项目的总结。在深度学习模型在信息检索的应用这个方向上科恩已经发表了多篇论文。
第二作者巴斯卡·米特拉Bhaskar Mitra是微软研究院剑桥分部的主任级科学家。近些年米特拉在信息检索领域很活跃并且极力推动深度学习在这个领域的发展他在这个领域发表了很多篇论文在过去几年的很多学术会议上也主持了多个关于深度学习和信息检索相结合的讲座。
第三作者卡特娜·霍夫曼Katja Hofmann也是来自微软研究院剑桥分部的科学家。霍夫曼在信息检索领域的主要贡献是研究在线排序学习。
论文的最后一位作者布鲁斯·克罗夫特W. Bruce Croft是信息检索领域的学术权威也是科恩的博士导师。他是美国ACM院士还是信息检索领域最高学术荣誉奖杰拉德·索尔顿Gerard Salton奖的获得者。
论文的主要贡献
这篇论文主要涉及了这么两个重要概念的结合。第一个概念是“跨领域”Cross Domain信息检索第二个概念就是“对抗学习”Adversarial Learning
跨领域信息检索主要是指我们需要对一个以上的领域进行搜索。这里所说的领域主要是指不太相同,或者非常不同的文档集合。例如,如果我们要针对体育新闻、金融新闻等进行搜索,这里的“体育”和“金融”就是不同的领域。
跨领域信息检索的核心挑战是我们如何针对不同的领域都能进行有效搜索。比如,如果我们的排序算法本身或者其特性依赖于某个特定领域的信息,例如关于体育方面的搜索,需要依赖体育运动员的名字,那这种信息肯定会很少甚至完全不出现在另外一个领域。因此,依靠某些领域特有的信息很难做到真正的跨领域信息检索。
这篇文章的贡献是作者们认为,想要对跨领域的信息进行较好地检索,就需要训练这样的排序模型:不容易被某一个特定的领域所主导,同时也尽量不偏好某一个特定领域的具体信息。
如何实现这个目的呢?作者们使用了一种叫做“对抗学习”的技术。这也是这篇论文能够获奖的重要原因。
我在这里简单介绍一下对抗学习的原理。对抗学习最初的思想来自于利用深度产生模型解决计算机视觉中的一系列问题。最基本的对抗学习的模式主要是用于产生数据,而且是比较复杂的数据,例如图像。
对抗学习有两个模块,一个模块叫产生器,一个模块叫判别器。产生器的作用就是产生数据。判别器的作用是判断产生的数据是不是“真实数据”。产生器的最终目的是产生能够以假乱真的数据来扰乱判别器的判断能力。判别器的最终目的是不断提高判断能力从而能够分辨出数据的真假。
当然,最初的时候,产生器产生数据来源于随机噪声,因此判别器可以很容易地判断数据的真假。但是慢慢的,产生器产生的数据就会越来越接近真实数据,而判别器也很快在这个过程中得到优化,从而能够判别数据的真假。当然,这是一个动态的过程,最终,判别器和产生器的状态会稳定下来。
对抗学习这种思想最初被提出来的时候,主要是应用在计算机视觉领域中,用来产生以假乱真的图片。之后,这种技术被广泛应用到人工智能的各个领域。
这篇论文最大的一个贡献,就是利用了对抗学习的理念来增强学习到的排序模型的普适性,从而尽量避免学习到仅仅对一个领域有用的信息。
论文的核心方法
具体来说,这篇文章提出了这样一种方法。首先,我们有两套模型,一套是用于学习查询关键词和文档之间的相关关系的;一套是对抗学习的模型。然后,这两套模型的首要任务是更加精准地针对相关的文档和不相关的文档进行建模。这是整个框架里最主要的目标函数。
文章提出框架中新的模块是利用对抗学习来分别产生相关的和不相关的文档。具体来说,某一种类型的文档就像我们刚才提到的图片一样,我们希望能够利用产生器来进行产生这类数据。当然,我们依然需要判别器来引导产生器的工作。
在这篇文章中,相关的概念主要是看一个文档是不是某一个领域的。也就是说,我们希望对抗学习能够帮助识别某一个文档是不是来自于一个领域。当对抗学习模型被训练好的时候,对于查询关键词和文档的相关模型,我们就会利用一种叫做“梯度反转”的技术,强行偏离模型希望去拟合某一个领域的倾向。
从网络结构上看文章提出的模型查询关键词和文档都需要经过卷积层、提取层等变换然后进行俗称的“哈达马积”Hadamard product其实就是对应项乘积。这样文档和查询关键词所提取出来的隐含特征就结合在一起。这个结果之后又经过一系列稠密层的变换最终预测一个相关度的标签。对于对抗学习模型来说对抗中的判别器从刚才所说的架构中提取一些中间层作为输入然后判断这个文档是不是出现在某个领域中。
实验结果
在一个雅虎的搜索数据集以及另外两个数据集上,作者们对论文所提出的模型进行了实验。实验主要是看如果我们在某一个领域上训练出的模型,会不会在另外一个领域上表现优异。
一个不令人意外的结果是如果我们在全部领域上进行训练数据自然在所有的领域上效果都不错。当然文章展示了如果利用文章提出的方法针对某一个领域比如运动类文档在训练的时候完全移除所有的文档在测试集上依然有不错的表现。实验的结果比不进行对抗训练的效果要好5%以上。
小结
今天我为你讲了今年SIGIR上的最佳短论文。
一起来回顾下要点:第一,这篇论文主要涉及了两个概念,分别是跨领域信息检索和对抗学习,我们详细介绍了这篇文章的主要贡献,就是利用对抗学习的理念来增强所学排序模型的普适性;第二,我们简要地介绍了文章提出的方法核心内容,训练两套模型,利用对抗学习来分别产生相关的和不相关的文档;第三,我们简单介绍了论文的实验结果,进行对抗训练会有更好的效果。
最后,给你留一个思考题,除了使用对抗训练,你还能想到什么方法,能够比较好地学习到不属于某一个特定领域信息的排序模型?

View File

@ -0,0 +1,67 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
021 SIGIR 2018论文精读如何对搜索页面上的点击行为进行序列建模
今天我们将继续来精读SIGIR 2018的论文。
我们已经分享了SIGIR 2018的最佳论文介绍了如何对推荐系统中的偏差进行建模从而能够利用这种对偏差的理解来更加准确地对待基于流行度的推荐结果。周一我们分享了本次大会的最佳短论文主要讲了如何利用对抗学习的技术来让学习的排序模型更加“健壮”可以被应用到多个领域上。
今天我们分享的论文题目是《页面搜索的点击序列模型》A Click Sequence Model for Web Search
文章的第一作者阿列克谢·博里索夫Alexey Borisov来自俄罗斯的搜索引擎Yandex并且在阿姆斯特丹大学攻读博士学位。之前他已经发表过了多篇关于“点击模型”Click Model和深度学习模型结合的论文。
文章的第二作者马丁·万德纳Martijn Wardenaar、第三作者伊雅·马尔科夫Ilya Markov和最后的作者马顿·德里克Maarten de Rijke也都来自阿姆斯特丹大学。其中马顿是荷兰的计算机科学家欧洲的信息检索学术权威并且还是荷兰皇家科学院成员。
论文的主要贡献
我先对这篇论文的核心思想做一个提炼,就是利用深度学习模型,来对用户在搜索页面上的点击行为进行建模。
传统上这种对用户在搜索页面上的点击行为进行建模的思路就是“点击模型”。从2000年开始对点击模型的研究就成为了信息检索以及搜索领域中一个非常活跃的课题。在最近10年的时间里研究人员提出了几十种不同的点击模型。总体来说不同的点击模型主要是对不同的用户行为进行编码从而能够更加准确地对用户的点击行为进行预测。
在很多传统的点击模型中,为了简化模型,经常使用的一个假设是:针对每一个查询关键词,用户在搜索结果页只进行一次点击。在这种简化了的假设下,研究人员对用户的浏览、点击以及页面的偏差(例如位置偏差)进行建模,就会变得更加容易。然而,在很多场景中,这种假设就显得过于简化了。在同一个查询关键词的搜索结果页面下,很多用户都会点击多个结果。因此,对于多个点击结果的建模就变得重要起来。
这篇论文就是针对用户在搜索页面上的点击行为进行了序列建模,使得我们可以轻松地对每一个搜索页面进行预测,比如会有多少点击以及在什么位置点击等。
同时这篇论文还有一个贡献就是利用了深度学习中的循环神经网络RNN来对查询关键词的结果进行建模扩宽了传统的完全基于概率建模的点击模型在深度学习时代下的表现力。
论文的核心方法
论文提出方法的核心思路是针对每一个查询关键词,模型需要对所有可能的点击序列进行建模。这个任务是通过构建一个神经网络来完成的。
具体来说文章提出的模型有两个重要的模块编码器Encoder和解码器Decoder
编码器的作用是利用查询关键词和搜索结果为输入生成它们的“嵌入向量”Embedding Vector。近年来嵌入向量是深度学习建模中的一个重要技术手段它的目的往往是先把一些离散变量信息转化为连续信息。在这里查询关键词和搜索结果都可以首先表征为离散的输入信息然后需要映射到一个共同的语义空间。这可以被认为是一个中间结果或者在概率模型中这往往被认为是一个隐含变量。
解码器的作用是根据这个中间的嵌入向量表达下的查询关键词和搜索结果,然后决定在哪一个位置上可能会或者不会发生点击。这其实就是一个多类的分类问题。那么,怎么才能让解码器终止在某一个状态呢?作者们引入了一个特殊的符号代表序列的终止。这样,解码器也需要预测是否需要终止。类似的对解码器的操作在深度序列建模中十分常见。
可以说,作者们在设计编码器和解码器的结构上也是费了一番功夫的。
对于编码器而言,作者们认为一个好的嵌入向量必须包含当前的结果信息,以及当前结果周围的结果,或者说是上下文的信息,以及查询关键词的信息。这样,可以把每一个搜索结果都当做是一个独立的单元,有着足够丰富的信息来进行后面的建模。
因此,作者们首先把查询关键词和每一个搜索结果转换成为第一个层次的嵌入向量,组成一个大的第一层次的嵌入向量。然后,作者们利用这个第一层次的嵌入向量,并且引入了循环神经网络,来对当前结果前后的结果进行了两次编码,一次正向,一次逆向,从而形成了第二层次的嵌入向量。这个第二层次的嵌入向量就是最终表征每一个搜索结果的向量。
对于解码器而言作者们利用了“关注”Attention机制来对每一个搜索结果施加不同的权重或者说是关注度。每个时间点也就是每一次做“是否要点击”的决策之后都会重新生成一个关注向量或者说是一组新的关注权重。这里的核心是一个循环神经网络自己更新内部的状态变量并且根据关注向量以及输入的嵌入向量来预测下面一个点击的位置。
有了编码器和解码器之后一个难点是如何生成最有可能的点击序列。我们刚才提到了整个模型其实可以预测多种不同的点击序列。因此生成最优可能的K个序列就成为了必要的一个步骤。在这篇文章里作者们利用了“集束搜索”Beam Search的方法来近似生成最佳的K个序列在文章中K的值是1024。
模型的训练采用了标准的SGD以及Adam优化法同时作者们还采用了“梯度裁剪”Gradient Clipping的方式来防止在优化过程中发生“爆炸问题”Gradient Clipping
实验结果
作者们在Yandex俄罗斯的搜索引擎数据上进行了实验。因为之前没有类似的模型因此文章并没有可以直接比较的其他模型。作者们主要进行评估的地方是看历史数据中已经发生的点击序列会不会被正确预测出会不会出现在K个模型认为最有可能发生的点击序列中。这也就是作者们为什么选择K等于1024的原因因为在这种情况下接近97%的历史序列都在模型的预测序列中。
作者们还评估了模型能否预测出总的点击次数等一系列和点击预测有关的任务论文中提出的模型都能够以接近1的概率预测所有的点击并击败一些过去的基于概率的点击模型。可以说提出的模型的确可以对用户在搜索页面的点击行为进行有效的建模。
小结
今天我为你讲了今年SIGIR 2018的一个篇精彩论文。
一起来回顾下要点:第一,我们详细介绍了这篇文章要解决的问题以及贡献,主要是对用户在搜索页面上的点击行为进行序列建模;第二,我们简要介绍了文章提出方法的核心内容,主要是编码器和解码器两个模块;第三,我们简单介绍了论文的实验结果。
最后,给你留一个思考题,如果针对多个连续的查询关键词的点击行为进行建模,你能否用这篇论文提出的思路来扩展模型呢?

View File

@ -0,0 +1,71 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
022 CVPR 2018论文精读如何研究计算机视觉任务之间的关系
今年6月18 日~22日计算机视觉和模式识别大会CVPRConference on Computer Vision and Pattern Recognition在美国的盐湖城举行。CVPR大会从1985年开始举办已经有30多年的历史是计算机视觉领域的顶级会议。
最近几年CVPR大会发展成为了人工智能领域的盛会。受人工智能浪潮的影响大会的投稿数量和参会人数都有了明显增加。大会今年共收到了3300份论文投稿录取了979篇录取率将近30%。最终选出了70篇论文做口头报告224篇论文做快速汇报。近两年的参会人数都保持着近1千人的增长势头而今年更是达到了6千多人是2014年参会人数的3倍多。同时大会的审稿人也达到了惊人的1万人。
除了主会议以外CVPR大会还组织了21个讲座48个研讨班和博士论坛有超过115家公司的赞助。
想要在这么多论文里找到最有价值、最有影响力的信息可以说是大海捞针。我在这里为你精选了三篇今年CVPR的论文希望能够起到抛砖引玉的作用。
今天我们来分享大会的最佳论文题目是——Taskonomy: Disentangling Task Transfer Learning。
我先来简单介绍下论文的作者群。
第一作者阿米尔·扎米尔Amir R. Zamir目前是斯坦福大学和加州大学伯克利分校的博士后研究员已经在计算机视觉领域发表了30多篇论文还获得过CVPR 2016的最佳学生论文奖。
第二作者亚历山大·萨克斯Alexander Sax刚刚从斯坦福大学计算机系硕士毕业即将前往加州大学伯克利分校攻读博士已经以硕士生的身份发表了两篇CVPR论文。
第三作者沈博魁刚从斯坦福大学计算机系本科毕业即将在本校继续攻读博士。尽管是本科刚刚毕业他已经发表了2篇CVPR论文和1篇ICCV论文。
第四作者利昂奈达·圭巴斯Leonidas Guibas是斯坦福大学计算机系教授也是ACM和IEEE院士还是美国工程院和科学院院士。他的博士导师是图灵奖获得者高德纳Donald Knuth
第五作者吉腾德拉·马立克Jitendra Malik是加州大学伯克利分校计算机系教授也是ACM和IEEE院士并且是美国工程院以及科学院院士。马立克是计算机视觉方向的学术权威。
最后一位作者西尔维奥·萨瓦瑞斯Silvio Savarese是斯坦福大学计算机系的教授。他的研究方向是计算机视觉和计算机图形学。我们对华人学者李飞飞都很熟悉萨瓦瑞斯是李飞飞的丈夫。
论文的主要贡献
概括来说这篇论文主要是研究了计算机视觉任务之间的关系并且提出了一个计算框架能够定量地学习到这些任务之间的相似度。同时这些相似的任务可以帮助数据较少的任务达到比较好的效果。这其实就是迁移学习Transfer Learning的核心思想如何从已经学习到的任务或者领域迁移到数据较少、学习更加困难的任务或者领域。
很多研究人员在平时的研究过程中可能都会有这样的感觉一些计算机视觉任务之间有某种逻辑或者直觉上的联系。例如在计算机视觉界像物体识别Object Recognition、景深估计Depth Estimation、边界发掘Edge Detection以及姿势估计Pose Estimation这些任务大家都普遍认为它们是有关系的一系列任务。但是有一些视觉任务之间的关系则显得没有那么直观比如边界发掘和光影Shading如何帮助姿势估计就不得而知了。
如果我们单独来解决每一类任务,必然会有很大的挑战。这篇论文其实展示了,很多任务之间是有关联性的,而利用这些任务的关联性其实可以带来数据上的巨大便利。也就是说,我们可以利用更少的数据来学习到更多的任务。从这个角度来看,迁移学习也为新任务带来了希望,当我们没有大量的人工标注的数据时,依然能够在新任务上获得有效的结果。
这篇论文的另外一个重要贡献是提出了一个计算框架,这个框架并不需要事先准备的知识,比如人为地决定哪两个任务之间是有关联的,或者说,并不像之前的一些利用概率建模的方法,需要对任务之间的结构加以一个先验概率。这篇论文提出的框架完全从数据和结果的角度出发,从而避免了这些先验信息的不完整和不准确。
论文的核心方法
这篇论文提出的方法由四个组成部分,分别是:任务相关的建模、迁移建模、任务与任务关系归一化以及最后计算任务的关系图谱。每一个组成部分都有不同的目标。
首先,我们需要建立的是每一个独立任务自己的一个模型。这些模型有两个任务:第一就是尽可能地提高对自身任务的精度;第二就是在这个过程中,尽可能提取有代表性的中间表征结果,能够有助于迁移学习。
第二个部分就是迁移建模。这个部分主要是利用第一部分学习到的中间表现层,然后再在目标任务上学习到从原本的表现层到任务目标的迁移。这里面,除了一个原表现层,或者是原任务可以借鉴以外,作者们提出还可以利用多个原任务,来达到提升效果的目的。这样也就把多个任务和一个目标任务关联了起来。
第三个部分是任务关系的归一化。这一部分其实是这篇文章的一个亮点。当我们得到迁移学习的结果以后我们就可以利用每两个任务之间的关系来获得一个矩阵这个矩阵就完全表征了所有任务的联系。然而如果直接利用任务的迁移损失函数的值来刻画两个任务之间的关系那么每两个任务之间的这个数值其实是没办法直接比较的。如果我们采用机器学习界归一化数据的办法比如把数据归一到0和1之间也是不行的因为这样就完全没有考虑损失函数变化的速度和目标任务精度之间的关系。
所以,这篇论文的作者们提出了一种按照次序来做归一化的方法。简单来说,就是不再看两个任务之间的绝对的迁移数值,而是看在测试集上哪一个原任务相比于其他任务能够更多地获取目标任务的精度。这样所有的任务就可比了。总之,任务关系归一化的目的就是构建了任务与任务之间关系的矩阵。
最后一个部分的目的就是从这个关系矩阵中提取出所有任务的一个真正的关系图谱。也就是说我们希望从一个完全的全连通图找到一个最有价值的子图。在这里作者们采用了一种叫作“布尔值整数规划”Boolean Integer Programming的方法在一些限制条件下挖掘出了一个有代表性的子图。
实验结果
作者们提出了一个有4百多万张图片的新的数据集。在这个数据集里有26个计算机视觉任务。从实验中作者们挖掘出了这样一些情况例如3D的、2D的任务自然被归类到了一起而其他的例如上下文分割、景象识别这种高层次的任务则被分在了一起。
为了研究这种挖掘出的结构是否真的能够实现迁移学习的目的,作者们还把不同的两两任务随机组合在一起,也就是某种随机任务的图谱,按照学习到的结构进行迁移学习,看是不是比随机结果要好。答案是,的确要好很多。在这篇论文里,作者们展示了学习到的结构不仅能够帮助目标任务提升性能,而且在任务之间关系的解释性上效果也非常不错。
小结
今天我为你讲了CVPR 2018的最佳论文。
一起来回顾下要点:第一,我们详细介绍了这篇文章要解决的问题以及贡献,论文研究了计算机视觉任务之间的关系,并且提出了一个计算框架,能够起到迁移学习的作用;第二,我们简要介绍了文章提出的核心方法,主要有四个组成部分;第三,我们简单介绍了论文的实验结果。
最后,给你留一个思考题,当前挖掘的关系主要是任务的两两关系,能否有一个方法挖掘任务的高维度关系,比如三个任务之间的关系?

View File

@ -0,0 +1,79 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
023 CVPR 2018论文精读如何从整体上对人体进行三维建模
今天我们来分享CVPR大会的最佳学生论文标题是《全方位捕捉用于跟踪面部表情手势和身体运动的3D变形模型》Total Capture: A 3D Deformation Model for Tracking Faces, Hands and Bodies
很多学术会议都利用最佳学生论文这个奖项来鼓励学生参与学术研究活动,所以这个奖项的一般要求是第一作者必须是在校学生。
这篇论文的作者群来自卡内基梅隆大学。
第一作者周寒星Hanbyul Joo是来自韩国的学者目前在卡内基梅隆大学机器人学院The Robotics Institute攻读博士。他的博士论文方向是“计算行为科学”Computational Behavioral Science。他已经在计算机视觉方向发表了多篇CVPR、ICCV论文。
第二作者托马斯·西蒙Tomas Simon也是卡内基梅隆大学机器人学院的博士生。他的研究方向是“三维运动的时空建模”Spatiotemporal Modeling of 3D Motion
最后一位作者是这两位学生的导师亚瑟尔·舍艾克Yaser Sheikh是机器人学院的教授。
论文的主要贡献
这篇论文想要解决的问题很直观那就是希望对人体进行三维建模并且能够跟踪Track人体的行为以及活动。
这个任务看似简单,但有不少难点。
首先过去绝大多数的对人体进行三维建模的工作都是针对人体的不同部分分别进行的比如对脸部、对身体和对手部分别建模。在对这些部位进行建模的时候整体的设定都不太一样。例如对脸部的建模一般是近景Close-Up而对身体则主要是看身体的整体行动。也就是对于人体不同部位的建模经常在不同的尺度下进行那就无法把各个部分的建模很容易地对接上。
其次,还有一些人体的部位,过去并没有太多专门的建模工作,比如针对头发和脚,但这些在全身的建模中也是必不可少的部分。
这篇论文就加入了对头发和脚这些部分建模的讨论提供了对人体从整体上进行建模的一个框架。确切地说论文提供了两个模型一个叫“弗兰肯斯坦”Frankenstein一个叫“亚当”Adam
“弗兰肯斯坦”主要还是依靠对人体不同部分的建模,然后把这些模型连接起来,通过一些处理,能够让最终呈现的三维建模符合现实。在这个模型的基础上,“亚当”则加入了头发和脚的元素,抛弃了“弗兰肯斯坦”的一些特殊处理的地方,从模型的角度来说更加简单,并且达到了更加逼真的程度。
论文的核心方法
首先我们来看一看这个叫“弗兰肯斯坦”的模型。这个模型的思路是尽量把能够对人体各个部分建模的最好的模型先拼接到一起。总体来说每一个部分基本上都由三组参数组成运动参数Motion Parameters、形状参数Shape Parameters和全局翻译参数Global Translation Parameter
对于人的身体部分作者们采用了SMPL模型[1]。这个模型根据人体形状的均值和形状的变化量进行线性的叠加然后经过一个LBS变换来得到对身体部分的最终建模。
对人脸的部分作者们采用了一个叫FaceWarehouse的模型[2]。这个模型是根据人脸形状的均值、形状的变化量,以及动态的变化量来进行线性的叠加。
对于手而言目前并没有模型可以直接用。作者们在这篇论文中提出了自己的模型总的来说就是对手的骨架和关节进行建模然后进行类似于身体的LBS变换。同样也对人体的脚进行了类似的建模。
当我们有了身体、人脸、手和脚的模型以后,下面的工作就是把这些部分衔接上。首先,作者们保留了人体模型,移除这个模型上的人脸、手和脚。然后利用人脸模型、手的模型以及脚的模型相应的全局翻译参数,使得这些部分的坐标能够拼接上。最后,作者们还应用了一个“融合函数”来构建出一个平滑的人体结构。
“弗兰肯斯坦”的模型有一个四项的目标优化函数。这个函数的第一项是拟合“关键点”Key Points让人体的躯干骨架能够拟合上运动轨迹。第二项是拟合“三维点云”3D Point Cloud也就是让人体大部分躯体的实体能够拟合运动轨迹。第三项就是作者们附加的一个“小技巧”Heuristic用来把人体的每个部分连接在一起。这一项解决的就是整个模型设计带来的问题也就是每个部分都是单独的形状参数而并没有完全在模型上连接起来。最后一项是高斯先验概率用来帮助模型找到唯一的解。
在“弗兰肯斯坦”的基础上作者们开发了“亚当”模型。为了构建“亚当”他们捕捉了70个人体的形态数据首先构建这些人体的“弗兰肯斯坦”模型。在这些模型基础之上作者们加入了人体的头发和衣服的形态并且重新定义了整个模型的框架。
和“弗兰肯斯坦”相比“亚当”是对所有的人体部件直接进行建模。这个模型和我们前面描述的某个具体部分的模型其实很类似也是把人体的形态均值、形态的变化值和人脸表现值进行线性叠加然后进行LBS变换。
因为“亚当”在模型上进行了简化和创新,所以在目标优化函数中只有三项变量。而我们刚刚讲过的用于“弗兰肯斯坦”模型的小技巧在“亚当”中就变得不需要了。
实验结果
在实验中作者们使用了140个VGA照相机对三维身体的关键点进行重建用了480个VGA照相机对脚进行重建31个高清照相机用于脸部和手部关键点的重建以及三维点云的构建。
作者们显示了利用“弗兰肯斯坦”和“亚当”这两个模型对人体的三维运动进行建模。总体来说,这两个模型的表现非常相似。“亚当”因为有了头发和衣服的形态,在运动中显得更加真实。只是在有一些情况下,“亚当”构建的腿会显得有一些不协调的瘦,出现这种情况的原因,作者们归结于数据的缺失。
不过,从总体效果上来讲,这篇论文作为第一个对于人体的全身进行三维建模并动态跟踪的工作,应该算是达到了满意的结果。
小结
今天我为你讲了CVPR 2018的最佳学生论文。
一起来回顾下要点:第一,我们详细介绍了这篇文章要解决的问题,就是从整体上对人体的运动进行三维建模;第二,我们简要介绍了文章提出的两个模型,“弗兰肯斯坦”和“亚当”核心内容;第三,我们简单介绍了这篇论文所取得的不错的实验结果。
最后,给你留一个思考题,如果我们需要对“亚当”这个模型进行改进,你认为下一步应该做什么?
参考文献
M. Loper, N. Mahmood, J. Romero, G. Pons-Moll, and M. J. Black. SMPL: A Skinned Multi-Person Linear Model. In TOG, 2015.
C. Cao, Y. Weng, S. Zhou, Y. Tong, and K. Zhou. FaceWareHouse: A 3D Facial Expression Database for Visual Computing. In TVCG, 2014.

View File

@ -0,0 +1,77 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
028 ACL 2018论文精读问答系统场景下如何提出好问题
今年7月15日~20日计算语言学协会年会ACL 201856th Annual Meeting of the Association for Computational Linguistics在澳大利亚的墨尔本举行这是自然语言处理和计算语言学领域的顶级会议。
计算语言学协会ACL最早成立于1962年每年都赞助举行各种学术交流和研讨大会。ACL大会是ACL的旗舰会议可以说这个会议是了解自然语言处理每年发展情况的重量级场所。
会议今年收到了1018篇长论文和526篇短论文的投稿。最终大会接收了256篇长论文以及125篇短论文综合录用率达到24.7%。
今天我们来看这次会议的一篇最佳论文题目是《学习提出好问题使用完美信息的神经期望价值对澄清问题进行排序》Learning to Ask Good Questions: Ranking Clarification Questions using Neural Expected Value of Perfect Information
首先给你简单介绍下论文的作者。
第一作者萨德哈·饶Sudha Rao来自马里兰大学学院市分校University of Maryland, College Park是计算机系的博士生。她已经在ACLEMNLP、NAACL等自然语言处理大会上发表了多篇论文并且在微软研究院实习过。
第二作者是饶的导师哈尔·道姆三世Hal Daume III是马里兰大学学院市分校计算机系的一名教授目前也在纽约的微软研究院工作。他是机器学习和自然语言处理领域的专家在诸多领域都发表过不少研究成果论文引用数达到9千多次。
论文的主要贡献
这篇论文关注的是“问答系统”Question & Answering。问答系统不仅在实用领域受到大量用户的青睐产生了诸如Quora、知乎、Stack Overflow等知名的在线问答服务也在人工智能系统开发领域受到研究者的关注。
我们曾经提到过“图灵测试”,用来衡量一个系统或者说是一个机器人是否具有真正的人工智能,这个测试其实就是建立在人机问答的交互场景下的。因此,建立有效的问答系统一直是人工智能研究,特别是自然语言处理研究的核心课题之一。
这篇论文的作者们认为在问答系统的场景中一个非常重要的手段是针对已经提出的问题进行“澄清式”Clarification提问从而能够引导其他回答者更加有效地进行回答。也就是说作者们研究的主题是如何找到这些具有桥梁作用的“澄清式问题”这是这篇论文的第一个重要贡献。
论文的第二个主要贡献是利用了“决策论”Decision Theoretic框架下的EVPIExpected Value of Perfect Information完美信息的期望价值来衡量一个澄清式问题会对原始的问题增加多少有用的信息。简而言之EVPI就是这篇论文提出来的一个衡量有用信息的测度Measure
论文的第三个贡献是通过Stack Exchange平台Stack Overflow是其一个子站点构造了一个7万7千条含有澄清式问题的数据集。作者们从这个数据集中选取了500个样本进行了实验并且发现提出的模型要明显好于一些之前在问题系统中的类似算法。
论文的核心方法
既然这篇论文的一个核心贡献是提出了“澄清式提问”这么一个新的概念,用于帮助问答系统的开发。那么,究竟什么是“澄清式提问”呢?
实际上在这篇文章里,作者们并没有对“澄清式提问”给出一个清晰的定义,而是仅仅提供了一个实例来解释什么是“澄清式提问”。
例如一个用户在Ask Ubuntu这个子论坛里询问在安装APE程序包时遇到的问题。这个时候如果我们需要问“澄清式问题”究竟什么样的问题可以激发其他人或者提出澄清式问题的人来进一步解答原始的问题呢
我们看下面几个从不同角度提出的问题可以问这个用户使用的Ubuntu系统具体的版本号也可以问用户的WiFi网卡信息还可以问用户是不是在X86体系下运行Ubuntu。
那么,在这一个场景下,后两个问题要么无法为原始的问题提供更多有价值的信息,要么就是彻底的不相关,而第一个问题关于具体的版本号,很明显是用户可以提供的,并且可以帮助回答问题的人来缩小问题的范围。
这也带出了这篇论文的第二个贡献点,如何衡量一个帖子的价值呢?
要回答这个问题,我们需要知道这里有两种帖子是模型需要处理的。第一种帖子集合是候选的澄清式问题集合。第二种帖子集合是候选的最终回答集合。我们最终的目的是得到最佳的最终回答。这里面起到“搭桥”作用的就是澄清式问题。
所以作者们就构造了一个针对每一个最终问题的EVPI值用于衡量这个问题的“期望价值”。为什么是期望价值呢因为这里面有一个不确定的因素那就是根据不同的澄清式问题可能会产生不同的回答。因此作者们在这里使用了概率化的表达。
也就是说EVPI的核心其实就是计算给定当前的原始问题以及某一个澄清式回答的情况下某一个最终回答的概率乘以这个回答所带来的“收益”。当我们针对候选最终回答集合中所有的回答都进行了计算以后然后求平均就得到了我们针对某一个澄清式回答的EVPI。换句话说某一个澄清式回答的EVPI就是其所能产生的所有可能的最终回答的加权平均收益。
从上面这个定义中我们有两点不确定。第一我们并不知道给定当前的原始问题以及某一个澄清式回答的情况下某一个最终回答的条件概率第二我们并不知道问题的收益。因此作者们利用了两个神经网络模型来对这两个未知量进行联合学习Joint Learning。这可以算是本文在建模上的一个创新之处。
具体来说首先作者们利用LSTM来针对原始问题、候选澄清问题、以及最后解答产生相应的表达向量。然后原始问题和某一个候选澄清问题的表达向量通过一个神经网络产生一个综合的表达。最后作者们定义了一个目标函数来针对这些初始的表达向量进行优化。
这个目标是需要我们学习到的答案的表达靠近初始得到的答案的表达,同时,也要靠近最终答案的表达,如果这个最终答案所对应的问题也靠近原来的问题。换句话说,如果两个问题的表达相近,答案的表达也需要相近。
那什么样的问题是相近的问题呢作者们利用了Lucene这个信息检索工具根据一个原始的问题寻找相近的问题。这里作者们并没有真实的标签信息所以利用了一些方法来标注数据从而能够让模型知道两个问题是否相关。
论文的实验结果
作者们利用了Stack Exchange来构建一个分析澄清式问题的数据集。具体的思路是如果原始问题曾经被作者修改过那么后面的某一个帖子中所提出的问题就会被当作是澄清式问题而原始问题就被当作是因为澄清式问题而得以改进的帖子。很明显这是一个非常粗略的数据收集条件。当原始问题被作者修改过以后并且最后因为这个修改得到回复就被认为是一个最终的答案。经过这么一番构建作者们整理了7万7千多条帖子。
作者们利用论文提出的方式和其他的经典模型进行比较。最后的结论是,提出的模型能够更好地找到最佳的澄清式问题,效果要好于仅仅是简单利用神经网络,来匹配原始问题和相应的澄清式问题。
小结
今天我为你讲了ACL 2018的一篇最佳论文。
一起来回顾下要点:第一,这篇论文提出了“澄清式提问”这个概念,来帮助问答系统的开发;第二,文章提出了一系列方法,对澄清式问题进行描述和衡量;第三,文章构建了一个数据集,通过实验论证了所提出方法的有效性。
最后,给你留一个思考题,通过这篇文章关于澄清式问题的介绍,你能否给澄清式问题下一个定义呢?

View File

@ -0,0 +1,74 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
029 ACL 2018论文精读什么是对话中的前提触发如何检测
今天我来和你分享ACL 2018的第二篇最佳论文题目是《让我们“再”次做到检测副词前提触发词的第一种计算方法》Lets do it “again”: A First Computational Approach to Detecting Adverbial Presupposition Triggers
这篇论文的作者都来自加拿大麦吉尔大学McGill University的计算机系。前三位学生作者是这篇论文的共同第一作者对论文的贡献相同。他们的导师张智杰Jackie Chi Kit Cheung助理教授是这篇论文的最后一个作者。张智杰于2014年从多伦多大学博士毕业之前曾两次在微软研究院实习过他长期从事自然语言处理的研究。
论文的主要贡献
这篇论文的背景要从“语用学”Pragmatics说起。语用学是语言学的一个分支学科与符号学理论相互交叉、渗透研究语境对语言含义产生的影响和贡献。语用学包括言语行为理论、对话内涵义、交流中的对话以及从哲学、社会学、语言学以及人类学等角度解析人类语言行为的研究。
语用学分析研究语言行为(如招呼、回答、劝说)的文化准绳和发言规则。不同的文化之间皆有约定俗成、客套的对话,在跨文化交流中,为了避免因为语言规范的差异而在交谈之中产生误解,社会语言学的知识与务实能力是语言学习者所不能忽视的。
在语用学中“前提”Presuppositions是交谈的参与者共同约定的假设和认知而且在谈话中被广泛使用。同时在这篇论文中作者们把提示“前提”的“表达”Expression定义为“前提触发”Presupposition Triggers包括一些动词、副词和其他短语。为了更加清晰地说明这些概念作者们举了这么一个例子。
假设我们现在有两句话:
约翰再次要去那家餐厅John is going to the restaurant *again*)。
约翰已经去过了那家餐厅John has been to the restaurant
第一句话要能够成立必须要建立在第二句话的基础上。特别是“前提触发”词“再”Again的使用是建立在第二句话真实的情况下。换句话说第一句话必须在第二句话的上下文中才能够被理解。值得一提的是即便我们对第一句话进行否定“约翰不打算再去那家餐厅了”John is not going to the restaurant again依然需要第二句话的支持。也就是说“前提触发”词在这里并不受到否定的影响。
这篇论文的核心贡献就是对以副词为主的前提触发词进行检测。这里面包括“再”Again、“也”Also和“还”Still等。再此之前还没有对这方面词汇进行检测的学术研究工作。能够对这类前提触发词进行检测可以应用到文本的归纳总结Summarization和对话系统等场景中。
为了更好地研究这个任务作者们还基于著名的自然语言处理数据Penn Treebank和English Gigaword建立了两个新的数据集从而能够进行触发词的分类检测工作。最后作者们设计了一个基于“关注”Attention机制的时间递归神经网络RNN模型来针对前提触发词进行检测达到了很好的效果。
论文的核心方法
现在,我们来讨论这篇论文的一些细节。
首先我们来看看数据集是如何生成的。数据中的每一个数据点都是一个三元组分别是标签信息正例还是负例文本的单词文本单词所对应的“词类标签”或简称为POS标签例如动词、名词
数据点正例就表明当前数据包含前提触发词反之则是负例。另外因为我们需要检测的是副词性的前提触发词因此我们还需要知道这个词所依靠的动词。作者们把这个词叫作副词的“管理词”Governor
作者们首先针对文档扫描看是否含有前提触发词。当发现有前提触发词的时候提取这个触发词的管理词然后提取管理词前50个单词以及管理词后面到句子结束的所有的单词。这就组成了正例中的单词。当找到了所有的正例之后作者们利用管理词来构建负例。也就是说在文本中寻找哪些句子含有一样的管理词但并不包括后面的前提触发词这样的句子就是负例。
下面我们来看一下作者们提出模型的一些构成。从大的角度来说为了识别前提触发词作者们考虑了一个双向LSTM的基本模型架构在此之上有一个“关注机制”在不同的情况下来选择LSTM的中间状态。
具体来说,整个模型的输入有两部分内容。
第一部分是文本的单词进行了词向量Embedding的转换。我们已经反复看到了这是在自然语言处理场景中利用深度学习模型必不可少的步骤。这样做的好处就是把离散数据转换成了连续的向量数据。
第二部分是输入这些单词相对应的POS标签。和单词不一样的是POS标签依然采用了离散的特性表达。
然后连续的词向量和离散POS标签表达合并在一起成了双向LSTM的输入。这里利用双向LSTM的目的是让模型针对输入信息的顺序进行建模。跟我们刚才提到的例子一样前提触发词和其所依靠的动词在一个句子的段落中很明显是和前后的其他单词有关联的。因此双向LSTM就能够达到对这个结构进行记忆的目的并且提取出有用的中间变量信息。
下面需要做的就是从中间变量信息到最终的分类结果的变换。这里作者们提出了一个叫“加权池化网络”Weighted Pooling Network的概念并且和“关注”机制一起来进行这一步的中间转换。
可以说作者们这一步其实是借助了计算机视觉中的经常使用的卷积神经网络CNN中的池化操作来对文档进行处理。具体来说作者们把所有LSTM产生的中间状态堆积成一个矩阵然后利用同一个矩阵乘以其自身的转置就得到了一个类似于相关矩阵的新矩阵。可以说这个新矩阵是完全抓住了当前句子通过LSTM中间变量转换后所有中间状态的两两关系。
然后,作者们认为最后的分类结构就是从这个矩阵中抽取信息而得到的。至于怎么抽取,那就需要不同的权重。这种根据不同的情况来设置权重的机制就叫作“关注”机制。经过矩阵中信息的抽取,然后再经过全联通层,最终就形成了标准的分类输出。
论文的实验结果
作者们在我们上面提到的两个新数据集上进行了实验并且和一系列的方法进行了比较。其他的方法包括简单的对数几率回归方法Logistic Regression简化了的但是依然利用了双向LSTM结构的模型还有一个利用CNN来进行提取信息的模型。
在两个数据集上论文提出的方法比对数几率回归以及CNN的方法都要好10%20%左右。和简化的LSTM模型相比优势并没有那么大但依然有统计意义上的好效果。
小结
今天我为你讲了ACL 2018的另外一篇最佳论文。
一起来回顾下要点第一这篇论文的背景是语用学核心贡献是对以副词为主的前提触发词进行检测第二论文的核心方法是提出一个双向LSTM的基本模型架构并利用“关注机制”根据不同的情况来设置权重第三论文构建了两个数据集取得了较好的实验结果。
最后给你留一个思考题这篇论文使用了双向LSTM的架构能不能使用单向LSTM呢

View File

@ -0,0 +1,73 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
030 ACL 2018论文精读什么是端到端的语义哈希
今天我们来看今年ACL大会的一篇最佳论文提名题目是《NASH面向生成语义哈希的端到端神经架构》NASH: Toward End-to-End Neural Architecture for Generative Semantic Hashing
先来简单介绍下论文的作者群,我着重介绍三位。
第一作者沈丁涵Dinghan Shen音译是杜克大学计算机科学系的博士生。他已经发表了多篇自然语言处理和机器学习相关的论文并且在NEC实验室和微软研究院都实习过。
论文的共同第一作者苏勤亮Qinliang Su音译目前是中山大学数据科学与计算机学院的副教授。他在香港大学取得博士学位之后曾在杜克大学从事博士后研究工作。
作者中的劳伦斯·卡林Lawrence Carin是杜克大学教授。卡林是机器学习的权威也是沈丁涵的导师。
论文的主要贡献
在很多的应用中我们都需要根据一个已有的文档表达和一个文档库找到最相近的或者说最类似的文档。这经常被叫作“相似查找”Similarity Search或者“最近邻查找”Nearest-Neighbor Search在推荐系统、信息检索、图片检索等领域都有非常广泛的应用。
“语义哈希”Semantic Hashing被认为是解决“相似查找”的一个重要并且行之有效的方法。简单来说“语义哈希”要做的就是把文档表达为离散的也就是二元的向量。这些向量保留了文档在原始空间中的相似关系。因此常常被认为是带有语义的哈希过程这也就是“语义哈希”这个名字的来历。
当我们把文档转换为语义哈希空间之后文档之间相似度的计算就变成了利用“汉明距离”Hamming Distance来计算离散向量之间的距离。在当下的计算机体系架构中上百万文档之间的“汉明距离”都可以在几个毫秒间完成计算。因此我们可以看到“语义哈希”的一个优势就是计算快捷并且保持了原始空间的语义信息。
那么,看似这么有优势的“语义哈希”有没有什么劣势呢?
虽然已经有相当多的研究针对文字数据产生哈希,但是这些现有的方法都有一些明显的问题,其中最紧要的一个问题就是这些方法大多都需要两个阶段。
具体是哪些方法呢?我把这些方法归纳为两种思路。
第一种思路我们首先需要在无监督的条件下学习文档的二元哈希然后我们需要训练L个二元分类器来预测L个二元位的哈希值这个步骤是监督学习过程。
第二种思路,我们首先针对文档学习连续的表达向量,然后在测试阶段再把连续值进行二元离散化。
很明显不管是哪一种思路这种两个步骤的方法都不可避免地会仅仅得到次优的结果。这是因为两个步骤的优化流程是脱节的。而且在从连续的表达向量到二元离散化的过程中往往利用的是经验法则Heuristic因此语义信息可能被丢失。
基于这些问题这篇论文提出了“端到端”End-to-End的“语义哈希”训练过程。作者们认为经过一个阶段就可以得到完整哈希值的研究工作这篇文章是第一个。在此之上作者们利用了最新的NVI框架Neural Variational Inference神经化的变分推断来学习文档的二元编码在无监督和监督环境下都取得了不错的结果。
这篇论文的另一个贡献就是在提出的方法和“比率损失理论”Rate Distortion Theory之间建立了联系。在这个联系的基础上作者们展示了如何在模型的训练过程中“注入”Inject“数据相关的噪音”Data-Dependent Noise来达到更好的效果。
论文的核心方法
作者们首先把从文档生成“语义哈希”看作是一种编码Encode和解码Decode的流程。文档的二元哈希向量则被看成了表达文档的一种隐变量Latent Variable。也就是说作者们认为文档的哈希向量是从文档的特性可以是TF-IDF值产生的一组隐变量这也被认为是一种编码的过程是从文档的特性向量到哈希向量的编码。
在过去的模型中,编码过程是被反复关注的,但是解码过程则很少有模型去直接建模。所谓的解码过程就是从已经产生的哈希向量转换成为文档的特性向量的过程。也就是说,我们希望能够重新从哈希向量中生成原始的数据。
对原始数据和中间隐变量的编码过程统一进行建模,是当前神经网络生成式模型的一种标准方法。在这里,编码和解码都各自有不同的神经网络,用于表达相应的条件概率分布。
具体来说数据的原始信息X首先经过一个多层感知网然后再变换成为二元的中间变量Z。这时候Z其实就是我们需要得到的哈希向量了。只不过在提出的模型中还有第二个部分那就是从Z得到X的一个重现也就是我们刚才提到的利用哈希来重构数据。很明显我们希望重构的X和原始的X之间要非常相似也就是说距离最小。
作者们发现从数据中学习一个二元编码是“信息论”Information Theory中典型的“有损源编码”Lossy Source Coding问题。因此“语义哈希”其实也可以被看作是一个“比率损失平衡”Rate Distortion Tradeoff问题。
什么意思呢?就是说,我们希望用较少的比率来对信息进行编码,同时又希望从编码中重构的数据能够和原始的数据尽量相近。很明显,这两者有一点“鱼与熊掌不可兼得”的意思,也就是这两者需要一个平衡才能达到最优。
把重写模型的目标函数定为“比率损失平衡”,通过这种形式,作者们意识到模型中的从编码到重构数据的条件分布,也就是一个高斯分布中的方差值,其实控制了这个平衡的关系。那么,就需要针对不同的文档对这个方差值进行调整,从而达到最优的编码效果,同时又是比率损失平衡的。作者们并没有采用去优化这个方差值的办法,而是在一个固定的方差值周围加入一些随机噪声,从而在实际实验中收到了不错的效果。
论文的实验结果
作者们利用了三个数据集进行实验所有的数据集都首先转换成为TF-IDF的形式。作者们把提出的方法和其他的五种基本方法进行了比较。
从总体上来说,文章提出的方法在没有随机噪声的情况下,已经比其他五种方法要好得多。加入随机噪声之后,模型就有了更好的表现力。同时,作者还展示了学到的二元哈希值的确能够保持语义信息,相同文本类别的文档,它们的哈希值非常类似,也就是我们之间说过的,他们之间的汉明距离很近。
小结
今天我为你讲了今年ACL的一篇最佳论文提名至此我们关于ACL 2018的分享就告一段落。
一起来回顾下要点:第一,这篇文章针对语义哈希产生过程的劣势,提出了“端到端”的语义哈希训练过程;第二,论文的核心方法是把文档生成语义哈希看作是一种编码和解码的流程,进一步发现“语义哈希”其实也可以被看作是一个“比率损失平衡”问题;第三,论文取得了不错的实验效果。
最后,给你留一个思考题,在现实中利用语义哈希,有没有什么障碍?比如要在推荐系统中做语义哈希,最大的挑战会是什么?

View File

@ -0,0 +1,81 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
032 经典搜索核心算法BM25及其变种内附全年目录
周一我们讲了TF-IDF算法和它的四个变种相对于TF-IDF而言在信息检索和文本挖掘领域BM25算法则更具理论基础而且是工程实践中当仁不让的重要基线Baseline算法 。BM25在20世纪70年代到80年代被提出到目前为止已经过去二三十年了但是这个算法依然在很多信息检索的任务中表现优异是很多工程师首选的算法之一。
今天我就来谈谈BM25算法的历史、算法本身的核心概念以及BM25的一些重要变种帮助你快速掌握这个信息检索和文本挖掘的利器。
BM25的历史
BM25有时候全称是Okapi BM25是由英国一批信息检索领域的计算机科学家开发的排序算法。这里的“BM”是“最佳匹配”Best Match的简称。
BM25背后有两位著名的英国计算机科学家。第一位叫斯蒂芬·罗伯逊Stephen Robertson。斯蒂芬最早从剑桥大学数学系本科毕业然后从城市大学City University获得硕士学位之后从伦敦大学学院University College London获得博士学位。斯蒂芬从1978年到1998年之间在城市大学任教。1998年到2013年间在微软研究院剑桥实验室工作。我们之前提到过美国计算机协会ACM现在每三年颁发一次“杰拉德·索尔顿奖”用于表彰对信息检索技术有突出贡献的研究人员。2000年这个奖项颁给斯蒂芬奖励他在理论方面对信息检索的贡献。BM25可谓斯蒂芬一生中最重要的成果。
另外一位重要的计算机科学家就是英国的卡伦·琼斯Karen Spärck Jones。周一我们在TF-IDF的文章中讲过。卡伦也是剑桥大学博士毕业并且毕生致力于信息检索技术的研究。卡伦的最大贡献是发现IDF以及对TF-IDF的总结。卡伦在1988年获得了第二届“杰拉德·索尔顿奖”。
BM25算法详解
现代BM25算法是用来计算某一个目标文档Document相对于一个查询关键字Query的“相关性”Relevance的流程。通常情况下BM25是“非监督学习”排序算法中的一个典型代表。
顾名思义,这里的“非监督”是指所有的文档相对于某一个查询关键字是否相关,这个信息是算法不知道的。也就是说,算法本身无法简单地从数据中学习到相关性,而是根据某种经验法则来“猜测”相关的文档都有什么特质。
那么BM25是怎么定义的呢我们先来看传统的BM25的定义。一般来说经典的BM25分为三个部分
单词和目标文档的相关性
单词和查询关键词的相关性
单词的权重部分
这三个部分的乘积组成某一个单词的分数。然后,整个文档相对于某个查询关键字的分数,就是所有查询关键字里所有单词分数的总和。
我们先从第一部分说起即单词和目标文档的相关性。这里相关性的基本思想依然是“词频”也就是TF-IDF里面TF的部分。词频就是单词在目标文档中出现的次数。如果出现的次数比较多一般就认为更相关。和TF-IDF不同BM25最大的贡献之一就是挖掘出了词频和相关性之间的关系是非线性的这是一个初看有违常理但细想又很有道理的洞察。
具体来说每一个词对于文档相关性的分数不会超过一个特定的阈值。这个阈值当然是动态的根据文档本身会有调整。这个特征就把BM25里的词频计算和一般的TF区分开了。也就是说词频本身需要“标准化”Normalization要达到的效果是某一个单词对最后分数的贡献不会随着词频的增加而无限增加。
那BM25里词频的标准化是怎么做的呢就是某一个词的词频除以这个词的词频加上一个权重。这个权重包含两个超参数Hyper-parameter这些超参数后期是可以根据情况手动调整的。这个做法在非监督的排序算法中很普遍。同时这个权重还包括两个重要信息第一当前文档的长度第二整个数据集所有文档的平均长度。
这几个因素混合在一起,我们就得到了一个新的词频公式,既保证单词相对于文档的相关度和这个单词的词频呈现某种正向关系,又根据文档的相对长度,也就是原始长度和所有文档长度的一个比值关系,外加一些超参数,对词频进行了限制。
有了单词相对于文档的相关度计算公式作为基础,单词相对于查询关键字的相关度可以说是异曲同工。首先,我们需要计算单词在查询关键字中的词频。然后,对这个词频进行类似的标准化过程。
和文档的标准化过程唯一的区别这里没有采用文档的长度。当然对于查询关键字来说如果需要使用长度也应该是使用查询关键字的长度和平均长度。但是根据BM25经典公式来说这一部分并没有使用长度信息进行重新标准化。
接着我来谈谈最后一个部分,单词权重的细节,通常有两种选择。
第一种选择就是直接采用某种变形的IDF来对单词加权。一般来说IDF就是利用对数函数Log函数对“文档频率”也就是有多少文档包含某个单词信息进行变换。这里回顾一下周一讲的内容IDF是“文档频率”的倒数并且通过对数函数进行转换。如果在这里使用IDF的话那么整个BM25就可以看作是一个某种意义下的TF-IDF只不过TF的部分是一个复杂的基于文档和查询关键字、有两个部分的词频函数。
第二种单词的权重选择叫作“罗伯逊-斯巴克-琼斯”权重Robertson-Spärck-Jones简称RSJ值是由计算机科学家斯蒂芬·罗伯逊和卡伦·琼斯合作发现。我们刚才讲过这两位都是重要的信息检索学术权威。这个权重其实就是一个更加复杂版本的IDF。一个关键的区别是RSJ值需要一个监督信息就是要看文档对于某个查询关键字是否相关而IDF并不需要。
对比以上两种思路在很多情况下利用IDF来直接进行单词权重的版本更加普遍。如果在有监督信息的情况下RSJ值也不失为一个很好的选择。
通过这里简单的介绍我们可以很容易地发现BM25其实是一个经验公式。这里面的每一个成分都是经过很多研究者的迭代而逐步发现的。很多研究在理论上对BM25进行了建模从“概率相关模型”Probabilistic Relevance Model入手推导出BM25其实是对某一类概率相关模型的逼近。对这一部分我在这里就不展开论述了。需要你记住的是BM25虽然是经验公式但是在实际使用中经常表现出惊人的好效果。因此很有必要对这一类文档检索算法有所了解。
BM25算法变种
由于BM25的情况一方面是经验公式另一方面是某种理论模型的逼近这样就出现了各式各样的BM25变种。这里我仅仅介绍一些有代表性的扩展。
一个重要的扩展是BM25F也就是在BM25的基础上再多个“域”Field文档上的计算。这里“域”的概念可以理解成一个文档的多个方面。比如对于很多文档来说文档包括标题、摘要和正文。这些组成部分都可以认为是不同的“域”。那么如何结合不同的“域”让文档的相关性能够统一到一个分数上就是BM25F的核心内容。
具体来说BM25F对于BM25的扩展很直观。那就是每一个单词对于文档的相关性是把各个域当做一个“小文档”的加权平均。也就是说我们先把每个域当做单独的文档计算词频进行标准化。然后集合每个域的值进行加权平均再乘以词的权重我们上面提到了用IDF或者是RSJ值
另外一个重要的扩展就是把BM25和其他文档信息非文字结合起来。这个想法是在“学习排序”Learning To Rank这一思路出现以前的一种普遍的做法往往就是用线性加权的形式直接把各种信息相结合。例如在21世纪初期比较流行的做法是用BM25和PageRank的线性结合来确定网页的相关度。这里面BM25是和某个查询关键字有联系的信息而PageRank则是一个网页的总体权重。
小结
今天我为你讲了文档检索领域或者说搜索领域里最基本的一个技术BM25。我们可以看到BM25由三个核心的概念组成包括词在文档中相关度、词在查询关键字中的相关度以及词的权重。BM25是一个长期积累的经验公式也有很深的理论支持是一个强有力的非监督学习方法的文本排序算法。
一起来回顾下要点第一简要介绍了BM25的历史。第二详细介绍了BM25算法的三个主要组成部分。第三简要地介绍了BM25的一些变种 。
最后给你留一个思考题虽然BM25是非监督的排序方法并且我们提到其中有一些超参数那么是否可以通过机器学习的手段来学习到这些超参数的最佳取值呢

View File

@ -0,0 +1,87 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
033 经典搜索核心算法:语言模型及其变种
在信息检索和文本挖掘领域我们之前已经讲过了TF-IDF算法和BM25算法。TF-IDF因其简单和实用常常成为很多信息检索任务的第一选择BM25则以其坚实的经验公式成了很多工业界实际系统的重要基石。
然而在信息检索研究者的心里一直都在寻找一种既容易解释又能自由扩展并且在实际使用中效果显著的检索模型。这种情况一直到20世纪90年代末、21世纪初才得到了突破一种叫“语言模型”Language Model的新模型得到发展。其后10多年的时间里以语言模型为基础的各类变种可谓层出不穷成了信息检索和搜索领域的重要研究方向。
今天我就来谈谈语言模型的历史,算法细节和语言模型的重要变种,帮助初学者快速掌握这一模型。
语言模型的历史
语言模型在信息检索中的应用开始于1998年的SIGIR大会International ACM SIGIR Conference on Research and Development in Information Retrieval国际信息检索大会。来自马萨诸塞州大学阿姆赫斯特分校UMass Amherst的信息检索学者杰·庞特Jay M. Ponte和布鲁斯·夸夫特W. Bruce Croft发表了第一篇应用语言模型的论文从此开启了一个新的时代。
布鲁斯是信息检索的学术权威。早年他在英国的剑桥大学获得博士学位之后一直在马萨诸塞州大学阿姆赫斯特分校任教。他于2003年获得美国计算机协会ACM颁发的“杰拉德·索尔顿奖”表彰他在信息检索领域所作出的突出贡献。另外布鲁斯也是ACM院士。
从那篇论文发表之后,华人学者翟成祥对于语言模型的贡献也是当仁不让。他的博士论文就是系统性论述语言模型的平滑技术以及各类语言模型的深刻理论内涵。
翟成祥来自中国的南京大学计算机系并于1984年、1987年和1990年分别获得南京大学的学士、硕士和博士学位2002年他从美国卡内基梅隆大学计算机系的语言与信息技术研究所获得另外一个博士学位。
翟成祥曾经获得过2004年的美国国家科学基金会职业生涯奖NSF CAREER Award和2004年ACM SIGIR最佳论文奖。另外2004年翟成祥还获得了著名的美国总统奖PECASEPresidential Early Career Award for Scientists and Engineers
语言模型详解
语言模型的核心思想是希望用概率模型Probabilistic Model来描述查询关键字和目标文档之间的关系。语言模型有很多的类型最简单的、也是最基础的叫做“查询关键字似然检索模型”Query Likelihood Retrieval Model。下面我就来聊一聊这个模型的一些细节。
首先,我来描述什么是语言模型。简单来说,一个语言模型就是一个针对词汇表的概率分布。比如,词汇表总共有一万个英语单词,那么一个语言模型就是定义在这一万个单词上的离散概率分布。拿骰子来做类比,这里的骰子就有一万种可能性。
一旦语言模型的概念形成。“查询关键字似然检索模型”的下一步就是认为查询关键字是从一个语言模型中“抽样”Sample得到的一个样本。什么意思呢 就是说,和我们通常情况下从一个概率分布中抽样相同,“查询关键字似然检索模型”认为查询关键字是从这个语言模型的概率分布中进行采样,从而产生的一个随机过程。这一观点不仅是这个简单语言模型的假设,也是很多语言模型的核心假设。
我们假设这个语言模型也就是这个概率分布的参数已知那么如何来对一个查询关键字打分Scoring就变成了计算在这个概率分布的情况下一组事件也就是这组词出现的联合概率。现实中因为联合概率可能会很小因此很多时候都通过一个对数变换来把概率的乘积变成概率对数的加和。
然而,现实情况是,我们事先并不知道这个语言模型的参数,这个信息一般来说是未知的。
要想确定这个语言模型的参数我们首先要确定语言模型的形态。我刚才说过语言模型本质上就是定义在词汇表上的离散概率分布。那么这里就有几种经典的选择。首先我们可以选择“类别分布”Categorical Distribution函数也就是多项分布Multinomial Distribution去除排列组合信息。这也是最常见的语言模型的实现形式。
在类别分布的假设下,我们认为每一个单词都是从类别分布中采样得到的结果,而单词之间互相独立。那么,定义在一万个单词上的类别分布就有一万个参数。每个参数代表所对应的单词出现的概率,或者说可能性。当然,这个参数是未知的。
除了利用类别分布或者多项分布来对语言模型建模以外其他的离散概率分布也都曾被提出来用作语言模型。比如伯努利分布Bernoulli Distribution或者泊松分布Poisson Distribution。这些不同的假设我今天就不展开讲了。但是在实际应用中其他概率分布假设的语言模型基本上都还属于纯研究状态。
还是回到刚才说的基于类别分布的语言模型。由于参数是未知的,那么问题的核心就变成了如何估计这样的参数,这里就回归到基本的统计参数估计的范畴。
因为类别分布是概率分布在有观测数据的情况下这个的观测数据就是现实中的文档和查询关键字最直接的参数估计算法叫“最大似然估计”Maximum Likelihood Estimation。在这里我不展开这个算法的细节。
最大似然估计的核心思路就是把参数估计问题变换成一个最大化的优化问题,从而通过求解这个优化问题来达到参数估计的目的。在类别分布的假设下,最大似然估计的最优参数解,恰好有解析形式。
也就是说,在有数据的情况下,我们能够得到一个唯一的最优的参数估计。而且这个解非常直观,也就是每个单词出现的可能性,正好等于这个单词在目标文档中出现的次数,除以所有单词在目标文档中出现的次数。换句话说,每个单词的参数正好等于单词出现的频率。
这样的话,每个文档都对应一个类别分布。有多少个文档就有多少个类别分布,而且每个类别分布都可以从自己这个文档中求得所有的参数。
最大似然估计有一个很大的问题,那就是如果某一个单词没有在训练数据中出现过,那么这个单词的参数,根据上面的最优解,就是零。
什么意思呢?也就是说,在最大似然估计的情况下,没有出现过的单词的参数是零,然后模型认为这个词出现的可能性、或者概率就是零。这显然是一个非常悲观的估计。因为你可以认为,不管在任何情况下,就算一个单词没有出现过,但是出现的概率也不应该绝对是零。
那么如何针对这些为“零”的概率估计就成了语言模型研究和实践中的一个重要问题。一个通常的技术叫“平滑”Smoothing。这个技术的基本思想就是给这些因为最大似然估计所产生的零值一些非零的估计值。最简单的一个做法其实也是很有效的一个做法就是通过整个数据集的频率来做平滑。
具体来说,就是对于每一个词,我们计算一个目标文档的频率,同时也计算一个全数据集的平率。然后这个单词的最终估计值,是这两个频率的一个加权平均。这个权重就成了另外一组超参数,可以动态调整。
另外一个常见的平滑策略是借助贝叶斯统计推断Bayesian Inference的方法。也就是说为类别概率分布加上一个先验分布通常是狄利克雷分布Dirichlet Distribution并且计算出某个单词在先验分布和数据都存在情况下的后验概率我这里就不展开这个思路了。
在这里需要注意的是经过研究人员发现语言模型的平滑其实是不可或缺的。一方面是为了解决我们刚才提到的零概率估计问题另一方面经过一个代数变形语言模型的平滑其实可以写成一个类似TF-IDF的形式。
于是研究人员指出这个平滑其实削减了过分流行词汇的概率使最后的估计值并不完全只是由单词的多少而决定。我在之前介绍TF-IDF算法和BM25算法的时候都分别提到了这个观点那就是单词出现的多少和相关性的关系问题。从经验上看这个关系一定是有一个阈值的。
语言模型变种
语言模型有很多类型的变种,我这里简单地提两个比较有代表的方向。
一个方向就是我刚才说的不同类型的平滑策略,比如,结合全数据集平滑和狄利克雷平滑。或者是先把文档分成一些聚类或者不同的类别(例如不同的话题),然后根据不同的类别或者话题进行平滑等等。
另外一个方向其实就是在语言模型本身的的定义上做文章。比如,在查询关键字似然检索模型里,我们假定有一个语言模型,查询关键字是这个模型的一个抽样。乍一看这很有道理,但是仔细一想,这个模型并没有明说目标文档和查询关键字之间的关系。目标文档进入视野完全是为了估计这个语言模型的参数,“相关性”这个概念并没有明确定义。
那么,另外一个主流的语言模型,就是认为有两个模型(分布)。查询关键字从一个分布中产生,目标文档从另外一个分布中产生,而这两个分布的距离,成为了相关性的定义。在这样的结构下,文档和查询关键字形成了一种对称的局面,而相关性也根据距离直接得到定义。
小结
今天我为你讲了文档检索领域或者说搜索技术里一个很有理论深度的技术语言模型。我们可以看到语言模型相对于TF-IDF以及BM25而言其实更加直观更好理解。语言模型也是一个强有力的非监督学习方法的文本排序算法。
一起来回顾下要点:第一,简要介绍了语言模型的历史。第二,详细介绍了简单语言模型,即“查询关键字似然检索模型”的主要组成部分。第三,简要地介绍了语言模型的两个变种方向。
最后,给你留一个思考题,如果根据语言模型,也就是概率分布函数的估计,无法得到我们之前提到的最优解析解的话,我们应该怎么求解语言模型的参数呢?

View File

@ -0,0 +1,71 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
034 机器学习排序算法:单点法排序学习
在专栏里我们已经讲解过最经典的信息检索技术。这些技术为2000年之前的搜索引擎提供了基本的算法支持。不管是TF-IDF、BM25还是语言模型Language Model这些方法和它们的各类变种在很多领域不限文本都还继续发挥着作用。
然而自从机器学习的思想逐渐渗透到信息检索等领域之后一个最直观的想法就是如何用机器学习来提升信息检索的性能水平。这个思想引领了2000年到2010年这个领域的研究产生了各类基于机器学习的排序算法也带来了搜索引擎技术的成熟和发展。
我今天就从最简单也是最实用的一类机器学习排序算法讲起那就是单点法排序学习Pointwise Learning to Rank。这类方法在工业界非常实用得到广泛应用在实际效果中也表现得很强健Robust。同时理解这类模型可以为后面学习复杂的排序算法打下基础。
单点法排序学习的历史
早在1992年德国学者诺伯特·福尔Norbert Fuhr就在一篇论文中最早尝试了用机器学习来做搜索系统参数估计的方法。三年之前他还发表过一篇利用“多项式回归”Polynomial Regression来做类似方法的论文。诺伯特因其在信息检索领域的长期贡献于2012年获得美国计算机协会ACM颁发的“杰拉德·索尔顿奖”。
1992年加州大学伯克利分校的一批学者在SIGIR上发表了一篇论文文中使用了“对数几率”Logistic Regression分类器来对排序算法进行学习。可以说这篇论文是最早利用机器学习思维来解决排序算法学习的尝试。然而由于机器学习和信息检索研究在当时都处于起步阶段这些早期结果并不理想。
2000年之后支持向量机在工业界和学术界逐渐火热随之利用机器学习进行排序算法训练重新进入人们的视野。搜索引擎成了第一次互联网泡沫的重要阵地各类搜索引擎公司都开始投入使用机器学习来提升搜索结果的精度。这股思潮开启了整整十年火热的机器学习排序算法的研究和开发。
单点法排序学习详解
要想理解单点法排序学习,首先要理解一些基本概念。这些基本概念可以帮助我们把一个排序问题转换成一个机器学习的问题设置,特别是监督学习的设置。
我之前介绍的传统搜索排序算法比如TF-IDF、BM25以及语言模型都是无监督学习排序算法的典范也就是算法本身事先并不知道哪些文档对于哪些关键字是“相关”的。这些算法其实就是“猜测”相关性的一个过程。因此传统信息检索发展出一系列理论来知道算法对每一个“关键字和文档对”Query-Document Pair进行打分寄希望这样的分数是反映相关性的。
然而,从现代机器学习的角度看,毫无疑问,这样的排序算法不是最优的,特别是当相关信息存在的时候,是可以直接用这些相关信息来帮助算法提升排序精度的。
要想让训练排序算法成为监督学习,首先来看需要什么样的数据集。我们要建模的对象是针对每一个查询关键字,对所有文档的一个配对。也就是说,每一个训练样本至少都要包含查询关键字和某个文档的信息。这样,针对这个训练样本,就可以利用相关度来定义样本的标签。
在极度简化的情况下如果标签定义为某个文档针对某个关键字是否相关也就是二分标签训练排序算法的问题就转换成了二分分类Binary Classification的问题。这样任何现成的二分分类器几乎都可以在不加更改的情况下直接用于训练排序算法。比如经典的“对数几率”分类器或者支持向量机都是很好的选择。
我们说这样的方法是“单点法排序学习”Pointwise Learning to Rank是因为每一个训练样本都仅仅是某一个查询关键字和某一个文档的配对。它们之间是否相关完全不取决于其他任何文档也不取决于其他关键字。也就是说我们的学习算法是孤立地看待某个文档对于某个关键字是否相关而不是关联地看待问题。显然单点法排序学习是对现实的一个极大简化但是对于训练排序算法来说是一个不错的起点。
知道了如何构建一个训练集以后,我们来看一看测试集,重点来看如何评估排序算法的好坏。测试集里的数据其实和训练集非常类似,也是“查询关键字和文档对”作为一个样本。标签也是这个“配对”的相关度信息。前面说了,如果这是一个二分的相关信息,那么评估排序算法其实也就变成了如何评估二分分类问题。
对二分分类问题来说有两个主要的评价指标第一精度Precision也就是说在所有分类器已经判断是相关的文档中究竟有多少是真正相关的第二召回Recall即所有真正相关的文档究竟有多少被提取了出来。
因为是排序问题和普通二分分类问题不太一样的是这里就有一个Top-K问题。什么意思呢就是说针对某一个查询关键字我们不是对所有的文档进行评估而只针对排序之后的最顶部的K个文档进行评估。
在这样的语境下精度和召回都是定义在这个K的基础上的。要是没有这个K的限制在全部数据情况下精度和召回都退回到了“准确度”这个最基本的分类问题的评估测量情形。
在实际的应用中K的取值往往是很小的比如3、5、10或者25而可能被评分的文档的数量是巨大的理论上来说任何一个文档对于任何一个查询关键字来说都有可能是潜在相关对象。所以在评价排序算法的时候这个K是至关重要的简化问题的方法。
除了精度和召回以外信息检索界还习惯用F1值对排序算法进行评估。简单来说F1值就是精度和召回“和谐平均”Harmonic Mean的取值。也就是说F1结合了精度和召回并且给出了一个唯一的数值来平衡这两个指标。需要指出的是在很多实际情况中精度和召回是类似于“鱼与熊掌不可兼得”的一组指标。所以F1值的出现让平衡这两个有可能产生冲突的指标变得更加方便。
刚才我说的评估主要是基于二分的相关信息来说的。而相关的标签信息其实可以定义为更加丰富的多元相关信息。比如,针对某一个查询关键字,我们不再只关心某个文档是否相关,而是给出一个相关程度的打分,从“最相关”、“相关”、“不能确定”到“不相关”、“最不相关”,一共五级定义。在这种定义下,至少衍生出了另外两个评价排序算法的方法。
我们可以使用多类分类Multi-Class Classification的评价方法也就是把五级相关度当做五种不同的标签来看分类器的分类准确度。当然这样的评价方式对于排序来说是有问题的。因为对于一个实际的数据集来说五种相关类型所对应的数据量是不同的。
一般来说,“最相关”和“相关”的文档数量,不管是针对某个查询关键字还是从总体上来看,都是比较少的,而“不相关”和“最不相关”的文档是大量的。因此,单单看分类准确度,很可能会得出不恰当的结果。
比如说,某个排序算法能够通过分类的手段把大量的“最不相关”和“不相关”的文档分类正确,而可能错失了所有的“最相关”文档。即便从总的分类准确度来说,这样的算法可能还“看得过去”,但实际上这样的算法并没有任何价值。所以,从多类分类的角度来评价排序算法是不完整的。
针对这样的情况研究者们设计出了基于五级定义的排序评价方法NDCGNormalized Discounted Cumulative Gain。在这里针对NDCG我就不展开讨论了你只需要知道NDCG不是一个分类的准确度评价指标而是一个排序的精度指标。
NDCG这个指标的假设是在一个排序结果里相关信息要比不相关信息排得更高而最相关信息需要排在最上面最不相关信息排在最下面。任何排序结果一旦偏离了这样的假设就会受到“扣分”或者说是“惩罚”。
需要特别指出的是我们这里讨论的NDCG仅仅是针对测试集的一个排序评价指标。我们的排序算法依然可以在训练集上从五级相关度上训练多类分类器。仅仅是在测试集上采用了不同的方法来评价我们的多类分类器结果而不是采用传统的分类准确度。从某种意义上来说这里的NDCG其实就起到了“模型选择”Model Selection的作用。
小结
今天我为你讲了单点法排序学习。可以看到,整个问题的设置已经与传统的文字搜索技术有了本质的区别 。
一起来回顾下要点第一单点法排序学习起步于20世纪90年代直到2000年后才出现了更多有显著效果的研究。第二详细介绍了单点法排序学习的问题设置包括训练集、测试集以及测试环境。
最后给你留一个思考题有没有什么方法可以把我们之前讨论的TF-IDF、BM25和语言模型这些传统的排序算法和单点法排序学习结合起来

View File

@ -0,0 +1,70 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
039 查询关键字理解三部曲之扩展
我们在本周的前两篇文章中分别介绍了查询关键字分类Query Classification和查询关键字解析Query Parsing的基本概念和思想。今天我来讲一个稍微有一些不同的查询关键字理解模块查询关键字扩展Query Expansion
查询关键字扩展想要解决的问题和分类以及解析略微不同。其主要目的不仅仅是希望能够对用户输入的关键字进行理解,还希望能够补充用户输入的信息,从而达到丰富查询结果的效果。
查询关键字扩展的概念
为什么要提供查询关键字扩展主要原因还是用户输入的查询关键字信息不足。还记得我们上次提到的“苹果价格”这个例子吗在这个例子中用户到底是希望查询“苹果”作为一种水果的价格还是“苹果”作为手机的价格其实无法真正从这个查询关键字中得出。因此作为搜索引擎如果为用户提供一些“扩展选项”也就是一个被改写Reformulated过的查询关键字会提供更加好的用户体验和更加精准的搜索结果。
查询关键字扩展除了显示出来能够让用户有更好的体验以外还有一个作用是增加文档的“召回”Recall从而为提高搜索结果奠定基础。设想这样一个例子用户搜索“iphone 6 backup”希望了解如何备份iPhone 6的信息。因为苹果手机的绝大多数机型的备份流程都大同小异因此如果把“iphone 6”给扩展到“iphone”其他机型然后看是否有比较好的介绍备份的网页可以显示。
值得注意的是在扩展的过程中也有可能失去“精度”Precision。比如假设苹果对iPhone 7的备份流程做了很大的改进那么其他机型的流程也许就不适用了所以当用户搜索“iphone 7 backup”的时候如果我们扩展到了其他机型那让用户看到的很可能就是不那么相关的信息了。因此对“精度”和“召回”的平衡成了查询关键字扩展的一个重要的权衡点。
查询关键字扩展的另外一个重要应用就是对同义词和缩写的处理。比如唐纳德·特朗普Donald Trump是美国现任总统。那么如果用户在搜索“Donald Trump”、“Trump”、“US President”、“POTUS”这是“President Of The United States”的简称等类似词汇的时候搜索引擎应该提供相似的结果。而从词汇的直接联系上这些词汇在表面形式上可能有很大的差异比如“Trump”和“POTUS”因此需要其他手段学习到这些词语内涵的同义。
查询关键字扩展的技术
知道了查询关键字扩展的含义以后,我们就来看看有哪些技术可以为查询关键字扩展提供支持。
根据上面提供的一些例子,你可以看到,这里的核心就是找到搜索结果意义上的“同义词”。那么,在搜索中,如何挖掘“同义词”呢?
今天我在这里分享两种思路。
第一种思路是根据查询关键字和查询结果之间的自然结合产生的同义效果。这需要对用户的搜索行为数据进行大规模挖掘。这里的基本假设是这样的假设我们有两个搜索关键字A和B。从A的搜索结果中用户可能点击了一些网页从B的结果中用户可能点击了另外的一些网页。如果这些被点击的网页恰好非常类似那么我们就可以认为A和B其实是同义的查询关键字。
更加完整的做法是把查询关键字和网页分别表示成“图”Graph中的两类节点Node。每个关键字节点和多个网页节点建立联系Edge或者边Link象征这些网页对应这个关键字的相关页面。而从每个网页的角度上看多个关键字节点又和同一个网页节点相连表示这些关键字都有可能和某个网页相关。
拿上面提到的特朗普的例子来说美国白宫的首页作为一个节点的话就有可能会和“Trump”、“US President”以及“POTUS”这几个查询关键字相关。因此你可以看到寻找同义词的工作就变成了如何在这个图上进行相似节点特别是相似关键字节点的挖掘工作。
如果把查询关键字的节点放在一边把网页节点放在一边我们就看到了典型的“二分图”Bipartite Graph。二分图的特点是同边的节点之间没有连接比如关键字和关键字之间没有连接而所有的连接都发生在不同边的节点之间关键字和网页之间
二分图的聚类问题Clustering是机器学习界的经典的问题。而利用二分图的聚类问题来做查询关键字的同义词挖掘也是很多研究人员尝试的方向。文末我列了几个参考文献比如参考文献[2]就是利用二分图上的“随机游走”Random Walk以及随机游走所产生的“到达时间”Hitting Time来挖掘出类似的关键字。如果你有兴趣可以查看这篇经典论文。
说了基于用户行为信息和关键字挖掘的思路以后,我们再来看看第二种思路。
第二种思路的核心是从海量的文本信息中分析出词语之间的相关度。这里面需要注意的是这些词语的相关度有可能是语言本身带来的。比如单词“Male”和“Man”。也可能是语境带来的比如谈论手机的网页中对于“iPhone 6”和“iPhone 7”的谈论。
总之这一个思路的想法就是如何为每一个词组都建一个“表达”Representation从而通过这个表达找到同义词。近年来流行的一个做法是为单词找到数值表达也就是通常所说的“嵌入”Embedding。如果两个词在“嵌入空间”Embedding Space通常是“欧式空间”中距离相近那么我们就可以认为这两个词是同义词。
如何为词组产生“嵌入”向量呢这里面也有很多做法。比较通用的有算法Word2Vec参考文献[3]目标是通过一个文档的每一句话中某一个词周围的词来预测这个词出现的概率。可以设想一下在苹果手机的很多帮助文档或者帮助站点中描述如何帮助iPhone 6或者iPhone 7来做数据备份的字句都是相似的甚至可能唯一的区别就是描述机型的名字。
因此在这样的情况下通过文字周围的“上下文信息”Contextual来对单词本身的“嵌入向量”进行学习可以有效地学习到单词的语义。而通过语义我们就能够找到其他的同义词。当然要想真正应用到查询关键字扩展中可能还需要有其他的调试比如文末我列的参考文献[4],就是其中的一种。如果你感兴趣,建议去精读。
最后我需要说明的是,第一种思路需要已经有不少的用户交互数据,而第二种思路可以通过其他的语料(比如维基百科)加以学习,并不需要用户数据。这也是另一个值得参考的信息点。
小结
今天我为你讲了查询关键字理解中的查询关键字扩展问题。你可以看到,查询关键字扩展从技术上的两种流派,一个是通过用户的交互数据来产生一个图,并且利用图挖掘技术来得到查询关键字之间的关系;另外一个就是通过产生词汇的嵌入向量从而得到同义词。
一起来回顾下要点:第一,简要介绍了查询关键字扩展的内涵。由于用户输入的查询关键字信息不足,通过查询关键字扩展可以提供更好的用户体验和更加精准的搜索结果。第二,详细介绍了查询关键字扩展的两个主要技术。
最后,给你留一个思考题,如何来测试查询关键字扩展的优劣呢?
参考文献
Claudio Carpineto and Giovanni Romano. A Survey of Automatic Query Expansion in Information Retrieval. ACM Computing Surveys. 44, 1, Article 1 (January 2012), 50 pages.2012.
Qiaozhu Mei, Dengyong Zhou, and Kenneth Church. Query suggestion using hitting time. Proceedings of the 17th ACM conference on Information and knowledge management (CIKM 08). ACM, New York, NY, USA, 469-478. 2008.
Mikolov, Tomas, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of word representations in vector space. arXiv preprint arXiv:1301.3781 (2013).
Diaz, Fernando, Bhaskar Mitra, and Nick Craswell. Query expansion with locally-trained word embeddings. arXiv preprint arXiv:1605.07891 (2016).

View File

@ -0,0 +1,79 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
040 搜索系统评测,有哪些基础指标?
我在之前几周的专栏文章里主要讲解了最经典的信息检索Information Retrieval技术和基于机器学习的排序学习算法Learning to Rank以及如何对查询关键字Query进行理解包括查询关键字分类、查询关键字解析以及查询关键字扩展。这些经典的技术是2000年后开始流行的各类搜索引擎的核心技术。
在进一步介绍更多的搜索引擎技术前我觉得有必要专门抽出一周时间来好好地看一下搜索系统的评测Evaluation以及我们经常使用的各类指标Metric。俗话说得好“如果你不能衡量它你就不能改进它”If You Cant Measure It, You Cant Improve It。意思其实就是说对待一个系统如果我们无法去衡量这个系统的好坏没有相应的评测指标那就很难真正地去琢磨怎么改进这些指标从而达到提升系统的目的。
虽然我们这里是在搜索系统这个重要场景中讨论评测和指标,但实际上我们这周要讨论的很多细节都可以应用到很多类似的场景。比如,我们后面要讨论的推荐系统、广告系统等,在这些场景中几乎就可以无缝地使用这周要讲的很多内容。
线下评测
假设你今天开发了一个新软件,比如说是一个最新的手机软件,你怎么知道你的用户是不是喜欢你的软件呢?你怎么知道你的用户是不是愿意为你的软件掏钱呢?
评测的核心其实就是了解用户的喜好。最直接的方法,当然是直接询问用户来获得反馈。例如你可以对每一个下载了你手机软件的用户强行进行问卷调查,询问他们对待新软件的态度。
然而,我们很快就会发现这样的方法是行不通的。姑且不说用户是否会因为这样强行的方式产生反感,我们是不是能通过这些调查问卷获得用户的真实反馈,这本身就是一个问题。这里面涉及到调查问卷设计的科学性问题。
即便这些调查问卷都能完整准确地反映出用户对手机软件的看法,真正实施起来也会面临种种困难。如果这款手机软件的用户数量有百万甚至千万,那我们就要进行如此大规模的问卷调查,还要处理调查后的数据,显然这样做的工作量非常大。而这些调查问卷是没法反复使用的,因为下一个版本的软件更新后,用户的态度就会发生改变,这样的方式就没法系统地来帮助软件迭代。
那么如何才能形成一组数据来帮助系统反复迭代,并且还能够减少人工成本,这就成了一个核心问题。
在信息检索系统开发的早年研究人员和工程师们就意识到了这个核心问题的重要性。英国人赛利尔·克莱温顿Cyril Cleverdon可以算是最早开发线下测试集的计算机科学家。
赛利尔生于1914年在英国的布里斯托Bristol图书馆工作了很长时间。从1950年开始赛利尔就致力于开发信息检索系统以提高图书馆查询的效率。1953年他尝试建立了一个小型的测试数据集用于检测图书管理员查找文档的快慢。这个工作最早发表于1955年的一篇论文参考文献[1])。
这之后,英美的一些早期信息检索系统的研发都开始顺应这个思路,那就是为了比较多个系统,首先构造一个线下的测试数据集,然后利用这个测试集对现有的系统反复进行改进和提升。如果你想对早期测试集的构造以及信息有所了解,建议阅读文末的参考文献[2]。
那么,当时构造的这些测试数据集有些什么特点呢?
这些测试数据集都会包含一个查询关键字集合。这个集合包含几十到几百不等的查询关键字。一方面,这些关键字的选取大多来自于经验。另一方面,从赛利尔就开始认识到,需要保证有一些信息一定能够通过这些关键字来找到。其实,这里就是在测试我们后面要讲的“召回”。
在有了这些查询关键字以后,这些测试数据集往往有几百到几千不等的文档。这些文档中的某一部分,研究人员在构造数据集的时候就知道了会包含所对应查询关键字需要的信息,也就是我们后面要说的相关文档。
你可以看到几十到几百的查询关键字以及几千个文档很明显不能代表所有可能使用系统的用户的行为。你甚至可以说这都无法代表绝大多数用户的行为。然而这种测试集的好处是查询关键字和文档本身是和要测试的系统无关的。也就是说今天我们要测试系统A还是明天要测试系统B都可以反复利用同样一组测试数据集。这样做的好处相比于我们之前提到的问卷调查是显而易见的。
另外,我需要强调的是,“用户”这个概念在测试数据集中被“抽象”出去了。当我们在讨论文档相对于某个查询关键字的相关度时,我们假定这种相关度是恒定的,是对于所有用户都适用的。因此,究竟是哪位用户在使用这个系统并不重要。只要研发的系统能够在这些“标准化”的查询关键字和文档的集合表现优异,我们就相信这个系统能够满足所有用户的需要。
因为测试数据集并不是用户与产品交互产生的真实回馈结果,所以我们往往又把测试数据集叫作“线下评测数据”。
基于二元相关度的评测指标
从线下收集评测数据以后,我们最容易做到的就是利用“二元相关度”所定义的一系列评测指标来衡量手中系统的好坏。
什么叫“二元相关度”呢?简单来说,就是指针对某一个查询关键字而言,整个测试集里的每一个文档都有一个要么“相关”要么“不相关”的标签。在这样的情况下,不存在百分比的相关度。而每个文档针对不同的关键字,有不同的相关信息。
假定某个系统针对某个关键字,从测试数据集中提取一定量的文档而不是返回所有文档,我们就可以根据这个提取的文档子集来定义一系列的指标。
有两个定义在“二元相关度”上的指标就成了很多其他重要指标的基石。一个叫“精度”Precision也就是说在提取了的文档中究竟有多少是相关的。另一个叫“召回”Recall也就是说 在所有相关的文档中,有多少是提取出来了的。
“精度”和“召回”的相同点在于分子都是“即被提取出来了又相关的文档数目”。这两个指标所不同的则是他们的分母。“精度”的分母是所有提取了的文档数目而“召回”的分母则是所有相关的文档数目。如果我们返回所有的文档“召回”是1“精度”则是相关文档在全集中的比例。因此我们注意到这两个指标其实都假定提取的文档数目相比于全集而言是相对比较小的子集。
很快大家从实践中就体会到“精度”和“召回”就像是“鱼与熊掌不可兼得”。一个系统很难做到“精度”和“召回”都能够达到很高的数值。也就是说我们往往需要在这两个指标之间做一些平衡。于是研究人员开始寻找用一个数字来表达“精度”和“召回”的“平均水平”。来自英国的学者范·李杰斯博格C. J. van Rijsbergen最早在论文中采用了 “调和平均数” Harmonic Mean来计算 “精度”和“召回”的平均(参考文献 [3]。这个方法被后人称为“F值” ,并且一直沿用至今。
这里对“精度”和“召回”还需要注意一点因为这两个指标都是基于“二元相关度”的。因此这两个指标都不是“排序指标”Ranking Metrics。换句话说这两个指标其实并不能真正评价排序系统。
比如我们针对某个关键字提取10个文档如果有3个相关文档被取出来不管是“精度”还是“召回”都无法分辨这三个文档在最后序列中的位置是头三位还是后面的三位很遗憾“精度”和“召回”都无法解决这个问题。“二元相关度”的这个问题也就指引研究人员去开发真正能对排序进行评估的指标。
小结
今天我为你讲了搜索系统的评测和常用指标。这是现代搜索技术中一个非常重要的一个环节,那就是如何评价我们构建的系统。我们详细讲解了线下测试的由来以及这样的测试相比于调查问卷的优势。
一起来回顾下要点:第一,简要介绍了可重复使用的线下测试集的历史,以及这样的测试集都有什么特点与局限。第二,详细介绍了两个非常流行和重要的基于“二元相关度”的评测指标,那就是“精度”和“召回”。
最后,给你留一个思考题,我们讲了排序的好坏不能简单地从“精度”和“召回”的数值看出,那能不能动一些手脚呢?如果我们就依赖“二元相关度”,有没有什么方法来看“排序”的好坏呢?
参考文献
R.G. THORNE, B.Sc., A.F.R.Ae.S. The Efficiency Of Subject Catalogues and The Cost of Information Searches. Journal of Documentation, Vol. 11 Issue: 3, pp.130-148, 1995.
K. SPARCK JONES, C.J. VAN RIJSBERGEN. Information Retrieval Test Collections. Journal of Documentation, Vol. 32 Issue: 1, pp.59-75, 1976.
C.J. VAN RIJSBERGEN. Foundation of Evaluation. Journal of Documentation, Vol. 30 Issue: 4, pp.365-373, 1974.

View File

@ -0,0 +1,76 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
041 搜索系统评测,有哪些高级指标?
周一我们介绍了基于“二元相关”原理的线下评测指标。可以说从1950年开始这种方法就主导了文档检索系统的研发工作。然而“二元相关”原理从根本上不支持排序的评测这就成了开发更加准确排序算法的一道障碍。于是研究人员就开发出了基于“多程度相关”原理的评测标准。今天我就重点来介绍一下这方面的内容。
基于多程度相关原理的评测
从“二元相关”出发自然就是给相关度更加灵活的定义。在一篇发表于NIPS 2007的文章中参考文献[1]雅虎的科学家介绍了雅虎基于五分标准的相关评价体系从最相关到最不相关。而在同一年的SIGIR上谷歌的科学家也发表了一篇文章参考文献[2]),介绍了他们的“多程度”相关打分机制。至此之后,基于“多程度相关”原理的评价标准慢慢被各种搜索系统的研发者们所接受。
在这样的趋势下基于“二元相关”的“精度”Precision和“召回”Recall都变得不适用了。我们需要新的、基于“多程度相关”的评价指标。
芬兰的科学家在2000年的SIGIR上参考文献[3])发表了一种计算相关度评测的方法。这种方法被广泛应用到了“多程度相关”的场景中。那么,芬兰科学家发明的方法是怎样的呢?
这种方法被称作是“折扣化的累积获得”Discounted Cumulative Gain简称“DCG”。 在介绍DCG之前我们首先假定位置1是排位最高的位置也就是顶端的文档而位置数随着排位降低而增高位置10就是第一页最后的文档。
DCG的思想是这样的。
首先,一个排序的整体相关度,是这个排序的各个位置上的相关度的某种加权。这样用一个数字就描述了整个排序。只要排序的结果不同,这个数字就会有所不同。因此,这就避免了“精度”或“召回”对排序不敏感的问题。
其次每个位置上面的“获得”Gain是和这个文档原本定义的相关度相关的但是根据不同的位置要打不同的“折扣”。位置越低也就是位置数越大折扣越大。这就是DCG名字的由来。
在原始的DCG定义中“折扣”是文档的相关度除以位置的对数转换。这样既保证了位置越低位置数大折扣越大还表达了高位置位置数小的差别要大于低位置之间的差别。这是什么意思呢意思就是如果某一个文档从位置1挪到了位置2所受的折扣或者说是损失要大于从位置9挪到了位置10。在这样的定义下DCG鼓励把相关的文档尽可能地排到序列的顶部。
事实上假设我们有5个文档假定他们的相关度分别是1、2、3、4、5分别代表“最不相关”、“不相关”、“中性”、“相关”和“最相关”。那么在DCG的定义下最佳的排序就应该是把这5个文档按照相关度的顺序也就是5、4、3、2、1来排定。任何其他的顺序因为根据位置所定义的“折扣获得”的缘故都会取得相对较小的DCG因此不是最优。DCG比“精度”和“召回”能够更好地表达对排序的评估。
但直接使用DCG也存在一个问题。如果我们有两个查询关键字返回的文档数不一样那么直接比较这两个查询关键字的DCG值是不“公平”的。原因在于DCG的“加和”特性结果肯定是越加越大因此不能直接比较两个不同查询关键字的DCG值。
有没有什么办法呢把DCG加以“归一化”的指标叫做 nDCG Normalized Discounted Cumulative Gain。nDCG的思路是下面这样的。
首先对某一个查询关键字的排序根据相关信息来计算一组“理想排序”所对应的DCG值。理想排序往往就是按照相关信息从大到小排序。然后再按照当前算法排序所产生的DCG值除以理想的DCG值就产生了“归一化”后的DCG也就是我们所说的nDCG值。简单来说nDCG就是把DCG相对于理想状态进行归一化。经过nDCG归一化以后我们就可以比较不同查询关键字之间的数值了。
这里需要说明的是我们上面介绍的是DCG的原始定义。后来微软的学者们在2005年左右发明了另外一个变种的DCG基本原理没有发生变化只是分子分母有一些代数变形。这个新的版本后来在工业界得到了更加广泛的应用。如果你感兴趣可以查看文末的参考文献[4]。
直到今天nDCG以及DCG依然是评价排序算法以及各种排序结果的标准指标。
比较两个不同的排序
不管是我们之前谈到的“精度”和“召回”还是今天介绍的nDCG我们都是使用一个“数”来描述了相对于某个查询关键字一组结果的好坏。当我们有多个查询关键字的时候我们该如何比较两个不同排序的结果呢
这里面的一个问题是相对于两个不同的排序A和B来说可能结果各有千秋也许对于某一个关键字A比B的表现要好但是另外一个关键字B就比A的结果更棒。这怎么办呢
也许你会想到用平均值来描述A和B的表现。这的确是很好的第一步。于是我们就计算A和B两个排序的平均表现。这样对于这两个排序而言我们就有了两个数值来表达这两个排序的好坏。
然而很快我们就会遇到问题。假设A的nDCG平均值是0.781B的nDCG平均值是0.789我们可以下结论认为B是比A更好的排序算法吗
答案当然是不一定。这种情况,我们就需要依赖统计工具“假设检验”来评价两个排序的好坏。
我这里就不去复习假设检验的细节了,简单说一个经常使用的工具。
如果我们比较A和B是在同一组查询关键字上的话那我们常常可以使用“两个样本的配对T检验”Two Sample Paired T-Test。这里所谓的“配对”是指A和B的结果是可以一一比较的。这里的“T检验”其实就是说借助“T分布”或者我们通常所说的“学生分布”来进行假设检验。如果我们是在不同查询关键字集合中进行比较的话还有其他的假设检验工具这里就不展开了。
值得注意的是假设检验本身也不是“万灵药”。第一怎么最有效地在排序结果上进行假设检验还是一个研究话题包括我们刚说的“两个样本的配对T检验”在内的所有方法都不是“金科玉律”。第二依靠假设检验得出来的结论仅仅是统计意义上的“好坏”和这些系统在用户面前的表现可能依然会有很大差距。因此对于假设检验的结果也要带有“批判”的眼光。
小结
今天我为你讲了现代搜索技术中如何评价我们构建的系统,特别是如何评价排序系统。
一起来回顾下要点第一简要讲解了基于“多程度相关”的评价体系包括其由来和DCG以及nDCG的概念。第二详细介绍了如何来比较两个排序的好坏。
最后给你留一个思考题如果我们只有“二元”相关信息能不能用nDCG来评价好坏呢
参考文献
Ben Carterette and Rosie Jones. Evaluating search engines by modeling the relationship between relevance and clicks. Proceedings of the 20th International Conference on Neural Information Processing Systems (NIPS07), J. C. Platt, D. Koller, Y. Singer, and S. T. Roweis (Eds.). Curran Associates Inc., USA, 217-224,2007.
Scott B. Huffman and Michael Hochster. How well does result relevance predict session satisfaction? Proceedings of the 30th annual international ACM SIGIR conference on Research and development in information retrieval (SIGIR 07). ACM, New York, NY, USA, 567-574, 2007.
Kalervo Järvelin and Jaana Kekäläinen. IR evaluation methods for retrieving highly relevant documents. Proceedings of the 23rd annual international ACM SIGIR conference on Research and development in information retrieval (SIGIR 00). ACM, New York, NY, USA, 41-48, 2000.
Chris Burges, Tal Shaked, Erin Renshaw, Ari Lazier, Matt Deeds, Nicole Hamilton, and Greg Hullender. Learning to rank using gradient descent. Proceedings of the 22nd international conference on Machine learning (ICML 05). ACM, New York, NY, USA, 89-96, 2005.

View File

@ -0,0 +1,69 @@
因收到Google相关通知网站将会择期关闭。相关通知内容
042 如何评测搜索系统的在线表现?
我在本周前面的两篇文章中为你讲解了基于“二元相关”和基于“多程度相关”原理的线下评测指标。利用这些指标,研发人员在半个世纪的时间里开发了一代又一代的搜索系统,这些指标和系统也都在不断演化。
虽然我们这周讲过的这些指标都很有指导意义,但大多数指标被提出来的时候都是基于线下的静态数据集,并不是真正去检测用户和系统的互动(虽然后期也有研发人员直接使用这些评测工具用于在线评测,但在使用上就产生了问题)。那有什么样的方法来评测搜索系统的在线表现呢?
为了回答这个问题,我们今天就来探讨一下进行在线评测的几个话题。
在线可控实验
我们先回到整个评测指标的初衷,为什么要进行线下测试呢?
第一个原因是在信息检索系统也就是最早的搜索系统的开发时期还很难做在线可控实验Controlled Experiments研发人员还没有开发出值得依赖的手段来判断用户的行为。因此在那个年代比较可靠的方法就是调查问卷和后来开发出来的线下静态评测。可以说这些手段都是真正了解用户行为的一个“代理”Proxy
要进行评测,不管是线下还是线上,另外一个原因就是我们需要某种手段来分辨两个系统的好坏,从而能够不断地通过这种手段来改进系统,做到数据驱动。
那么能够正确观测两个系统不同的工具就是“在线可控实验”有时候又称作“在线实验”或者也叫作“在线A/B实验”。
在线可控实验其实是建立“因果联系”Causal Relationship的重要工具也可以说是唯一完全可靠的工具。这里面的基础是统计的假设检验。
具体来说就是我们针对访问网站或者应用的人群进行某种划分一般情况下是平均随机划分百分之五十的用户进入划定的一个群组叫作“控制组”Control Bucket而另外百分之五十的用户进入另外一个群组叫作“对照组”Treatment Bucket。“控制组”和“对照组”的唯一区别在于所面对的系统。
假设有一个搜索系统我们想对其中的某个部分进行改进那么我们可以保持住其他的部分让这个希望得到改进的部分成为唯一的“独立变量”Independent Variable也就是在整个实验设置中的变量。这样我们就希望看到能否通过在线实验以及假设检验的工具来认定这个“独立变量”是否会带来系统性能上的提高亦或是降低。
这里面还有一个需要提前确定的那就是需要评测的指标特别是用户指标比如网站的点击率、搜索的数量等等。这些指标我们称之为“依赖变量”Dependent Variable。说白了我们就是希望能够在“独立变量”和“依赖变量”之间通过假设检验建立联系。
虽然在概念上很容易理解在线可控实验,但在实际操作中会面临很多挑战。
虽然在理想状态下,我们可以把用户五五对分,让用户分别进入“控制组”和“对照组”。然而现实中,经过随机算法分流的用户群在这两个群组中很可能并不呈现完全一样的状态。什么意思呢?
举个例子,比如,在“控制组”中,相比于“对照组”而言,可能存在更多的女性用户;或者是在“对照组”中,可能存在更多来自北京的用户。在这样的情况下,“依赖变量”,比如网站点击率,在“控制组”和“对照组”的差别,就很难完全解释为“独立变量”之间的差别。
也就是说,如果“控制组”下的点击率比“对照组”高,是因为我们更改了系统的某部分产生了差别呢,还是因为这多出来的女性用户呢,又或者是因为女性用户和系统的某些部分的交互,产生了一定复杂的综合结果导致的呢?这就比较难说清楚了。对于刚才说的有更多来自北京的用户这个例子也是一样的。
当然,在现实中,如果说我们依然可以比较容易地通过算法来控制一两个额外的变量,使得在“控制组”和“对照组”里面这些变量的分布相当,那么,面对十几种(例如,年龄、性别、地域、收入层级等等)重要变量,要想完全做到两边的分布相当,难度很大。
即便我们能够做到通过随机算法使得已知变量在两个群组中的分布相当,我们依然不能对当前还未知的变量进行如此操作。因此,如何处理因人群特性所带来的对结论的影响是现实中在线实验的难点之一。
在线实验的难点之二是,我们有可能很难做到如设想中的那样,让系统的某个部分成为“控制组”和“对照组”中唯一的“独立变量”,即便是除去了刚才所提到的人群差异。
在现代网站或者应用中,有很多服务、子系统、页面、模块同时在为整个网站服务。而这些服务、子系统、页面和模块,都有不同的前端系统和后端系统,很可能属于不同的产品和工程团队。每个部分都希望能够做自己的可控实验,希望自己改进的部分是唯一变化的“独立变量”。然而,我们从宏观的角度去看,如果每个部分都在做自己的实验,而我们做实验的基本单元依旧是每个用户的话,那这就很难保证用户之间的可比性。
举个例子如果用户U1进入了首页的“控制组”然后访问了搜索页面的“对照组”继而离开了网站。而用户U2直接访问了帮助页面的“对照组”然后访问了搜索页面的“控制组”。那U1和U2两个用户最终产生的点击率的差别就很难从他们访问网站页面的过程中得出结论。即便是在有大量数据的情况下我们也很难真正去平衡用户在所有这些页面的组别之间的关系。
实际上如何能够有效地进行在线实验包括实验设计、实验评测等都是非常前沿的研究课题。每年在KDD、WSDM、ICML等学术会议上都有不少新的研究成果出炉。
利用因果推论对实验结果进行分析
今天的最后我想提一下因果推论Causal Inference。因果推论不是普通的统计教科书内容也不在一般工程类学生接触到的统计内容之内。然而这个领域在最近几年受到了机器学习界越来越多的关注因此了解因果推论对于学习机器学习的前沿知识来说很有必要。
像我们刚才提到的种种实验中产生的用户特征不平均、实验之间可能存在关系等在这些方面我们都可以利用很多因果推论的工具进行分析。另外对于工程产品而言并不是所有的情况都能够通过A/B测试来对一个希望测试的内容、模型或者产品设计在一定时间内找到合理的结果有很多情况下是不能进行测试的。因此在不能进行测试的情况下还能通过数据研究得出期望的结果也就是说我们能否模拟在线实验这就是因果推论的核心价值。
一般而言,在机器学习中需要因果推论的场景也很常见。比如,我们需要用数据来训练新的模型或者算法,这里面的数据采集自目前线上的系统。然而,现在的线上系统是有一定偏差的,那么,这个偏差就会被记录到数据里。在此,因果推论就为机器学习带来了一系列工具,使得在一个有偏差的数据中依然能够无偏差地进行训练以及评测模型和算法。
小结
今天我为你讲了在现代搜索技术中,如何利用在线实验,特别是可控实验来评价我们构建的系统。
一起来回顾下要点:第一,详细介绍了在线实验的一些因素,并分析了在线实验中可能产生的用户不平衡以及实验有相互作用的问题。第二,简短地提及了现在利用因果推论来进行在线实验数据分析以及“偏差”调整的一个思路。
最后给你留一个思考题如何建立在线实验评测结果和线下指标比如nDCG之间的关系呢