NLP的Web嵌入

2025年1月4日 | 阅读 10 分钟

引言

NLP是一门介于计算机科学、人工智能和语言学之间的学术领域。它直接关注人与计算机之间基于语言使用的交互。NLP领域中的另一个基本过程是将文本数据转换为机器可理解的形式。在这个领域最显著的里程碑之一是词嵌入。词嵌入在上文被定义为提供词语的密集向量表示,这些表示基于原始文本的大数据,包含了词语的语义含义、句法特征和词语之间的关系。

因此,本文将更详细地介绍词嵌入的主题,包括其历史背景和发展、不同的构建技术、在不同情境下的使用以及词嵌入的未来研究。

历史背景和动机

词语的早期表示

在词嵌入出现之前,词语通常通过带有许多零的向量来表示,即稀疏向量,如独热编码和词频-逆文档频率(TF-IDF)。这些方法存在严重的局限性。

  • 独热编码(One-Hot Encoding):在此表示法中,词汇表中的每个词语都由一个二元向量表示,除了目标词语的索引之外,其余均为零。这会产生与词汇表大小相同的极高维向量,并且不考虑词语之间的任何关系。例如,词语“猫”和“狗”与“动物”的相似度与与“汽车”的相似度相同。
  • TF-IDF:该方法通过词语在文档中的频率与整个文本集合的频率之比来衡量词语的重要性。尽管与之前使用的独热编码相比有所改进,独热编码将词语的频率塑造成相应的向量,并且对捕获术语的重要性很敏感,但TF-IDF也是稀疏的、高维的,并且无法处理语义查询-问题关系。

词嵌入的出现

问题源于稀疏矩阵的使用;因此,研究人员一直在寻找方法使词向量更密集并包含更多信息。因此,词嵌入作为一种相当有效的解决方案应运而生,它提供密集低维向量并保留词语之间语义关系的信息。其基本思想是,经验上共现的词语具有相似含义的假设,这总结为Zellig Harris和J. R. Firth在20世纪50年代提出的“分布假说”。

构建词嵌入的一些方法如下,它们在NLP应用的不同目标上各有优缺点。最值得注意的方法包括:

  1. Word2Vec
  2. GloVe
  3. FastText
  4. 子词预训练嵌入(例如,ELMo,BERT)

Word2Vec

一个系统,**名为Word2Vec,于2013年由当时在Google工作的Tomas Mikolov领导的团队创建,是提供词嵌入最流行的模型之一。**它有两种形式:Word2Vec的两种方法包括**连续词袋模型(CBOW)和Skip-gram。**

  • CBOW:该模型根据目标词周围的上下文词语(在窗口大小内)来决定目标词。为了分类目标词,它对上下文词向量进行平均。这种方法在记录较少的情况下效果很好,并且通常更有效率。
  • Skip-gram:该模型在给定目标词的情况下给出上下文词的概率。它适用于大型数据集,并且对于所有不常见的词表现更好。

这两种模型都共享一个主要的机制,即神经网络:优化的目标是给定目标词(或给定上下文词的目标词)观察上下文词的概率。上述嵌入能够编码语义相似性,即同义词和类比。

提出的方法是“GloVe(全局词表示向量)”。

斯坦福大学的GloVe是另一种用于创建词嵌入的算法,其方法有显著不同。与使用局部上下文窗口的Word2Vec不同,GloVe应用语料库中文本出现的全局统计信息。目标是进行共现矩阵的分解,以获得词向量。具体来说,GloVe算法试图最小化两个词向量的点积与这两个词语相邻共现概率的对数之间的差值。因此,它编码了局部和全局语义。

FastText

**由Facebook人工智能研究(FAIR)实验室提出,作为Word2Vec模型的扩展,**FastText利用子词信息。与Word2Vec不同,FastText不按单词级别操作,而是将单词分解为n个字符的片段,然后将一个单词表示为其n个字符片段向量的总和。这是通过利用组成它的字符n-gram来实现的,这使得FastText更适合形态丰富的语言;它还使用户能够为未见过的和词汇表外的单词获得嵌入。

