本文是千千 11 月 27 日在复旦参加肖仰华教授所邀请举办的常识研讨会记录的学习笔记。
因为目前自己也在研究一点点的这块内容,感觉是一个大坑呀 (っ °Д °;)っ
正文开始:
什么是 Commonsense Knowledge (CSK)
关于什么是常识知识呢?实际上很难有一个精准的定义,目前大家大都只能用一些描述性的话语来解释它,因此直接放上一位大佬的观点。
人工智能专家 McCarthy 的观点:
- 关于状态随时间和事件而变的知识
- 关于并发事件的结果的知识
- 关于物体在空间中的生灭及其位置和形状变化的知识
- 关于表示和利用知识的知识
- 关于知识、信念、目标、爱好、意图、能力的表示的知识
- 关于科学知识的常识性知识
CSK 有哪些特点
- 共享的 (Share),常识知识是被人们(或某一群人)所共享的。
- 基础的 (Fundamentality),人们觉得这些常识是理所当然的。
- 隐含的 (Implicitness),通常人们不会明确的说出常识,因为其他人也知道。
- 大规模的 (Large-Scale),常识的数量与多样性都非常的大。
- 开放域 (Open-Domain),常识涵盖了我们日常生活的方方面面,而不是特定领域。
- 默认的 (Default),常识是有关日常生活中典型案例的默认假设,但不是绝对正确的假设。
当前现状
当前阶段,常识的定义、获取乃至应用仍面临着诸多的挑战,如:常识的定义仍停留在描述性阶段、大规模隐式表达的常识难以获取、难以精准定义常识、常识的理解机制尚不明确、开放域应用困难等。
同时,常识也是不断发展的,可能很多东西一开始是有的,但之后便不再是了。例如:在很早的时候,人们通常认为重的物体下落的比较快,但在后来的实验中发现这是一个不正确的结论。另外,常识的范围太大,与专业领域知识难以区分界定,不同的人群对于常识有着不同的理解。
当前机器与人对于“理解”的理解
机器:很多人在说这个
当前机器对于“理解”的理解只局限于“很多人在说这个”,但这未必就是准确的常识。比如很多人会说“太阳从西边升起”这一个梗,但它是正确的常识吗?
我知道的并且你知道的,我知道的而你不知道的,我不知道的而你知道的,当前机器在学习的过程中大都使用无监督的方式从大量语料库中进行训练,但它能否分辨对于所有人来说哪些是普通知识而哪些又是常识知识呢?直接训练是否会存在这样的一种偏见?
目前流行的 Deep learning 方法本质上是基于统计的,找到的多是共现(co-occurrence)或者相关(correlation)的关系,而难以抽取或者学习到因果(causality)关系,无法真正理解常识。
人类:基于庞大的背景知识综合决策
人的理解能力是基于脑内庞大的知识库(背景知识),如果把每个人的思维建模成符号处理的计算过程,人的语言理解过程就是基于知识表示的计算过程。
知识分为静态知识和动态知识。知识库中的知识就是静态知识。动态知识要通过实际应用场景来确定,例如,图书馆可能表示建筑物,也可能表示会议场所,具体是哪种属性,要根据不同场景激活确认。
人类能非常容易地解构(de-compose)视觉信息,掌握其 pattern,但机器不能。例如手写数字识别,Deep learning 也能很好地处理这一个问题,但是需要大量的数据;而人类只需看少量的样例即可举一反三。相比之下,自然语言理解涉及到符号化的问题,获取 pattern 会更加困难。
有没有什么好的想法解决
常识是不是本质上就是个语料、规模和算力的问题?
如果我们收集尽可能多的高质量的语料,BERT 是不是就真的能学到各种隐性常识?如果这个思路可行,我们能不能把常识显性地说出来,作为 BERT 的语料?RoBERTa 没有针对推理方面进行优化,只是用了更大的数据、更长的时间去训练,就在 commonsenseQA 任务上效果提升到了接近 SOTA 的成绩(72%)。那么单纯 Deep learning 是不是可以学习到常识?常识是不是本质上就是个语料、规模和算力的问题?
单纯增加常识数据可以获得到常识知识,但是不能认为机器真正理解常识。不同的是,人类的常识是通过多模态感官获取到的。
当然呢,也有一种观点是,也许 BERT 等预训练模型已经学到了一些常识,只是人们还没有一个好的办法将其抽取为可以理解的形式而已。
如何使“理解”更有泛化性?
过去有种思想,如果语料库足够大,所有的话都说了,可能就学会了。但是实际上长尾效应,90% 以上的句子 pattern 是很少出现的,有些知识是学习不来的,但是一定会存在某些规则。句子是无穷的,但规则是有限的。把研究的方法用在发现这些规律上,而不是抄袭规则,也许这样的一个思路是很好的。
Deep learning 是否适用于认知?
我们不能创造的东西,是因为我们不能理解它
Deep learning 在感知方面特别有用,比如视觉、音频信号处理,但在认知中这样做是有问题的,直接拿感知层面上的特征,做非线性映射,可能结果依然是不理解这个东西。
我们不能创造的东西,是因为我们不能理解它。我们必须知道视觉理解是如何创造出的,人是如何理解视觉信号的。例如图片生成,我们可能会用 GAN (Generative Adversarial Networks) 生成整张图片,但这对视觉理解没有什么意义,我们要逐因素、逐元素、逐概念分别生成,例如形状、颜色等。现在要认识一个物体,我们需要把各种颜色各个角度的图片都喂给模型,但这种做法存在局限性。相比较而言,人类认识一个物体要简单得多。
- 人天生有解构场景、组合视觉元素的能力。人能在动态场景中提取视觉概念,这是目前计算机所无法处理的。
- 人的视觉常识是有结构的,颜色可以组织成列表,动物分类可以是树状结构,城市空间可以是网状结构。
使用概念知识库作为先验知识辅助决策
机器视觉理解关注的问题是,如何无监督地从图像中解析出视觉概念,利用构建得到的视觉概念库辅助生成新的场景结构,从而实现遮挡或模糊图像的识别、判断两个共现元素是相关关系还是因果关系。这与人类的视觉理解过程是相似的,人脑处理视觉信号时,会以大脑长期积累的知识图谱作为先验知识,根据先验知识形成备选方案,再从备选方案中匹配筛选出最佳的视觉理解方案。
举一个例子:人们在看到一个被布遮住大半块的桌子时,会首先想到这是一个静态的家居用品,可能是一个桌子也可能是一个凳子,然后尝试使用脑中对这些可能的概念(concepts)去匹配哪一个更为准确,从而得出结论。
结论:常识难题,道路漫长,未来还有很多新的机会和挑战。
哭了,这个坑太深了,到底要不要做下去呢?
文章非常好超喜欢
谢谢啦~ 欢迎常来呦~
文章不错支持一下吧
网站内容还是挺不错的,谢谢博主。还有博客应该是WORDPRESS做的吧,感觉美观度还可以提高,谢谢。我自已是搞前端设计的,你的代码可以做精简一点。
哈哈,是 wordpress,因为以前粗略的学了一点点就搞成这个样子了,自己也不是做前端的,所以没有花大精力到这方面,主要都是文章内容了,谢谢啦~
您好,我来自V2EX,希望能跟您交换友情链接。
我的博客也基本上是技术类文章,全部都是原创内容。
希望得到回复,我的博客地址是:https://www.fi-forex.com/
非常感谢!
申请友链之前请先查看:https://www.dreamwings.cn/link-regulation/5457.html
抱歉呀,暂不支持贵站这种类型的博客
这是个啥玩意儿网站,没看懂…. ̄﹃ ̄
哈哈,我也奇怪,太神奇了