当前位置:   article > 正文

详解大型语言模型的基石: 词嵌入(Word Embedding)以及各种词嵌入方法的优劣_词嵌入模型

词嵌入模型

词嵌入是大型语言模型的关键构建块。对于不熟悉的人来说,大型语言模型 (LLM) 由几个关键构建块组成,使它们能够高效地处理和理解自然语言数据。

大型语言模型 (LLM) 是一种人工智能模型,它基于大量文本数据集进行训练。该数据集可以是任何内容,从书籍和文章到网站和社交媒体帖子。LLM 学习数据集中单词、短语和句子之间的统计关系,从而使其能够生成与其训练文本相似的文本。

大型语言模型是如何构建的?

LLM 通常使用 Transformer 架构构建。Transformer 是一种非常适合自然语言处理任务的神经网络。它们能够学习单词之间的长距离依赖关系,这对于理解人类语言的细微差别至关重要。

LLM 非常庞大,无法在单台计算机上运行。它们通常在计算机集群甚至云计算平台上进行训练。训练过程可能需要数周甚至数月,具体取决于数据集的大小和模型的复杂性。

大型语言模型的关键构建模块

1. 嵌入

嵌入是单词或标记的连续向量表示,可在高维空间中捕获其语义含义。它们允许模型将离散标记转换为神经网络可以处理的格式。LLM 在训练期间学习嵌入,以捕获单词之间的关系,例如同义词或类比。

2. 标记化

标记化是将文本序列转换为模型可以理解的单个单词、子词或标记的过程。LLM 使用 BPE 或 wordpiece 等子词算法将文本拆分为较小的单元,以捕获常用和不常用的单词。这种方法有助于限制模型的词汇量,同时保持其表示任何文本序列的能力。

3.注意力

LLM 中的注意力机制,尤其是 Transformer 中使用的自注意力机制,使模型能够衡量不同单词或短语的重要性。通过为输入序列中的标记分配不同的权重,模型可以专注于最相关的信息,同时忽略不太重要的细节。这种有选择地关注输入特定部分的能力对于捕获长距离依赖关系和理解自然语言的细微差别至关重要。

4. 预训练

预训练是在大型数据集上训练 LLM 的过程(通常是无监督或自监督的),然后针对特定任务对其进行微调。在预训练期间,模型会学习一般的语言模式、单词之间的关系以及其他基础知识。

该过程会创建一个预先训练好的模型,可以使用较小的数据集针对特定任务进行微调。这减少了对标记数据和训练时间的需求,同时在自然语言处理任务 (NLP) 中取得了良好的效果。

5.迁移学习

迁移学习是一种利用预训练期间获得的知识并将其应用于新相关任务的技术。在 LLM 的背景下,迁移学习涉及在较小的特定于任务的数据集上微调预训练模型,以在该任务上实现高性能。迁移学习的好处是,它允许模型受益于预训练期间学到的大量通用语言知识,从而减少了对大型标记数据集和每个新任务进行大量训练的需求。

理解嵌入

嵌入用于将单词表示为数字向量,然后机器学习模型可以使用这些向量来理解文本的含义。随着时间的推移,嵌入已经从最简单的独热编码方法发展为最新的语义嵌入方法。

嵌入

嵌入的类型

嵌入类型描述用例
词嵌入将单个单词表示为数字向量。文本分类、文本摘要、问答、机器翻译
句子嵌入将整个句子表示为数字向量。文本分类、文本摘要、问答、机器翻译
词袋 (BoW) 嵌入将文本表示为一个词袋,其中每个词都分配有一个唯一的 ID。文本分类、文本摘要
TF-IDF 嵌入将文本表示为一个词袋,其中每个词根据其频率和逆文档频率分配一个权重。文本分类、文本摘要
GloVe 嵌入使用全局共现统计数据从文本语料库中学习词嵌入。文本分类、文本摘要、问答、机器翻译
Word2Vec 嵌入通过预测句子中的周围单词,从文本语料库中学习词嵌入。文本分类、文本摘要、问答、机器翻译

嵌入的经典方法

1. 独热编码

独热编码是嵌入单词的最简单方法。它将每个单词表示为一个零向量,索引处只有一个 1,对应于单词在词汇表中的位置。例如,如果我们的词汇表有 10,000 个单词,那么单词“cat”将表示为一个由 10,000 个零组成的向量,索引 0 处只有一个 1。

独热编码是一种简单而有效的方法,可以将单词表示为数字向量。但是,它没有考虑单词的使用上下文。这可能会限制文本分类和情感分析等任务,因为单词的上下文对于确定其含义非常重要。

例如,“猫”这个词可能有多种含义,如“一种毛茸茸的小哺乳动物”或“用紧握的拳头打人”。在独热编码中,这两个含义将由同一个向量表示。这会使机器学习模型难以学习单词的正确含义。

