奎克的藏经阁 · MinerU 解析内容

AI 3.0(畅销书《复杂》作者、复杂系统前沿科学家梅拉妮·米歇尔,历经10年思考,厘清人工智能与人类智能的全新力作,全景式地展现了人工智能的...

491 个 PDF 物理页 · 本页显示文件第 291–300 页

PDF 物理页索引 290

文件中的第 291 页 · 印刷页码:未识别

一旦词汇表中的所有单词都被恰当地放置在语义空间中,一个词的含义就能通过其在语义空间中的位置,也就是其词向量的坐标来表示。词向量有什么好处呢?事实上,使用词向量的坐标作为数字输入来表示单词,而不是使用简单的独热编码方案,可以大大提高神经网络在自然语言处理任务中的性能。

怎样才能真正获得一个词汇表中所有单词对应的词向量坐标?有没有一种算法可以将所有的单词正确地放置在语义空间中,以便最好地表示每个单词在多个维度上的含义?自然语言处理领域的研究者做了大量的工作来解决这个问题。

word2vec神经网络<sub>:</sub>口渴之于喝水<sub>,</sub>就像疲倦之于喝醉

针对如何将单词放置在语义空间中的问题,研究者提出了许多解决方案,有些方案甚至可以追溯到20世纪80年代,但如今最为广泛采用的方法是谷歌的研究团队在2013年提出的 <sup>13</sup> 。谷歌的研究人员称他们的方法为“单词到向量”(word tovector, word2vec)。word2vec方法的工作原理是使用传统的神经网络来自动学习词汇表中的所有单词的词向量。谷歌的研究人员利用该公司庞大的文档库中的一部分数据来训练他们的网络,一旦训练完成,研究团队就将所有生成的词向量结果保存并发布到一个网页上,可以供任何人下载,并可以将其用作自然语言处理系统的输入。 <sup>14</sup>

PDF 物理页索引 291

文件中的第 292 页 · 印刷页码:未识别

word2vec方法体现了“你会通过与一个单词一同出现的词来认识它”这一思想。为了给word2vec程序创建训练数据,研究团队从谷歌新闻服务板块获取了大量的数据。在现代自然语言处理中,没有比大数据更有价值的资源了!word2vec程序的训练数据由一系列成对的单词组成,在谷歌新闻文档中,每个单词对应的单词都曾在该单词的附近出现过。为了使整个过程更好地运行,诸如“和”“的”等极为常用的单词会被丢弃。

举例来说,我们假设单词对中的单词是一句话中直接相邻的两个单词。在《餐厅际遇》这个故事中,“一位男士走进一家餐厅,点了一个汉堡包”这句话将被首先转换成“男士走进餐厅点了汉堡包”。这句话将生成以下单词对:(男士,走)、(走,进)、(进,餐厅)、(餐厅,点了)、(点了,汉堡包),同时还会生成所有单词对的倒序组合,例如,(汉堡包,点了)。这种方法的核心思想是:训练word2vec网络来预测哪个词最有可能与一个给定的输入单词配对。

图11-4表示的是一个word2vec神经网络。 <sup>15</sup> 这个网络实际上使用了我前文描述的独热编码方法。图中总共有70万个输入单元,这接近于谷歌研究人员使用的词汇表的大小,其中每个输入对应于词汇表中的一个单词。例如,这里的第一个输入对应词语“猫”,第8 378个输入对应词语“汉堡包”,最后一个输入对应词语“天蓝色的”。图中的这些数字序号都是假设的,其实际顺序无关紧要。因此,该网络有70万个输出单元,每个输出单元对应词汇表中的一个单词,还有一个相对较小的包含300个单元的隐藏层。图中大的灰色箭头表示的是每个输入到每个隐藏单元都有一个加权连接,每个隐藏单元到每个输出单元也有一个加权连接。

PDF 物理页索引 292

文件中的第 293 页 · 印刷页码:未识别

谷歌的研究人员使用从谷歌新闻文章中收集的数十亿个单词对来对网络进行训练。给定一个单词对,例如(汉堡包,点了),则对应第一个词“汉堡包”的输入被设置为1,其他所有输入设置为0。在训练过程中,每个输出单元的激活值被整合为网络对词汇表中与输入单词对应的单词的置信度。此处,正确的输出激活将为该单词对中的第二个词“点了”分配较高的置信度。

PDF 物理页索引 293

文件中的第 294 页 · 印刷页码:未识别

训练完成后,我们就可以提取网络学习到的词汇表中任意一个词的词向量,图11-5说明了如何做到这一点。该图展示了“汉堡包”这个输入和300个隐藏单元之间的加权连接,这些从训练数据中学习到的权重,捕获了使用相应单词的语句的上下文相关信息,这300个权重是分配给某个给定词的词向量的组成部分。此过程中完全忽略隐藏单元与输出单元之间的连接,所有必要的信息都包含在从输入层到隐藏层的权重中。因此,这个网络学习到的词向量是300维的,词汇表中所有词的词向量集合组成了其所学到的语义空间。

如何在头脑中可视化这个300维的语义空间呢?你可以参照图11-3中的三维空间,然后试着可视化一个相似的、维数是三维空间100倍的、具有70万个词点并且每个词的坐标有300组数字的语义空间。只是开个玩笑!我们根本不可能可视化这样一个东西。

这300个维度代表什么?如果我们能够可视化这样一个300维的空间,我们将会看到任意给定的词在空间上都接近于其相关的词。例如,“汉堡包”与“点了”很接近,与“热狗”“奶牛”“吃”等词也很接近。即使“汉堡包”从未与“晚餐”出现在一个单词对里,两者也很接近,因为,在一些语境里,与“汉堡包”很近的一些词语通常与“晚餐”也很接近。如果网络想要从“我午餐吃了一个汉堡包”和“我晚餐吃了一个热狗”这两个句子中学习观察单词对,并且如果“午餐”和“晚餐”在一些用来训练的句子中也显示出很近的距离,系统就可以学到“汉堡包”和“晚餐”也应该很相近。

PDF 物理页索引 294

文件中的第 295 页 · 印刷页码:未识别

我们要记住这整个过程的目标是为词汇表中的每个词找到一个数字表示,也就是一个向量坐标,来捕捉词中的一些语义信息。其假设是,使用这种词向量将为自然语言处理任务生成高性能的神经网络,但是通过word2vec方法创建的语义空间在多大程度上真正捕获了单词的语义呢?

这个问题很难回答,因为我们无法可视化word2vec学习到的这个300维的语义空间,然而,我们还是有办法来一窥这个空间。最简单的方法是:拿一个给定的词,通过查看词之间的距离,在语义空间中寻找与它最接近的词。例如,在网络经过训练后,与“法国”最接近的词有“西班牙”“比利时”“荷兰”“意大利”“瑞士”“卢森堡”“葡萄牙”“俄罗斯”“德国”等。 <sup>16</sup> word2vec这个算法并不理解“国家”或“欧洲国家”的概念,这些词只是在训练数据中出现的与“法国”具有类似语境的词,就像我在前面提到的“汉堡包”和“热狗”的例子。确实,如果我要的是最接近“汉堡包”的词,这个列表会包括“奶酪汉堡”“三明治”“热狗”“玉米卷”“炸薯条”等。 <sup>17</sup>

我们还可以看一看由网络训练所产生的更复杂的关系。创建了word2vec的谷歌研究人员观察到,在他们的网络创建的词向量中,代表国家的词与代表该国首都的词之间的距离,对于许多国家来说都是大体相同的。图11-6对此进行了形象直观的展示——用二维线段表示了这些距离。同样的是,研究人员也没有给这个系统植入“国家首都”的概念,这种词语之间的语义关系是网络从对数十亿个单词对的训练中学到的。

PDF 物理页索引 295

文件中的第 296 页 · 印刷页码:未识别

这种规律让人们想到word2vec可以解决“男士之于女士,就像国王之于 ?”这类类比问题。只需取“女士”这个词的词向量坐标,减去“男士”这个词的词向量坐标,然后把结果加到“国王”这个词的词向量坐标上 <sup>18</sup> ,然后寻找语义空间中最接近这一结果的词向量。是的,这种方法给出的结果是“女王”这个词。在我的一个word2vec线上演示实验中 <sup>19</sup> ,这种方法通常会产生一些非常好的结果,比如“晚餐之于晚上,就像早餐之于早上”,但有时也会相当奇怪,比如有时我们会得出这样的答案——“口渴之于喝水,就像疲倦之于喝醉”,或者荒谬如“鱼之于水,就像鸟之于消防栓”。

PDF 物理页索引 296

文件中的第 297 页 · 印刷页码:未识别

词向量所具有的这些特性是耐人寻味的,并且表明了一些词之间的语义关系是可以被获取到的,但是这些特性会使词向量方法在自然语言处理任务中普遍适用吗?答案似乎是一个响亮的“是的”。如今,几乎所有的自然语言处理系统都使用某种类型的词向量方法作为输入单词的方式,word2vec这种方法只是其中的一种。

这里我们可以这样来类比:对于一个手里拿着锤子的人来说,所有事情看起来都像一颗钉子;对于一个专注神经网络的人工智能研究员来说,所有事情看起来都像一个向量。许多人由此想到:word2vec方法不仅可以用于单个词,还可以用于整个句子,为什么不把整个句子编码为一个向量呢?与编码词的方法一样,在训练过程中使用句子对而非单词对,不就可以了吗?用这样的方式来获取语义不是比简单地使用一组词向量更好吗?事实上,的确有一些研究团队做过这方面的尝试:多伦多大学的一个团队将这些语句称为“思维向量”(thoughtvectors) <sup>20</sup> ,还有人尝试过用网络将段落和整个文档编码为向量,然而结果都是成败参半。将所有的语义都简单归纳为一种几何化的表达,这对人工智能研究人员来说是一个非常诱人的想法。谷歌的杰弗里·辛顿宣称:“我们可以用一个向量来捕捉一个想法。” <sup>21</sup> Facebook的杨立昆表示赞同:“在Facebook的人工智能研究中,我们希望将整个世界嵌入到思维向量中,我们将其称为world2vec(世界到向量)。” <sup>22</sup>

PDF 物理页索引 297

文件中的第 298 页 · 印刷页码:未识别

接下来是关于词向量的最后一点说明。好几个研究团队表示:这些词向量,还捕获了产生这些语言数据的语言中自带的偏见,或许这并不奇怪 <sup>23</sup> 。举例来说,有一个类比问题:“男士之于女士,就如同计算机程序员之于 \_?”如果你用谷歌提供的词向量来解决这个问题,那么答案是:家庭主妇。如果反过来问:“女士之于男士,就如同计算机程序员之于?”答案是:机械工程师。还有一个问题:“男士之于天才,就如同女士之于 ?”答案是:缪斯。然而对于问题:“女士之于天才,就如同男士之于 \_?”答案却是:天才。

我们不能因此责怪词向量,它们只是从我们的语言中捕捉到了性别歧视以及其他歧视,因为,我们的语言的确反映了社会中的一些偏见。尽管词向量可能是无可指责的,但它们是现代自然语言处理系统(从语音识别到语言翻译)的关键组成部分,词向量的偏见可能会渗透在广泛使用的自然语言处理应用中,并产生让人意想不到的偏见。研究这些偏见的人工智能科学家刚开始理解这些偏见可能会对自然语言处理系统的输出产生何种微妙的影响,并且许多研究团队正致力于词向量的“去偏见”(debiasing)算法 <sup>24</sup> 。消除词向量所隐含的偏见是一个很大的挑战,但可能并没有消除语言和社会中存在的偏见那样困难。

PDF 物理页索引 298

文件中的第 299 页 · 印刷页码:未识别

本章要点

11 理解语言<sub>,</sub>理解我们赖以生存的隐喻

理解语言,特别是理解其中隐含的部分,是人类智能的一个基本部分。图灵把他著名的图灵测试,构造为一场关于语言之生成和理解的比赛,这并非偶然。

语言常常是充满歧义的,极度依赖语境,而且通常用语言沟通的各方需要具备大量共同的背景知识。与人工智能的其他领域一样,自然语言处理相关的研究在最初的几十年集中在符号化的、基于规则的方法上,就是那种给定语法和其他语言规则,并把这些规则应用到输入语句上的方法。这些方法并没有取得很好的效果,看来通过使用一组明确的规则来捕捉语言的微妙是行不通的。自动语音识别是深度学习在自然语言处理中的第一个重大成就,并且我敢说,这是迄今为止人工智能在所有领域中取得的最重要的成就。

在深度网络开始在计算机视觉和语音识别上“得心应手”后不久,自然语言处理的研究者就开始试着把它们应用于情感分析。

PDF 物理页索引 299

文件中的第 300 页 · 印刷页码:12

机器翻译<sub>,</sub>仍然不能从人类理解的角度来理解图像与文字

如果你曾经使用过谷歌翻译或其他任何现代自动翻译系统,你就知道这种系统可以在一瞬间将一段文本从一种语言翻译成另一种语言。更加令人印象深刻的是,在线翻译系统能为全世界的人们提供全天候的即时翻译服务,而且通常可以处理100多种不同的语言。

几年前,我和我的家人在法国度过了6个月的学术假期,那时,我曾大量使用谷歌翻译,来给我们那非常严肃的法国女房东撰写精雕细琢的“外交”邮件,以告诉她房子的发霉情况很严重。考虑到我远远不够完美的法语,谷歌翻译帮我节省了大量时间,比如查找一些我甚至都不知道的单词,还有像在哪里放重音符,以及哪个性别与哪个法语名词进行搭配这类难记的知识。

我还使用谷歌翻译来帮忙解读女房东那常常令人困惑的回答,尽管谷歌翻译给了我对她的意思的一个相当清晰的理解,但其生成的英文却充满了或大或小的错误。所以,我写给女房东的法语信件自然也是漏洞百出,每当想到这里,我总感到难堪。

12