程一-计算所 发表于 2020-5-22 21:00:57

视觉-语言:推理还是预训练?【VALSE Webinar】Panel实录

原文链接:https://mp.weixin.qq.com/s?__biz=MzA3Mjk0OTgyMg==&mid=2651125253&idx=1&sn=7781e58e9a817761a75fa74c7e7eeca8&chksm=84e6df54b3915642cd649a02367510b15d0dbfa6989881cd6d47cdf7da3e6ff4a0a93b63d797&token=610666446&lang=zh_CN#rd
编者按:多模态学习是深度学习中一个重要的问题。从感知到语义理解仍存在较大鸿沟。针对这几年深度学习技术在多模态学习中的发展,University of Technology Sydney 朱霖潮、Allen Institute of AI 卢家森、新加坡南洋理工 张含望、北京航空航天大学 刘偲,展开深度探讨,共话“多模态学习未来有哪些有意义的实际应用”这一议题。本文整理自VALSE Webinar 2020第10期Panel。
议题1:真正的推理是什么?一个端到端的深度模型可以算推理么?
张含望:这是一个哲学问题,推理是将知识表示和逻辑结合,把一个问题答案的中间所有演算步骤全部列出来,类似于中学时解答物理题数学题,只写一个答案应该是得不了满分的。 知识的表示可以分为meta-knowledge(元知识)和task-specific knowledge(特定任务的知识)。比如图片描述、用Faster RCNN预训练的模型,这些视觉对象特征都可以认为是元知识。而计算出来的视觉注意力(Visual attention)都属于特定任务的知识。同样的,逻辑也是有meta逻辑和task specific的逻辑。一个最简单的元逻辑就是1+1=2。如果使用10进制的话,5+5>10就要进位。这些元逻辑都已经写进硬件里了。例如transformer、attention、graph这种具体建立的模型,都应该算是特定任务的逻辑。我认为做视觉语言的推理,有一个很重要但还没有广泛开展的问题是“推理模型结构”。一些开创性的工作,比如model based network跟这种完全用transformer的黑盒模型很难打平手。在VQA这个任务上很明显,所有用明显显示推理模型的都比使用黑盒模型的效果要差很多。 比如对于VQA(Visual Question Answering,视觉问答)一个很实际的问题,“把物体A和物体B的位置换一下,那么现在物体A右边的物体是什么?”机器显然是没有见过这种例子的。所以面对实际问题,一个推理模型结构越强,就越能够打败黑盒模型。
吴琦:真正的推理类似于symbolic reasoning,在深度学习之前,大家说的推理就是symbolic reasoning。目前在视觉-语言或者其他一些任务里, symbolic reasoning还没有真正地应用起来。目前,像是用黑盒的方法、end-to-end的deep model(深层模型)或者是类似于预训练embedding的方法去更好地去拟合数据,甚至去专门学习数据的bias,显示出来的结果比较好。
刘偲:维基百科上关于reasoning的定义,是指将收集到的信息联系整合起来得出结论的一个过程。推理大概是可以分为三种:一种是演绎推理、归纳推理、类比推理。第二种是我认为真正的推理,这种推理需要借助于一些搭建的知识图谱或者是专家知识库。第三种推理可能要用一些逻辑关系,或者是一些代数运算,包括推断一些因果关系。
议题2:Vision-Language模型中视觉理解更重要还是语言理解更重要?
吴琦:Vision-language最早起源于计算机视觉领域,在image caption和VQA(Visual Question Answering)这种视觉端开始应用。所以大家普遍在视觉端做了很多改进,比如GNN,很多注意力机制都是放在视觉端去做,而对于语言的理解,目前的工作比较简单。比如用LSTM直接把语言编码成一个特征,没有做太多更深层次的理解。
卢家森:视觉部分应该还是更重要的。在目前我们所接受的数据集上面,即使我们能够看到每一次挑战,它能够得到一个更好的表现,很大程度上都是来自于更好特征的驱使,比较简单的像Peter Andrewson之前所做的用bounding box feature,核心来讲是用pretrained feature的效果就会远远抛开之前我们用ImageNet pretrained feature。我们发现在vision backbone上面,如果有一些feature提升的话,对于这些downstream task performance往往会有一个更好的任务表现。 Vision和language两者应该是同样重要的。但是现在来讲,我们对于Vision部分的理解或者在vision feature部分,并没有学到很好,所以导致vision feature应该是一个瓶颈。如何学到一个更好的feature,如何学到一个比较disentangle的feature,其实这个应该是张含望老师最近做的一些工作。Vision部分应该也是我们现在注重的,但是另外一个角度来讲,最近的一些BERT模型起源于从NLP那边借鉴过来的一些概念。所以,其实两者应该都是很重要,但是我认为bottleneck可能还是停留在一个vision feature上面。现在之所以大家在Vision方面做的工作更多,是因为Vision是一个瓶颈,语言本身不会那么复杂。
张含望:其实有一个好讨巧的答案,将Vision-language双向连接起来的“-”最重要。这可能就触及到真正的智能了,即如何从物理世界当中(这个物理世界指的是像素)抽象出符号,以及如何对于给定符号去操纵像素。 我们不关注视觉或者语言如何去编码,将所有特征表达出来之后,Vision-language领域更强调的是如何去结合二者做中间的推理。
议题3:Vision-Language未来的主流方法会是什么?基于推理的模型?还是基于预训练就够了?
张含望:这两个方向都是很主流的方法。老话讲的好,有钱的捧个钱场,没钱的出力。如果是有钱的话,比如说GPU卡比较多,数据比较多,版权方面也没有问题,我认为可以为整个社区来做一个预训练的知识模型,这可以让大部分没有那么多卡也没有那么多时间的在学术领域的专家学者能够更好地聚焦在推理上面。推理上面的话,可能很多的模型目前为止都不太能正常运转,所以说这也是一个可以开放讨论的问题。如果有人能够把预训练模型搭建一个比较好的大树,就可以让在高校里的人在大树下好乘凉。
朱霖潮:我个人理解Vision-language既需要很理解视觉,又懂得如何说话,同时还要懂得如何去做视觉与语言之间的推理或者转换。Vision实际上是比较重要的,如何抽象一张图片,其实就是一个比较好的问题。我们做的一些GCN工作,主要还是在图像上面去做一些理解,例如利用GCN就可以比较好地表达实体之间的关系。我认为常识(common sense)现在并没有实际应用在GCN或者现有模型里面,或者也可以把它叫做是bias。比如“一个人坐在椅子上”是常识,但是这种常识性的信息实际上在现在的模型中是比较缺失的。所以我认为Vision-language未来应该是Vision加上一些人类先验知识去做推理,或是一些比较复杂的转换。 GCN在其中扮演的角色,应该是去做一个复杂视觉的理解,包括节点之间的理解,还有如何把视觉转换成语言。问题里提及GCN,包括其他的基于的卷积图的一些模块,实际上就是学习一个点对点的关系,然后再去做一个矩阵的乘法。但是现在越来越多的工作,实际上也在做一些graph的propagation。节点之间的关系怎么样去更新,这个其实刚刚讲的bias就可以引入了,比如说怎么把常识或者bias引入到节点的更新中。
刘偲:目前预处理模型在很多任务上,确实取得了一些性能。但是目前的数据集或者问题还相对比较简单。随着Vision-language逐步发展,在一些更加难的问题上需要引入常识,在这种情况下推理就很重要了。
吴琦:我们建立常识推理的数据集的时候,发现这种数据是非常非常难建立的。第一,现在其实并没有一个非常好的常识的knowledge base;第二,无论做VQA还是常识推理相关的referring expression数据,问题和表达都很生硬,感觉就是为了用这个common sense knowledge,而专门生生地造了一个问题,都不是特别符合人类的提问方式。这大概是大家还没有特别看好common sense reasoning的一个可能的原因:没有一个好的数据。
议题4:如何看待casual reasoning,counter fact以及bias的问题?
吴琦:关于casual reasoning,counter fact还有bias,我理解counter fact是反事实。比如说我经常看到的杯子就是在桌子上面,可能99.9%的情况下,杯子就是在桌子上面,我们为什么非得需要引入一个counter fact非得在桌子下面的一个反事实的东西呢?其实并不一定非得认为bias是不好的,也许我们认为的bias其实也是一种常识,为什么我们非得加这个counter fact呢?
张含望:这已经触及到因果推理的核心动机了,关于这个bias,有好的bias和坏的bias。好的bias是什么?我们在假设任何模型的时候,都会对这个非常复杂的事件进行一个简化,也就是所谓的inductive bias。还有一些好的bias在因果关系里面定义是叫中介。这个好的bias,例如咱们的常识是感冒了以后要喝姜汤,但是其实这个喝姜汤会产生一个中间物,比如说你想起来在小时候某一个下雨天,妈妈熬的姜汤使你感受到了母亲伟大的爱。这种安慰剂的效用,其实作用也很大,这个其实就是一个好的bias,因为确实喝姜汤导致你发汗了,然后感冒的情况有所好转。这个好的bias,没有对姜汤到治疗感冒这个因果路径进行了撒谎,那么它的唯一的问题是这种所谓的common sense在大部分情况下是对的,但是由于我们的模型还没有做更好的disentangle,没有仔细去分析,到底是中介物的效用还是最直接的效用,是指你喝一个中药的时候,到底是安慰剂的作用,还是这个药真正有效。所以在一些细节问题(个体问题)上,因果推理更在意的是个体的推理,如果没有做这件事情的话,对于个人会有什么样的影响。所以相比于大数据的统计,这些具体的推理问题,才能让机器更有灵魂,更有智能。这个是一些关于好的bias,那么如果想看一些相关的paper的话,可以看最近我们关于scene graph的一个paper。坏的bias就跟反事实没有关系了,坏的bias在因果关系里面,叫做confounder,就是一个混淆的因子,会让两个完全没有关系的变量产生了关系。例如吃巧克力多,跟拿诺贝尔奖多,这样一个关系。其实它们背后是有一个供应,就是国家的富裕程度导致了国家越富裕,吃的巧克力就越多,国家越富裕,人民的教育程度高,导致了拿诺贝尔奖的数量就多。但是吃巧克力跟诺贝尔奖之间是没有任何关系的。这种bias,是完完全全需要去除掉的。因为如果模型学到这样的bias,在将来test的时候,完全是不堪一击。 我认为像这种association和reasoning差的还是蛮远的。有一些association刚好是反映了reasoning,那就是好的bias,有一些association并不是真正符合因果推理的,这些association就是比较差的bias。这种差的bias又恰恰存在很多,我们要避免一些差的bias,使我们的模型更有推理性。
卢家森:这个肯定是一个很重要的话题,因为bias不仅在推理的时候,在语言领域学词向量的时候,也会遇到相同的问题。即使用这种预训练的方式,其实是用context(上下文)信息来预测目标信息,但如果这两个同时会出现的,比如cat和dog会同时出现,那并不代表着,cat和dog可能在物种上面会有联系,那cat跟kitten可能在大家的习惯上面不会同时出现,但是这两者其实本质是一个东西,是同一种动物。 如果在做causal reasoning的时候,是希望把这种同时出现的东西跟到底是不是一起的东西能够区分出来,这个可以通过一些confounder的方式来查找。但是有一个很大的问题,为什么我们会关注这个信息呢?是因为所收集的数据,第一是比较少的,第二是不完备的。所以可能模型在学习的时候会有bias,假设数据可以得到很多,范围能扩大,此时这些bias信息可能都会消失掉,因为数据越来越接近真实分布的话,模型可能自身就会来克服这个问题。所以在预训练的时候,如果运用大量的数据,可能就会学到一些有助于做causal reasoning的信息,但是这些东西,可能不是一个显性的,而可能是一个隐性的。对于一些特定的模型,或是特定的机理来学习这个东西,我认为也是很有帮助的。
议题5:在数据量有限的情况下,如何在vision-language中做数据增广?
朱霖潮:在自然语言处理上,其实有一些增广的方式,例如把句子前后翻转,或是交换一下位置。翻转应该是比较常见的,在vision和language,如果是完全对应的情况下,对于图片可以引入其他变换。比如不做crop,但是去做旋转,或者做一些颜色的变化,这个我认为应该是可以的。但是具体不太了解这些增广方式对的performance会有什么样的影响。
卢家森:在数据增广上面,因为language不像图片可以进行例如crop这些操作,所以我认为增广可以分为两种,一种是显性的增广,另一种是feature层面的增广。显性增广是指变换输入(input),例如把这个query进行翻转,或者学习到它一些同义句子,用translation的模型翻译过去再翻译回来,但是这样会导致结果不准确。Feature层面的增广,目前可以看到很多parallel的方式,比如用pre-trained的bert模型,因为BERT模型和feature本身是见了大量的数据,所以可能就会学习到你的这个问题。例如VQA里面的问题跟一些相似问题的某些feature会比较近,可以通过模型权重(weight)的方式来泛化(generalize)过来。所以也可以通过一些multi-task(多任务)的方式,例如同时在训练语料库(corpus)和VQA一种task就是一种隐性的增广。而且我现在比较看好的应该还是隐性的增广,因为显性的增广局限性比较大。 所谓的显性的增广,类似于在image classification里面常用的crop或者是翻转这种类型的增广。这种增广是指直接生成一个图像,或者是一个caption或者是question这种方式,其实不是特别好的,因为它可能不一定是增广的数据,反而有很多的噪声(noise)。而且很有可能生成这类问题,或者是caption,它的distribution和原始数据的distribution很像,起不到数据增广的作用。议题6:预训练需要大量的计算资源,该如何看待这种‘不公平’的研究?
卢家森:是这样的,我当时做第一个工作,用ViLBERT的时候,大概是用了20—30块的Titan X,用时大概两个月。其实很大的部分是在刚开始训练的过程中会有一些问题,例如有的feature可能是记错了,那它的feature是三个million的数据,可能这一部分需要重新提,就需要花很长的时间。其实,真正在训练的时候,这个ViLBERT的模型,如果是在三个million上面训练,在八块Titan X卡上面大概需要一天左右,可能用4卡,也就两天左右。对于第二个工作,因为当时是跟Facebook合作完成的,所以主要是在Facebook里面运行的。这个确实花的时间会比较长,当时是跑12个数据库,训练的时间大概是用了八块Titan V的卡跑了一个星期左右。所以确实可能需要的时间更长。 这个问题确实是一种不平衡,在一些学校里面,很难跟谷歌或者是Facebook来抗衡。这个东西如何取得进一步的成果,寄希望在这些大厂里面的员工的工作能够比较好的open source。基于在开源上面进行一些fine tune(调优、微调),随着基于在开源上面进行一些fine tune(调优、微调)的理念越来越成熟,可以避免一些之前的问题,所以消耗的时间应该也是越来越少的。与此同时最近的一些工作也会专注于如何更快地学习,如何使用更小的模型,例如怎么样用来pruning(剪枝),怎么样用来省这个weight,或者ViLBERT这种方式。这些也是有助于以后如何从需要卡比较多的地方向卡少的地方迁移,我认为这个应该是一个潮流。所以,可能还是需要一定的时间来等到更多的工作发展之后,训练所需要的资源会再小一步。
刘偲:这个问题不仅仅是vision-language特有的,在视觉领域也存在。我的想法是希望大厂能够多多开源。另外一方面,因为我也在北京,希望能有机会跟一些大厂公司进行合作,用一下计算资源。刚才提到的一些小模型(像TinyBERT),可能也是高校可以发力的一个点。
议题7 & 议题8:Vision and language在实际生产中落地情况如何?Vision and language在不同域间泛化有什么挑战?
朱霖潮:在实际的应用中,Vision and language具体落地有什么场景可以使用呢?比较成功的例子在微软的word或PPT里的根据图片会产生文字的功能。另外一个是例如客服的商用的基于纯文本的对话(dialogue)系统。虽然基于vision对图片去做QA或reasoning没有看到应用,但这是一个方向,大家可以去想这个实际的场景可以是什么样的应用场景。另外的一个启发是,我们做研究是否一定要落地,大学怎么样可以和公司区别开,并做一些好玩的研究。一个很通用的模型,可以解决某些问题,现在没有具体应用,但可能将来会用到其他的一些应用场景中。从vision到language是一个趋势。无论是detection model或者是segmention model,都存留在初级的阶段,最后要去做一个复杂的系统分析。假设有这样一个产品,对全世界建立了一个复杂模型,如果要做一个预测,最后应该是以文字的形式表现出来。vision现在处于一个比较早期的发展阶段,但是未来在一个非常复杂的系统里面去做非常复杂的分析,一定是要从vision映射到language。 不同域泛化之间挑战,最后可能还要针对一个具体问题的fine tuning或者是针对一个具体的问题做抽象。例如对应哪几个问题,可以去做一些更加通用的模型?caption的模型可能和其他的模型或者是retrieval的模型会共用一个模型。这个相当于更好地去组织这些已有模块。现在非常非常多的downsteam task,能不能更好的去找到这些task之间的联系,在vision方面,是有不少的工作去做。multi-task也是一个方向,整理这些任务能共用同一个模块,那么这个模块在同一种类型上面的模块就可以得到更好的泛化。其他的模块原理相同。 如上讨论的是一个meta模型,怎么去做fine tune。不同的模型之间,他们能否去做一个迁移,这也是一个比较好的方面。一个好的方向,应该是更好地去理解现在这些类之间的共通性,去建立一个比较层级化的组件。这样,最后的应用可以更加通用。
吴琦:Vision-language这一部分更像一个interface,背后可以有不同的task,不同的model,有vision,或是language。Vision本质是一种input,language是另外一种来自于人的input。其实我们在vision-language,也可以实用一些,像去年比较火的vision-language navigation,这方面将来是有可能产生一些具体落地的应用。
卢家森:Vision-language的应用其实很多,问题是目前学术界所关注的这些task可能不能直接应用在落地上面,例如怎么理解在使用短视频网站或淘宝购物等应用软件搜集的文本或图片信息,就是vision-language考虑的问题。现在所关注的这些reasoning处于一个比较初步的阶段,所以这些task能够落地是有限的。另外一个问题,在VR上面,language是一种交互,这种交互在VR上面就是一个比较好的体现。VR会有一个周围环境的检测,人会有一种交互的方式。但如何在这个方面能够听懂指令,包括在这种VR上面,在head set上面,vision-language是有很多应用的。
另外twelve in one paper的时候,其实能够同时达到一个模型,同时解决12个task,只是性能会比fine tune之前差一个点到零点几个点,所以为了做这种competition,会fine tune一下,但是不fine tune的结果也非常地好。demo里面其实是用的同一个模型,大家可以尝试一下。
张含望:应用层面上,vision-language领域做的所有学术研究,相比于传统机器学习或者是人工智能领域做的推理应用,已经有很多应用了。对于现阶段做的vision-language不能落地,没有必要太苛责。所有的人类知识的推进,都应该是层级化的,专业的人做专业的事。

