词向量和 NER 笔记 (CS224N-2)

词向量评估

词向量内部评估

(1)词向量的内部评估是对一组由如Word2Vec或GloVe生成的词向量在特定的中间子任务 (如词类比) 上的评估。这些子任务通常简单而且计算速度快,从而能够帮助我们理解生成的的词向量。

(2)词类比

一个比较常用的内部评估的方法是词向量的类比。在词向量类比中,给定以下形式的不完整类比:

\[a:b ::c : ? \]

然后内部评估系统计算词向量的最大余弦相似度:

\[d=arg\displaystyle\max_i \frac{(x_b-x_a+x_c)^Tx_i}{||x_b-x_a+x_c||} \]

可以看到单词向量包含向量间距离的意义,这个指标有直观的解释。理想的情况下,我们希望 \(x_b-x_a=x_d-x_c\) (例如,queen-king=actress-actor) 。这就暗含着我们希望 \(x_b-x_a+x_c=x_d\) 。因此,我们确定可以最大化两个词向量之间的归一化点积的向量\(x_d\)即可 (即余弦相似度) 。

余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。

词向量外部评估

对一组在实际任务中生成的词向量的评估,这些任务通常复杂而且计算速度慢。

词向量应用于外部任务

外部任务范式

(1)很多 NLP 的外部任务都可以表述为分类任务。例如,给定一个句子,我们可以对这个句子做情感分类,判断其情感类别为正面,负面还是中性。相似地,在命名实体识别 (NER) ,给定一个上下文和一个中心词,我们想将中心词分类为许多类别之一。

(2)在一般的机器学习任务中,我们通常固定输入数据和目标标签,然后使用优化算法来训练权重 (例如梯度下降,L-BFGS,牛顿法等等) 。然而在NLP应用中,我们引入一个新的思想:在训练外部任务时对输入词向量进行再训练。下面我们讨论何时使用以及为什么要这样做。

词向量再训练

在许多情况下,我们会基于内部任务去训练得到词向量,进而再用于外部任务,很多时候这些预训练的词向量在外部评估中表现良好。但是,这些预训练的词向量在外部评估中的表现仍然有提高的可能。当然,重新训练也存在着一定的风险。

如果训练数据集很小,就不应该对单词向量进行再训练。如果训练集很大,再训练可以提高性能。

窗内容分类

一般来说,较窄的窗口大小会导致在句法测试中更好的性能,而更宽的窗口会导致在语义测试中更好的性能。

命名实体识别(NER)

基本任务

通过标记单词,找到文本中的名字并对其进行分类

主要思路

在相邻单词的上下文窗口中对每个单词进行分类:在手工标记的数据上训练逻辑分类器,根据窗口中单词向量的级联对每个类别的中心单词 \(yes/no\) 进行分类。(实际上,我们通常使用多类别softmax,但我们试图保持简单)

如何分类

我们有一个训练数据集,由样本组成 \(\{x_i,y_i\}^N_{i=1}\)\(x_i\) 是输入的文本, \(y_i\) 是对应的标签(监督学习)

典型的ML/stats softmax分类器:
①学习的参数θ只是W的元素(而不是具有稀疏符号特征的输入表示x)

②分类器给出了线性决策边界,这可能是有限的

这里使用神经网络分类器,多次重新表示和组合数据并分类,从而提供非线性分类器

image-20230908191815973

posted @ 2025-03-08 22:35  绵满  阅读(15)  评论(0)    收藏  举报