2. TF-IDF

TF-IDF(词频-逆文档频率)是一种统计测量方法,用于量化过程的重要性并创建一个预训练模型,可以使用较小的数据集对该模型进行微调以完成特定任务。这减少了对标记数据和训练时间的需求,同时在自然语言处理任务(NLP)中取得了良好的结果。文档中单词的词频。它是自然语言处理(NLP)中广泛使用的技术,用于文本分类、信息检索和机器翻译等任务。

TF-IDF 的计算方法是将文档中单词的词频 (TF) 乘以其逆文档频率 (IDF)。TF 衡量单词在文档中出现的次数,而 IDF 衡量单词在文档语料库中的稀有程度。

当单词在文档中出现频率高且在语料库中出现频率低时,该单词的 TF-IDF 分数较高。这意味着 TF-IDF 分数可用于识别文档中的重要单词,即使这些单词出现频率不高。

通过示例理解 TF-IDF

以下是如何使用 TF-IDF 创建词向量的示例。假设我们有一个关于猫的文档集。我们可以计算该文档集中所有单词的 TF-IDF 分数。TF-IDF 分数最高的单词将是该文档集中最重要的单词,例如“”、“” 、“毛皮”和“喵喵”。

然后,我们可以为每个单词创建一个向量,向量中的每个元素代表该单词的 TF-IDF 分数。单词“ cat ”的 TF-IDF 向量会很高,而单词“dog”的 TF-IDF 向量也会很高,但不如单词“cat”的 TF-IDF 向量高。

然后,机器学习模型可以使用 TF-IDF 词向量对有关猫的文档进行分类。该模型首先会创建新文档的向量表示。然后,它会将新文档的向量表示与 TF-IDF 词向量进行比较。如果文档的向量表示与“猫”的 TF-IDF 词向量最相似,则该文档将被归类为“猫”文档。

基于计数和 TF-IDF

为了解决独热编码的局限性,开发了基于计数和 TF-IDF 的技术。这些技术考虑了文档或语料库中单词的频率。

基于计数的技术只是计算每个单词在文档中出现的次数。TF-IDF 技术会同时考虑单词的频率及其逆文档频率。

基于计数和 TF-IDF 的技术在捕捉单词使用的上下文方面比独热编码更有效。然而,它们仍然无法捕捉单词的语义。

使用 N-gram 捕捉本地上下文

为了捕捉单词的语义,可以使用 n-gram。N-gram 是 n 个单词的序列。例如,2-gram 是两个单词的序列。

N-gram 可用于创建单词的向量表示。向量表示基于包含该单词的 n-gram 的频率。

与基于计数或 TF-IDF 的技术相比,N-gram 是一种更有效地捕捉单词语义的方法。但是,它们仍然有一些局限性。例如,它们无法捕捉单词之间的长距离依赖关系。

语义编码技术

语义编码技术是嵌入单词的最新方法。这些技术使用神经网络来学习单词的向量表示,以捕捉其语义含义。

最流行的语义编码技术之一是 Word2Vec。Word2Vec 使用神经网络来预测句子中的周围单词。网络学习将语义相似的单词与相似的向量表示关联起来。

语义编码技术是捕捉单词语义含义的最有效方法。它们能够捕捉单词之间的长距离依赖关系,即使以前从未见过,它们也能够学习单词的含义。以下是其他一些语义编码技术:

1. ELMo:来自语言模型的嵌入

ELMo 是一种融合了词级特征和上下文语义的词向量。它通过获取深度双向语言模型 (bi-LSTM) 所有层的输出并以加权方式组合来创建。这使得 ELMo 能够捕捉单词在上下文中的含义以及其自身的固有属性。

ELMo 背后的直觉是,双 LSTM 的较高层捕获上下文,而较低层捕获语法。经验结果支持了这一观点,结果表明 ELMo 在 POS 标记和词义消歧等任务上的表现优于其他词嵌入。

ELMo 经过训练可以预测单词序列中的下一个单词,这项任务称为语言建模。这意味着它对单词之间的关系有很好的理解。在为单词分配嵌入时,ELMo 会考虑句子中围绕该单词的单词。这使其能够根据上下文为同一个单词生成不同的嵌入。

通过示例理解 ELMo

例如,“play”这个词可以有多种含义,例如“表演”或“游戏”。在标准词向量中,“play”这个词的每个实例都具有相同的表示。但是,ELMo 可以通过考虑单词出现的上下文来区分这些不同的含义。例如,在句子“百老汇戏剧昨天首演”中,ELMo 会为“play”这个词分配一个反映其戏剧作品含义的向量。

ELMo 已被证明可有效处理多种自然语言处理任务,包括情绪分析、问答和机器翻译。它是一种强大的工具,可用于提高 NLP 模型的性能。

2. GloVe