VALSE Webinar改版说明:自2019年1月起,VALSE Webinar改革活动形式,由过去每次一个讲者的方式改为两种可能的形式:1)Webinar专题研讨:每次活动有一个研讨主题,先邀请两位主题相关的优秀讲者做专题报告(每人30分钟),随后邀请额外的2~3位嘉宾共同就研讨主题进行讨论(30分钟)。2)Webinar特邀报告:每次活动邀请一位资深专家主讲,就其在自己熟悉领域的科研工作进行系统深入的介绍,报告时间50分钟,主持人与主讲人互动10分钟,自由问答10分钟。
活动参与方式:1、VALSE Webinar活动依托在线直播平台进行,活动时讲者会上传PPT或共享屏幕,听众可以看到Slides,听到讲者的语音,并通过聊天功能与讲者交互;2、为参加活动,请关注VALSE微信公众号:valse_wechat 或加入VALSE QQ群(目前A、B、C、D、E、F、G、H、I、J、K群已满,除讲者等嘉宾外,只能申请加入VALSE M群,群号:531846386);*注:申请加入VALSE QQ群时需验证姓名、单位和身份,缺一不可。入群后,请实名,姓名身份单位。身份:学校及科研单位人员T;企业研发I;博士D;硕士M。3、在活动开始前5分钟左右,讲者会开启直播,听众点击直播链接即可参加活动,支持安装Windows系统的电脑、MAC电脑、手机等设备;4、活动过程中,请不要说无关话语,以免影响活动正常进行;5、活动过程中,如出现听不到或看不到视频等问题,建议退出再重新进入,一般都能解决问题;6、建议务必在速度较快的网络上参加活动,优先采用有线网络连接;7、VALSE微信公众号会在每周四发布下一周Webinar报告的通知及直播链接。8、Webinar报告的PPT(经讲者允许后),会在VALSE官网每期报告通知的最下方更新。9、Webinar报告的视频(经讲者允许后),会更新在VALSE爱奇艺、B站、西瓜视频,请在搜索Valse Webinar进行观看。
页: [1]
查看完整版本: 视觉-语言:推理还是预训练?【VALSE Webinar】Panel实录