自然语言处理笔记

自然语言处理基本知识

词嵌入(Word Embeddings)的常见方法有哪些?

  • 词嵌入的定义:
    • 将单词映射到一个实数向量空间中来表示每个单词,这样使得每个单词获得了一个向量表示
    • 这些向量通过捕捉语义和句法上的相似性,使得计算机更加容易理解和处理语言

常见方法

  • Word2Vec
    • 分为CBOWSkip-gram两种方法
  • Glove:Global Vectors for Word Representation
  • FastText:由Facebook提出的方法,不仅考虑了单词,还考虑了字符
  • ELMo: 基于双向LSTM
  • BERT: 由Google提出的基于Transformer的词嵌入方法

Word2Vec

CBOW(Continuous Bag of Words)
  • 更适合用于具有大量数据集,并且关注于高频词的任务中。例如,文本分类、文本聚类
  • CBOW假定上下文能够精准预测目标词,对于处理上下文信息和常见词汇比较高效
  • 训练时间较短:输入为上下文窗口中的多个词向量的平均质量,输出为目标单词的预测
  • 词向量的质量:CBOW主要用于目标词的预测,对于高频词的词向量的质量比较高
    • 高质量指的是:词向量能够较好地捕捉单词的语义特征和其他词的语义关系
Skip-gram
  • 更适合用于小型数据集,尤其是低频词的处理任务,例如:处理稀有词汇的词向量学习
  • 通过目标词来预测上下文信息,对罕见词语义的捕捉能力较强
  • 在使用预训练模型中,能够较好的捕捉单词语义的准确信息,是Skip-gram的优势
  • 计算复杂度较高:通过一个目标词来预测多个上下文词,对于处理小数据集或者稀有词汇非常有用,但耗时也较多
  • 词向量的质量:通过目标词预测其上下文词汇,因此对于低频词和罕见词汇的词向量质量更好
使用Word2Vec进行训练的相关问题

Transformer

学习到的新词汇

  • in broad strokes: 从广义范围来讲
  • snippet: 片段

词向量

  • 两个词的叠加后的向量,与这个词的意思叠加后表示的词的向量是可能相似的
  • 例如$E(cat) + E(plural) = E(cats)$

注意力机制

基本概念

  • 词向量仅仅能够单纯表示一个词的独立意思(脱离于语境),还有这个词在句子中的位置
  • 但是在实际处理中,我们还需要考虑语境中的依赖关系
  • 注意力机制的目的就是通过上下文语境,重新定义这些词嵌入向量
  • query矩阵
    • 通过词嵌入向量与$W_q$矩阵相乘获得
    • 可以用来查找上下文中哪个token与当前token最相关
    • 其中的数字在某种程度上表示再前面的
  • key矩阵
    • 通过词嵌入向量与$W_k$矩阵相乘获得
    • 可以看做是对于query向量的回答
    • 例如,query向量和key向量的配合可以找到哪个形容词在修饰名词
  • value向量
    • 通过注意力矩阵,我们已经可以找到与一个名词相关的形容词,那么接下来就要更新这个名词的词嵌入向量
    • 从旧词嵌入向量更新到新的词嵌入向量,需要加上一个向量,这个向量就是value向量
    • value向量是通过词嵌入向量和$W_v$矩阵相乘得到
    • 和一个词有关的词嵌入向量可能有多个,对应的,就有多个value向量,根据计算出来的注意力矩阵确定每个value向量的权重
    • 使用权重乘上value向量,加和就是对应的deltaE,词嵌入向量需要更新的向量
    • 词嵌入向量的更新公式为:$\Delta E = \sum_{i} a_i \cdot V_i$,其中$a_i$是注意力权重,$V_i$是对应的value向量
    • 最终的词嵌入向量更新为:$E_{new} = E_{old} + \Delta E$
  • 以上的过程就是一个单头注意力机制

对齐

  • 两个词向量的点积,如果两个词向量的点积越大,说明这两个词向量在语义或者其他特征上更加对齐
  • query向量和key向量的对齐,就是两个向量的点积,如果点积

Masking

  • 如果在计算query向量和key向量的对齐度时,不想考虑后一个token对于前一个
  • 可以对于注意力矩阵的下三角部分进行遮罩,即进行masking



Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Google Gemini updates: Flash 1.5, Gemma 2 and Project Astra
  • Displaying External Posts on Your al-folio Blog
  • 强化学习导论
  • 企业项目实训
  • 面试总结