第 14 章 利用 RNN 和注意力进行自然语言处理
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
当阿兰-图灵 在 1950 年想象出著名的图灵测试时,他提出了一种评估机器与人类智能相匹配的能力的方法。1时,他提出了一种评估机器与人类智力相匹配的能力的方法。他本可以测试很多东西,比如识别图片中猫的能力、下棋的能力、谱曲的能力或逃离迷宫的能力,但有趣的是,他选择了语言任务。更具体地说,他设计了 一个聊天机器人,它能够骗过对话者,让对方以为它是人类。2这个测试确实有其弱点:一套硬编码的规则可以愚弄毫无戒心或天真无邪的人类(例如,机器可以在回答某些关键词时给出含糊不清的预定答案;它可以假装开玩笑或喝醉了,从而在最奇怪的答案上蒙混过关;它也可以用自己的问题来回答难题,从而逃避问题),而且人类智能的许多方面都被完全忽略了(例如,解读面部表情等非语言交流的能力,或学习手工任务的能力)。不过,这项测试确实凸显了这样一个事实,即掌握语言可以说是智人最大的认知能力。
直到最近,最先进的自然语言处理(NLP)模型几乎都是基于递归神经网络(第 13 章介绍过)。不过,近年来,RNN 已经被变换器所取代,我们将在第 15 章中探讨变换器。尽管如此,学习如何将 RNN 用于 NLP 任务仍然很重要,即使只是因为这有助于更好地理解变换器。此外,我们将在本章中讨论的大多数技术在变换器架构中也很有用(例如标记化、波束搜索、注意机制等)。另外,RNN 最近以状态空间模型(SSM)的形式卷土重来,令人惊喜 (参见https://homl.info 上的 "状态空间模型(SSM)")。
本章分为三节。在第一节中,我们将首先构建一个字符 RNN,即 char-RNN,经过训练后可以预测句子中的下一个字符。在此过程中,我们将学习可训练嵌入。我们的 char-RNN 将是我们的第一个 微型语言模型,能够生成原始文本。
在第二部分,我们将转向文本分类,更具体地说是情感分析,旨在预测某些文本的正面或负面程度。我们的模型将读取电影评论,并估算评价者对电影的感受。这一次,我们不再将文本分割成单个字符,而是将其分割成令牌:令牌 是固定大小词汇中的一小段文本,例如英语中最常见的前 10,000 个单词,或最常见的子单词(例如 "smartest" = "smart" + "est"),甚至是单个字符或字节。要将文本分割成 token,我们将使用 tokenizer。本节还将介绍流行的 Hugging Face 库:用于下载数据集的Datasets库、用于标记符生成器的Tokenizers库,以及从Hugging Face Hub 自动下载的用于流行模型的Transformers库。Hugging Face 是一家极具影响力的公司和开源社区,它在开源人工智能领域,尤其是 NLP 领域扮演着核心角色。
本章的最后一个主题是神经机器翻译(NMT) ,这是第三节也是最后一节的主题:我们将建立一个编码器-解码器模型 ,能够将 英语翻译成西班牙语。这将引出注意力机制,我们将把它应用到编码器-解码器模型中,以提高其处理长输入文本的能力。顾名思义,注意力机制 是一种神经网络组件,它可以学习选择模型在每个时间步应该关注的输入部分。它们直接引发了变压器革命,我们将在下一章看到这一点。
让我们从一个简单有趣的 char-RNN 模型开始,它可以像莎士比亚一样写作(某种程度上)。
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access