嵌入模型需要使用海量文本(例如书籍、文章、代码和网页)进行训练。最近,我们发现,随着信息量的不断增加,训练机器变得越来越困难。在训练过程中,模型需要学习预测单词的上下文,并将其表示为语义空间中的向量。换句话说,训练使机器能够生成嵌入。
嵌入的维数通常是在训练期间定义的参数。伊拉克WhatsApp 号码数据768 个维度(768 个不同的小数字代表一个含义)是一个非常常见的值,许多人选择这个值,但它可能会根据模型和任务而变化。训练这些模型需要大量的计算资源,可能需要几天甚至几周的时间。
赋予文本意义的注意力系统
现代嵌入模型(例如Google 或OpenAI 的模型)使用一种称为“注意力”的机制来理解单词的上下文。注意力机制使模型能够“聚焦”于与特定任务(例如翻译或问答)最相关的单词。
例如,在翻译“The cat sat on the rug”这句话时,赋予“cat”和“The”同等权重将是一个巨大的错误。注意力机制会聚焦于“cat”和“rug”这两个词,从而生成准确的翻译,并将其转化为这些数字向量。当我们稍后问“Who sat on the rug?”时,注意力机制会发现“rug”已经在问题中出现过,因此它会聚焦于“cat”。
注意力是嵌入准确、上下文地捕捉文本含义的关键之一,因为它允许模型考虑单词与其出现的上下文之间的关系。
即使我们不是一家开发生成式人工智能的大公司,为什么嵌入对于分析含义如此有用?
嵌入是语义分析的有力工具,原因如下:
- 数学分析:这些技术允许应用数学技巧来分析文本的含义。这为搜索、分类、比较和分析信息开辟了一系列可能性,而这些操作原本非常难以实现。
- 简化:它们以数字形式表示含义,从而简化了海量文本的处理和分析。通过社交媒体吸引潜在客户 在当今信息量浩如烟海的世界,这一点至关重要。
- 可扩展性:它们可以有效地应用于大型数据集,使其成为分析大型文本语料库或文档数据库的理想选择。
- 自动化:它们促进NLP 任务的自动化,例如文本分类或摘要生成,从而节省时间和资源。
但是我真的需要嵌入吗?没有语义向量或嵌入,我们能分析什么?
如果没有嵌入,语义分析就只能局限于关注文本表层结构的一些基础技术。然而,仅仅因为它们是比较简单的技术,并不意味着我们应该忽视它们。
正如我们经历过的每一次数字营销革命一样,总会有人仅仅因为某种技术或技巧很流行就贸然使用,而没有先学习基础知识。这种情况在机器学习领域屡见不鲜,我们看到许多公司匆忙创建预测模型,甚至没有每月跟踪其关键结果。同样的情况也开始发生在嵌入算法上。我们看到许多人在不了解其原理,甚至从未对其内容进行过基本分析的情况下就开始使用它们。
这就是为什么我认为审查我们没有嵌入的文本分析能力(也没有NLP 算法,因为语义世界中并非所有事物都与嵌入有关)非常重要。
- 我们将使用的单元:字符、单词、词素、实体。我们可以计算单词出现的次数,识别命名实体(人物、地点、组织),或分析句子的语法结构。
- 我们可以使用的指标:文本长度、单词数量、独特词、独特实体。我们可以测量文本的长度,计算单词数量,或者识别出出现频率最高的单词。
- 频率: TF-IDF(词频-逆文档频率)用于识别关键词。这项技术使我们能够识别出相对于一组文档,文档中最相关的词语。
- 全局分析:词语共现,术语间的相关性。我们可以分析哪些词语倾向于一起出现,或者哪些术语具有相关性。
仅凭这一点,我们就可以从文本中得出非常有趣的结论。商业带领标签云、按重复词聚类、关键词匹配等等。然而,这些技术都有局限性,而且上限非常明显:
- 词语≠含义:两段文字可以用不同的词语表达相似的意思。单凭词语并不总是能够完全表达其含义。例如,“SEO 是最赚钱的渠道”和“我从自然搜索结果中获得的投资回报率往往更高”这两个短语含义相同,但它们却没有一个共同的词。
- 复杂性:在不使用嵌入的情况下分析大量文本的含义非常复杂且耗时。想象一下,我们想要分析数千条产品评论的情绪。如果没有嵌入,我们就必须阅读每条评论并手动确定其情绪,这将是一项艰巨的任务。事实上,过去,我们浪费了大量时间对许多产品的意见和评论进行制表和分类。