大数据文摘作品,转载要求见文末
编译团队|寒阳,范玥灿,毛丽,曹翔
现在是机器思考,学习并创造的世界。此外,他们做这些事情的能力会迅速增加,直到在一个明显的未来,他们能处理的问题范围将与人类思想应用的范围一起扩大。
——赫伯特·西蒙, 1957
2017年1月14日Texas Data Day的大会上,Deep Grammar的联合创始人、CEO、人工智能专家和机器学习专家Jonathan Mugan做了题为《从自然语言处理到人工智能(Deep Learning for Natural Language Processing》的演讲。
Jonathan Mugan专注人工智能、机器学习与自然语言处理的结合。本次演讲中,他重点阐述了如何从自然语言处理到人工智能,以及两条具体路径:符号路线和亚符号路线。
本文基于本次演讲的64页ppt整理汉化完成。点击右上角进入大数据文摘后台,回复“自然语言处理”获取完整版演讲ppt。
人工智能已经变得更聪明。尤其是深度学习,但是,计算机仍不能智能地读取或交谈。
要想了解语言,计算机需要了解世界。他们需要回答类似于下面这样的问题——
为什么你可以用绳拉马车却不推它?
为什么体操运动员用一条腿竞争是不寻常的?
为什么只有外面下雨?
如果有一本书在桌上,你推桌子,会发生什么?
如果鲍勃去垃圾场,那么他会在机场吗?
让我们以一种基于感觉和行动的方式理解语言——
当某人说“鸡”的时候,我们直接把它和我们对于鸡的经验相匹配,我们理解彼此因为我们有相同的经历,这就是电脑需要的一种理解能力。
两种理解含义的路径:
无意义的标记
词袋(Bags-of-words)表述:
将词语视为任意符号,并查看其频率。“狗 咬 人”和“人 咬 狗”完全一致。考虑一个有50,000个单词的词汇表:
“aardvark” 的位置是 0
“ate” 的位置是 2
“zoo” 的位置是 49,999
一个词袋可以是一个有50,000维度的向量。
“The aardvark ate the zoo.”= [1,0,1, ..., 0, 1]
我们可以做的更好一点,通过数出这些词数出现的频率。
tf: 词频(term frequency),单词出现的频率。
“The aardvark ate the aardvark by the zoo.” = [2,0,1, ..., 0, 1]
提升非常见词汇:
认为非常见词汇比常见词汇更能表征文本,我们可以得到更好的结果。将每个条目乘以一个表示它在语料库中有多常见的度量。
idf: 逆文本频率指数
idf( 术语, 文本) = log(文本数量 / 包含术语的文本的数量)
10 文本, 只有一个 有 “aardvark” , 5 个有 “zoo” , 5个 有 “ate”
tf-idf: tf * idf
“The aardvark ate the aardvark by the zoo.” =[4.6,0,0.7, ..., 0, 0.7]
称为向量空间模型。你可以将这些向量放入任何分类器,或者基于类似的向量找到相似的文档。
主题模型 (LDA):
潜在狄利克雷分布(Latent Dirichlet Allocation)
你选择主题的数量 ,每个主题是一个关于单词的分布,每个文档是一个关于主题的分布,在Python主题模型 gensim中很容易操作(https://radimrehurek.com/gensim/models/ldamodel.html )
通过pyLDAvis在推特上应用LDA:
情感分析:——作者对文本是什么样的感受:
人工设置表达法
我们通过手动指定符号之间的关系来告诉计算机事物的意思。
1.使用预定的关系来储存意思
2.图示多种书写某种同意东西的方法
通过相对较少表述数量,我们可以对机器应该做什么进行编码。
单词网络(WordNet):
框架网络:
概念网络:
另一个知识本体:
建议上的合并本体:
意象图式(Image Schemas):
意象图式是人类关于跨共同文化经验的表示
——费尔德曼, 2006
人类使用意象图式来理解空间布置和空间运动
——曼德勒, 2004
意象图式的例子包括路径,先知,阻塞和吸引力
——约翰逊, 1987
抽象概念例如浪漫关系和论证被表示为这种经验的隐喻
——莱考夫和约翰逊, 1980
语义网-链接数据:
世界模型
计算机需要关于世界如何运作以及如何与之交互的因果模型。人们不会说一切事情来表达一个信息,只会说没有被我们共同的概念所涵盖的东西 。编码我们的共享概念最有效的方法来是借用模型。模型表达了世界如何根据事件变化。回顾商务购买框架 ,后来,一个人有更多的钱,另一个人有更少的钱 ,从模型中读出这样的结论 。
模型的纬度: 概率:确定性与随机比较。例如,逻辑与概率编程比较 因素状态:整体状态和使用变量比较。例如,有限自动机与动态贝叶斯网络比较 相关性: 命题逻辑和一阶逻辑比较。 例如, 贝叶斯网络与马尔可夫逻辑网络 同时发生Concurrent: 对一个事物模型与多个事物比较。例如, 有限自动机与Petri网比较 时间的: 静态与动态比较。 例如, 贝叶斯网络与动态贝叶斯网络比较
通过模型合并表达法:
Word2vec
Word2vec模型为词汇表中的每一个单词学习一个向量。每个词向量的维度是相同的,一般在300左右。和tf-idf向量不同,词向量是紧密的,大部分值不是0。
1.将每个单词初始化为一个随机向量
2.对于文档集里的每一个单词w1:
3.对于单词w1周围的每一个词w2:
4.移动向量,使w1和w2距离更近,同时其他单词和w1的距离更远。
5.若没有达到终止条件,跳转到步骤2
——Skip-gram 模型 (Mikolov et al., 2013)
注意:实际上每个单词对应两个向量,因为你不希望一个单词是在它本身附近的。(参见Goldberg and Levyhttps://arxiv.org/pdf/1402.3722v1.pdf ), 这个双层for循环的解释出自 Christopher Moody
word2vec 的含义:
我们常常可以看到这样名言:
“你可以通过一个词附近的其它词来理解这个词”
——J. R. Firth 1957
从某种意义上讲,这个似乎是个事实。
“向量具有内部结构。”
——Mikolov et al., 2013
意大利– 罗马= 法国– 巴黎
国王– 女王= 男人– 女人
但是……单词不是基于经验的,它们只是依赖于周围的其它单词的。
(也可以在ConceptNe上进行word2vec, 参见https://arxiv.org/pdf/1612.03975v1.pdf)
seq2seq 模型
seq2seq(序列-序列)模型可以对一个符号的序列进行编码,例如一个句子,将其编码为一个向量。进而,模型可以将向量解码为另一个符号的序列。编码和解码都可以通过循环神经网络(RNNs)进行。一个明显的应用就是机器翻译。例如,源语言是英语,目标语言是西班牙语。
将句意编码为向量:
将句意解码:
生成图片题注:
回答提问
兴趣点:
深度学习与回答提问:
神经网络学习到了各个符号序列之间的联系,但是这种描述并不足以覆盖真实世界的丰富的联系。
外部世界训练
如果我们希望和机器交流,我们需要在和我们自己尽可能相似的环境中训练他们。且不能仅仅是对话!(Harnad[1990] http://users.ecs.soton.ac.uk/harnad/Papers/Harnad/harnad90.sgproblem.html)为了理解“鸡”,我们需要机器尽可能多的得到关于“鸡”的经验。当我们说出“鸡”的时候,我们不仅仅指的是那种鸟类,我们指的是所有我们可以对它做的事情,以及它在我们文化中的所有含义。
这个方向已有很多工作:
首先,是在工业界——
1.OpenAI
世界: 在 VNC(远程桌面)的屏幕上训练
现在是通过Grand Theft Auto(侠盗车手)!
(https://openai.com/blog/GTA-V-plus-Universe/)
2.Google
Mikolov et al., A Roadmap towards Machine Intelligence(机器智能路线图).
他们定义了一个人工环境. (https://arxiv.org/pdf/1511.08130v2.pdf )
3.Facebook
Weston, 应用于对话的记忆网络https://arxiv.org/pdf/1604.06045v7.pdf
Kiela et al., Virtual Embodiment: A Scalable Long-Term Strategy for Artificial Intelligence Res(虚拟实体化:人工智能的可拓展长期战略). 提倡“有目的地” 使用视频游戏https://arxiv.org/pdf/1610.07432v1.pdf
当然还有学术界——
1.Ray Mooney
文本到局面的映射
http://videolectures.net/aaai2013_mooney_language_learning/
2.Luc Steels
具有词汇量和简单语法的机器人
3.Narasimhanet al.
训练神经网络来玩基于文字的冒险游戏
https://arxiv.org/pdf/1506.08941v2.pdf
但是,我们需要针对现实世界的更多训练:
也许在Amazon Alexa 有了一个摄像头以及一颗可以转动的脑袋之后?没有了老师的教益,我们还能走多远?
我们可以将目光作为信息的来源吗?
——Yu and Ballard, [2010]
从NLP到AI的两条路径