上下文词嵌入

大多数先前关于词向量的工作是非上下文的,包括Word2Vec、GloVe和FastText,它们为单词创建一个固定的向量,不会随上下文改变。然而,单个词语的含义取决于它所使用的情境。虽然这增加了词汇表外单词的风险,但上下文词嵌入通过在同一句子中创建不同的词向量来解决这个问题。值得注意的模型包括:

  • ELMo(语言模型嵌入):Elmo是一种上下文词嵌入模型,由艾伦人工智能研究所联合创建,源于深度双向LSTM网络。由于任务侧重于目标词并同时查看左右两侧,因此该模型用于训练过程。
  • BERT(基于Transformer的双向编码器表示):Google开发的BERT使用基于Transformer的方法创建上下文嵌入。它通过掩码语言模型目标进行预训练,该目标涉及掩码输入中的某些单词,模型会尝试根据上下文来猜测它们。这是因为,与传统模型不同,BERT是双向的,这使其能够捕获深入的信息,因此适用于许多NLP操作。

关于前一个组件,Wikimedia Commons为学习方法中提出的概念提供了相当多的数学基础。

了解词嵌入的目的和数学背景对于增加其价值和认识其在应用中的局限性非常重要。

Word2Vec:Skip-gram和CBOW

Word2Vec模型通过基于神经网络的期望目标进行训练。关键的数学概念包括:

负采样(Negative Sampling):同样,由于训练过程的难度,Word2Vec使用一种称为负采样的技术,该技术涉及更新几个“负面”词语(即在给定上下文中不太可能出现的词语)的向量。

FastText:子词信息

FastText是对Word2Vec模型的改进,它考虑了子词信息。关键概念包括:

  • 字符N-gram:词语被视为字符n-gram的集合,模型考虑了形态信息。
  • 训练:与Word2Vec类似,训练过程相同,但FastText学习的是字符n-gram的向量,而不是直接学习词向量,一个词的向量是其n-gram向量的总和。

上下文嵌入:已保存的模型:特定的ELMo和BERT。

LSTM和Transformer被用于创建上下文嵌入,因为它们结构复杂。关键概念包括:

  • ELMo:ELMo采用双向LSTM来创建词语的上下文嵌入。
  • 下一句预测(NSP):这项任务有助于BERT理解一个句子到另一个句子的倾向。具体模型是由成对的句子组成,旨在评估给定语料库中第二个句子是否会紧随第一个句子。

词嵌入的应用

因此,词嵌入通过帮助更有效地处理文本数据,解决了选定的问题并推动了NLP的发展。以下是一些关键应用:

  1. 文本分类
    词嵌入通过生成基于词语语义类比的表示,有助于改进文本分类任务。这些嵌入被用作逻辑回归、支持向量机或深度神经网络等分类器的特征,并有助于提高某些任务的准确性,包括情感分析、主题分类和垃圾邮件检测。
  2. 命名实体识别 (NER)
    好吧,NER的目标是定位和分类文本中的实体(例如,人名、组织名或地点名)。它在词嵌入提供上下文感知的特征时做到这一点,这些特征提高了识别相似实体的准确性。
  3. 机器翻译
    这些嵌入有助于机器翻译过程,因为词向量更加细致和连续,并提供了词语与其含义之间的关系。诸如带有注意力的序列到序列模型等方法利用此类嵌入来更好地将句子从一种语言翻译到另一种语言。
  4. 问答
    词嵌入在问答系统中对于确定问题和可能答案之间的关系非常有用。因此,例如BERT生成的上下文嵌入非常适合将问题与适当的答案进行匹配。
  5. 语义搜索和信息检索
    词嵌入改进了语义搜索,因为它们允许对文档进行改进的搜索,这些搜索考虑了所用词语的含义,而不是逐字搜索。换句话说,嵌入有助于生成包含与查询表述期间使用的文档相似内容的文档,而不管使用的具体搜索词。
  6. 文本生成
    词嵌入应用于涉及文本生成(如聊天机器人和自动文本补全)的任务,以提供上下文正确的响应。值得一提的是,嵌入有助于GPT-3等模型生成类似于人类对特定刺激的写作。
  7. 评估词嵌入
    词嵌入的质量评估对于机器编码重要的语义信息至关重要。常见的评估方法包括:
  8. 内在评估
    自我评估是对嵌入质量的评估,其取决于特定任务。这些任务分析了嵌入捕获语义/句法累积的能力。
    • 词语相似度:该任务通过计算词语对的余弦相似度与黄金标准相似度分数来衡量嵌入保留词语相似度的程度。
    • 词语类比:该任务测试嵌入使用向量运算来解决类比预测(例如,“国王”对“女王”或“男人”对“女人”)的能力。
  9. 外在评估
    此外,外在评估嵌入对其他后续NLP任务的影响。这是通过将嵌入用作其他任务(包括文本分类、NER或机器翻译)的输入特征,并比较性能理想来实现的。

