1. 基础层面:语义距离
语义距离是分析文本相似性的基本工具。它衡量语义空间中两个嵌入之间的“接近度”,反映它们含义的相似性。
距离有多种类型,每种类型都有自己的特点和应用:
- 余弦距离:测量两个向量之间的角度。日本 WhatsApp 号码数据 它是嵌入分析中最常用的指标之一(我们甚至可以说在很多场景中是唯一的指标),因为它不受向量幅值的影响。两个方向相同的向量(即指向相同的方向,因此指向相同的含义)的余弦距离为 0,无论它们的长度如何。例如,这使我们能够将关键词(幅值较小的短短语)与全文(其中含义的重复会改变向量幅值)进行比较。因此,在讨论纯粹的含义时,余弦距离是最常用的。
- 欧氏距离:测量多维空间中两点之间的直线距离。它对向量的幅值敏感,因此两个方向相同但幅值不同的向量的欧氏距离会比两个幅值相同但方向不同的向量的欧氏距离更大。这使得它们在寻找文本之间的相似性(而不仅仅是含义)时非常有用。
- 曼哈顿距离:又称“城市街区”距离,它测量两点之间的距离,即它们坐标绝对差之和。它在嵌入分析中不太常用(好吧,根本没用过),但由于很多人反复强调它在某些情况下很有用,所以必须把它包含进来。
距离度量的选择取决于您想要执行的分析类型。对于大多数嵌入应用来说,余弦距离是正确的选择,因为它关注的是向量方向上的相似性,而这恰恰反映了语义。
语义距离允许进行各种各样的分析,例如:
- 搜索:查找与给定查询或关键词最相似的文本 网上商店的销售线索挖掘——10 个最佳技巧 。我们可以计算查询的嵌入与文本集合中的嵌入之间的距离。距离最小的文本与查询最相似。
- 分类:根据语义相似性将文本分组。我们可以使用聚类算法对具有相似嵌入的文本进行分组。或者,直接传入类别定义,查看哪些文本符合类别。
- 优化:提高内容与目标关键词的语义相关性。我们可以将文本的嵌入与关键词的嵌入进行比较,以确定文本是否与该关键词相关。
- 异常值检测:识别偏离一般模式的文本。我们可以计算每个文本与其聚类质心的距离。与质心明显偏离的文本可视为异常值。
正如您所见,像知道如何应用“余弦距离”这样简单的事情(听起来很复杂,但最终是机器为我们创建的公式,仅此而已)已经代表了我们在进行语义分析时可能性的根本变化。
2. K均值和自动聚类
K-means 是一种聚类算法,它允许根据数据点的相似性将其分组。在嵌入的上下文中,K-means 可以将具有相似含义的文本分组,从而有助于分析和理解大量文档。
假设您有数千篇新闻文章,并希望按主题对它们进行分组。K 均值算法可以帮助您自动识别涵盖类似主题(例如体育、政治、经济等)的文章聚类。
K均值算法的工作原理如下:
- 您要创建的聚类数量 (k) 已定义。这是您必须指定的参数。k 的值没有固定的选择规则,但有一些方法(例如“肘部法”或“轮廓法”)可以帮助您找到最佳值。
- 数据点(嵌入)被迭代地分配到各个聚类中。该算法首先将每个点分配到一个随机聚类。然后计算每个聚类的质心(中心点)。之后,算法将每个点重新分配到质心最接近的聚类。重复此过程,直到聚类稳定下来。
- 质心是每个聚类的中心点。它们表示属于该聚类的文本嵌入的“平均值”。
K-means 允许您执行如下分析:
- 宏观分析:了解文本集的整体结构。通过将文本分组,我们可以大致了解该文本集涵盖的主要主题。
- 聚类比较:分析文本组之间的差异和相似之处。商业 带领 我们可以比较聚类的质心,以识别区分它们的特征。
- 识别主题:发现文本集合中涵盖的主要主题。我们可以分析属于每个集群的文本,以识别将它们联系在一起的主题或概念。
现在我们已经了解了基础知识,让我们看看如何在业务中利用嵌入。
正如我们所见,嵌入是一种强大的工具,可用于多种用途。但如果我们专注于商业应用,特别是在数字营销、网站和应用分析、SEO 或 SEM 领域,我们可以看到一些常见的分析方法,这些方法有助于我们获得新的洞察和策略。下面,我将向您展示如何使用嵌入来改善业务的步骤和一些示例。
1. 入门基础:如何自己创建嵌入
要开始使用嵌入,您需要创建一个嵌入数据库,其中包含文本、关键字或任何其他要分析的元素。生成嵌入的方法有几种:
- 代码库:您可以使用 Gensim(用于 Word2Vec)、spaCy 或 Transformers(用于 BERT、OpenAI 的“text-embedding-ada-002”或 Google 的“text-embedding-gecko@001”等模型)等库在您自己的代码中生成嵌入。
- API:您可以使用 Google Cloud (Vertex AI) 或 OpenAI API 生成嵌入,而无需训练您自己的模型。如果您是机器学习新手,或者需要快速轻松地生成嵌入,这将特别有用。
- BigQuery:
ML.EMBEDDING
如果您使用 BigQuery,则可以使用或函数直接在 SQL 查询中生成嵌入ML.GENERATE_EMBEDDING
。如果您拥有大量数据并希望执行大规模分析,这将特别有用。
OpenAI API 示例:
2. 我已经知道如何创建嵌入,但我应该创建什么作为嵌入?
选择创建什么作为嵌入取决于你的目标。基本上,所有你想进行语义分析的内容都应该有其自己的向量表示。如果它是一个嵌入,你可以将它与你已嵌入的其他元素进行比较,以查看它们的相似性和含义。
您可能希望将一些内容创意转化为嵌入:
- 您的网站内容:文章、产品、服务表等。这使您可以分析内容之间的相似性、识别主题、检测重复内容或推荐相关内容。
- 标题和描述:分析其语义相关性并进行 SEO 优化。您可以将标题和描述中的嵌入与它们链接到的页面的嵌入进行比较,以确定它们是否与您的目标关键词相关且已针对目标关键词进行优化。
- 关键词:分析关键词与您的内容和用户搜索之间的关系。您可以使用嵌入来识别与您的内容最相关的关键词,或按主题对关键词进行分组。
- 类别和分类法:对内容进行分类并改进网站导航。您可以根据类别生成嵌入,并使用它们自动对新内容进行分类。
- 主题:分析内容中涵盖的不同主题。您可以为不同的主题生成嵌入,并使用它们来识别网站涵盖的主要主题。