GloVe 是一种从文本语料库中学习词向量的统计方法。GloVe 与 Word2Vec 类似,但它使用不同的方法来学习单词的向量表示。

GloVe 如何工作?

GloVe 的工作原理是创建一个共现矩阵。共现矩阵是一个表格,显示两个单词在文本语料库中一起出现的频率。例如,“cat”和“dog”这两个词的共现矩阵将显示“cat”和“dog”这两个词在文本语料库中一起出现的频率。

然后,GloVe 使用机器学习算法从共现矩阵中学习单词的向量表示。机器学习算法学习将经常一起出现的单词与相似的向量表示联系起来。

3. Word2Vec

Word2Vec 是一种语义编码技术,用于学习单词的向量表示。词向量表示单词含义,可以增强机器学习模型,以完成文本分类、情感分析和机器翻译等任务。

Word2Vec 的工作原理是在文本语料库上训练神经网络。神经网络经过训练可以预测句子中的周围单词。网络学习将语义相似的单词与相似的向量表示相关联。

Word2Vec 有两个主要变体:

  • 连续词袋模型 (CBOW):CBOW 模型根据当前单词预测句子中的周围单词。例如,该模型可能经过训练,根据单词“cat”预测单词“the”和“dog”。
  • Skip-gram:Skip-gram 模型根据句子中的周围单词预测当前单词。例如,该模型可能经过训练,根据单词“the”和“dog”预测单词“cat”。

Word2Vec 已被证明可有效完成多种任务,包括:

  • 文本分类:Word2Vec 可用于训练分类器将文本分为不同的类别,例如新闻文章、产品评论和社交媒体帖子。
  • 情感分析:Word2Vec 可用于训练分类器来确定文本的情感,例如它是积极的、消极的还是中性的。
  • 机器翻译:Word2Vec 可用于训练机器翻译模型,将文本从一种语言翻译成另一种语言。
GloVeWord2VecELMo
准确性更准确不太准确更准确
训练时间训练速度更快训练速度较慢训练速度较慢
可扩展性更具可扩展性可扩展性较差可扩展性较差
能够捕获长距离依赖关系不太擅长捕捉长距离依赖关系更好地捕捉长距离依赖关系最擅长捕捉长距离依赖关系
Word2Vec 与密集词嵌入

Word2Vec 是一种神经网络模型,它学习将单词表示为数字向量。Word2Vec 在大量文本上进行训练,并学习预测句子中的周围单词。

Word2Vec 可用于创建密集词嵌入。密集词嵌入是具有固定大小的向量,与词汇量无关。这使得它们易于与机器学习模型一起使用。

密集词嵌入已被证明在各种 NLP 任务中有效,例如文本分类、情感分析和机器翻译。

同一文本的嵌入会相同吗?

如果嵌入过程是确定性的,则模型生成的相同文本的嵌入通常会相同。

这意味着每次你将相同的文本输入模型时,它都会产生相同的嵌入向量。

大多数传统嵌入模型(如 Word2Vec、GloVe 或 fastText)都是确定性运行的。

但是,在下列情况下嵌入可能不一样:

  1. 随机初始化: 某些模型可能包含具有随机初始化权重的层或组件,这些权重未设置为固定值或在会话之间重复使用。如果这些权重影响嵌入的生成,则每次的输出可能会有所不同。
  2. 上下文嵌入: BERT 或 GPT 等模型会生成上下文嵌入,这意味着同一单词或短语的嵌入会根据其周围上下文而有所不同。如果您在不同的上下文中输入短语,嵌入也会有所不同。
  3. 非确定性设置:某些神经网络配置或训练设置可能会引入非确定性。例如,如果在嵌入生成期间应用 dropout(在训练期间随机丢弃单元以防止过度拟合),则可能导致嵌入发生变化。
  4. 模型更新: 如果模型本身被更新或重新训练,即使使用相同的架构和训练数据,训练动态的细微差异(例如批次排序的变化或硬件差异)也会导致不同的模型参数,从而导致不同的嵌入。
  5. 浮点精度: 浮点精度的差异可能因硬件(如 CPU 与 GPU)而异,也可能导致计算的嵌入出现细微变化。

因此,虽然许多嵌入模型是确定性的,但在不同条件或配置下,有几个因素可能导致同一文本的嵌入出现差异。

结论

语义编码技术是嵌入单词的最新方法,也是捕捉单词语义含义的最有效方法。它能够捕捉单词之间的长距离依赖关系,即使单词从未出现过,也能学习单词的含义。

可以肯定地说,嵌入是一种强大的工具,可用于提高机器学习模型在各种任务(例如文本分类、情感分析和机器翻译)中的性能。随着 NLP 研究的不断发展,我们可以期待看到更复杂的嵌入,可以捕捉更多人类语言的细微差别。

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/944783
推荐阅读