挑战和局限性

虽然词嵌入在NLP方面取得了显著进步,但它们也带来了挑战和局限性。

  1. 偏见与公平性
    因此,词嵌入可能会保留甚至加强某些数据集中存在的偏见。例如,嵌入可能会将特定的职业与某些性别或种族联系起来,这意味着它们的建议可能会带有偏见,例如在招聘算法或情感分析等应用中。
  2. 词汇表外单词
    上述方法存在词汇表外(OOV)单词的问题,因为词嵌入无法为训练期间未遇到的单词创建嵌入。FastText等一些方法通过整合子词信息在一定程度上解决了这个问题。
  3. 上下文变异性
    静态词向量的另一个问题是它们不像动态词嵌入那样表达词语使用上下文的任何变异性。例如,“bank”一词可以在提供存款或货币服务的建筑物的上下文中;它也可以指河岸。像BERT之类的上下文嵌入确实解决了这个问题,但代价是计算资源更高。
  4. 计算资源
    总体而言,训练高质量的词嵌入,特别是上下文嵌入,需要时间、计算能力和文本数据。当算法由计算设备有限的研究人员和从业者实施时,这可能是一个问题。
  5. 未来方向
    词嵌入和NLP领域在快速发展,为未来的研究和开发提供了几个有希望的方向:
  6. 改进的上下文嵌入
    后续研究可能会致力于加深上下文嵌入的效率,这将反过来教会更充分地捕捉语言使用的上下文特殊性。这包括考虑新的必要架构和训练目标,以及适当的微调。
  7. 跨语言和多语言嵌入
    当NLP应用程序一次在一个以上语言中开发和部署时,需要多语言嵌入。跨语言和多语言嵌入涉及为每种语言生成一个单独的向量表,因为与两个单独的表相比,在两种语言之间进行翻译时使用一个表会更方便。
  8. 解决偏见和公平性问题
    人们也在努力克服词嵌入在偏见方面带来的问题。这是关于创建确定、衡量和减轻偏见的方法,从而在NLP应用中促进公平。
  9. 可解释性和可解释性
    考虑到NLP模型变得越来越复杂,对可解释性和可解释性的需求也在增加。了解嵌入如何编码语义信息以及它们对模型预测的影响,对于构建可信赖和可解释的AI系统至关重要。
  10. 高效训练和部署
    简化词嵌入的预训练和分发将极大地有助于使NLP领域更具可扩展性。这包括开发最小化计算和提高嵌入模型效率的流程。

结论

在过去十年中,词嵌入可能是NLP中最重要的概念,因为它们能够创建信息量极大的词语及其关系的向量。Word2Vec、GloVe、FastText和上下文嵌入等其他方法使得在文本分类、机器翻译等不同的NLP活动中取得进步成为可能。然而,偏见、上下文差异和计算资源需求等问题仍然存在。未来的研究旨在解决这些问题并推动词嵌入的发展,从而创造更复杂和公平的NLP。