当您有大量数据需要矢量化时,您可能需要对其进行压缩。这就是稀疏向量的作用。
它通过语法对接收到的数据进行分类,并索引它们之间的距离。因此,对于这两个句子:
即使句子的语义不同,它也会给你近乎完美的匹配。
在我们的第一个向量嵌入示例中出现了这种情况,因为我们使用了稀疏嵌入结构,并且两个语义相似的句子显示出更大的距离。
在机器学习中
稀疏嵌入将仅存储相关数据。如果您要对文档进行矢量化,这些矢量将仅捕获特定标记及其在数据库中的关系位置以供快速参考。
对于需要在大量文本中快速 推特数据 找到特定的词组合的医学搜索机器人来说,这一点非常重要。
但是,这些向量嵌入在语义理解方面表现不佳。但 ChatGPT 和我们的客户服务聊天机器人需要理解语义,因此我们转而使用密集表示。
密集向量密集向量嵌入具有高维性
从数学上讲,这些向量具有大量非零值。
我们为单词和句子添加了不同的维度。786 个维度是标准维度,由神经网络确定。这些维度捕捉单词的上下文含义并将其映射到向量空间中。
这就是 word2vec 对其模型所做的工作。他们的方法有两个方面。
- Skip-Gram 模型– 他们用一个单词创建一个具有随机权重的向量,并尝试使用神经网络预测上下文。然后,选择正确预测上下文的神经网络权重作为向量表示。
- 连续词袋模型——嵌入是一个单词,神经网络试图根据上下文完美地表示嵌入。做出正确预测的隐藏层权重被选为向量表示。
在第一种情况下
模型试图最大限度地提高找 如何制定同理心的潜在客户拓展策略 到正确上下文的概率,而在第二种情况下,模型试图降低最终出现错误单词的可能性。
您可以看到这些模型如何大规模创建大量文本的语义表示。
虽然 word2vec 是传奇且必不可少的,但它并不是我们在生成式 AI 聊天机器人模型中使用的。为此,我们需要转向最近的发现。
最常用的向量嵌入:BERT 和未来模型
Word2vec 每次只能处理一个单词(或 n-gram)。它擅长在简单上下文中识别单词,但当单词在数据库中体现不同上下文时,就会出现问题。
例如,word2vec 在理解以下两个句子中的“bank”含义时遇到了困难:
- 该商业银行已关门。
- 泰晤士河的河岸是开放的。
BERT 是一个可以关注单词上下文的转换模型。它不再只是分析单个单词,而是可以根据上下文预测其含义。因此,在前面的句子中,当涉及到“商业”一词时,它可以将银行归类为金融机构。
此外,BERT 是双向的(虽然非定向性可能更贴切)。它随机抽样数据库以了解上下文并更好地概览数据(不像 word2vec,它从一个词移动到另一个词,并且有局限性)。
最近,BERT 也进化出了新的 S-BERT 模型,该模型可 比利时商业指南 以更轻松地一次性分析整个句子,并且计算效率更高。
矢量化是获取大量数据并将其以数
字形式表示的过程。由于计算机可以理解数字,因此我们可以使用通过这种方法创建的矢量嵌入来帮助计算机理解文本和图像等复杂数据。
现在,向量可以是稀疏的(用零值填充),也可以是密集的(高级表示),密集向量对于计算机如何理解人类语言至关重要。
密集向量之所以成为可能,部分原因是 2013 年的开创性论文“word2vec”,该论文极大地推动了整个 NLP 领域的发展。它提供了一种将文本数据表示为向量的算法和高效方法。
多年来,Word2vec 已被较新的基于 Transformer 的模型(BERT 和 sBERT)所取代。