词向量
词向量的功能
要将自然语言交给机器学习中的算法来处理,通常需要首先将语言数学化,词向量就是用来将语言中的词进行数学化的一种方式。
通过将文字转化成向量的形式才有助于计算机对文字的处理。
传统方法的局限
WordNet
WordNet 是一个基于词汇语义关系的词典,它按照意义(而不是字母顺序)组织单词,并建立了同义词、反义词、上位词、下位词等关系。
局限性
- 不能表示细微的语义差异
- 不能处理多义词的上下文(一词多义)
- 词汇覆盖不全,难以扩展
- 不能表示词的向量关系(无法体现出词与词之间的相似度)
One-hot 向量
这个向量的特点是:只有一个位置是1,其他全是0,这就是 One-hot 向量。通过不同位置的$1$来区分词。
局限性
- 维度太高,高维稀疏,浪费空间(如果词数量过高,会导致超大的内存占用)
- 无法表示词的相似性(One-hot 向量不能表达词的语义信息。)
- 无法表示词的组合关系
由于传统方法有各种局限,科学家又想出了新的方法
分布式语义学
分布式语义学是一种用数学方法来表示单词含义的理论,核心思想是:一个单词的含义,由它所处的上下文决定。
我们可以通过统计一个单词周围的单词,来推测它的意思!(类比完形填空)
Word2Vec 模型
核心思想:通过预测词的上下文(周围词)学习词的向量表示。
优化方法:
负采样
负采样通过简化目标函数,将多分类问题转化为二元分类问题:
正样本:中心词与真实上下文词的配对(如“苹果”和“吃”)。
负样本:中心词与随机采样的无关词的配对(如“苹果”和“火箭”)。
模型需要:
- 最大化正样本的概率(即二者相关)。
- 最小化负样本的概率(即二者无关)。
负样本的选择不是完全随机的,而是根据词频调整。例如,高频词(如 “的”“在”)被采样的概率会降低,低频词(如 “量子”“宇宙”)被采样的概率会提高。
这样可以避免模型过度关注常见词,更有效地学习低频词的语义。
公式:
$P(w) = \frac{\text{词频}(w)^{3/4}}{\sum \text{词频}(w)^{3/4}}$
优势
简化计算:原本需要计算百万次的概率,现在只需要计算几次(比如 5-20 次),大大减少了计算量。
随机梯度下降
在训练机器学习和深度学习模型时,我们需要找到最优参数,让模型在预测时误差最小。梯度下降就是常用的优化方法。
普通梯度下降需要计算所有数据的平均梯度,计算量太大,速度太慢!
随机梯度下降的核心思想:每次只用一个样本来更新参数!(逐样本更新参数,加速训练)
最大优势是计算量小,更新速度快
模型变体:Skip-gram(中心词→上下文)和 CBOW(上下文→中心词)
Skip-gram —— 用中心词猜测周围的词
CBOW —— 用上下文猜测中心词
词向量的改进
传统共现矩阵:直接统计词共现次数,但维度高、稀疏性强。
优化方法:GloVe 模型
通过对数双线性模型捕捉词间关系(如 “国王 - 男人 + 女人 = 王后”),优化词向量质量。
GloVe 主要是基于共现信息来训练词向量,具体来说,它在数学上做了两件事情:
- 统计单词的共现概率
- 用数学公式优化词向量
通过这种方法,我们不仅能衡量单词的相似度,还能理解单词之间的关系。
如何评估词向量的好坏?
- 内在评估 —— 在词向量本身上进行测试
如果计算机的判断和人类相似,说明词向量的质量比较高! - 外在评估 —— 在真实任务中验证效果
如果一个词向量能在多个 NLP 任务上表现良好,那它就是真的“好用”!
词义歧义问题
通过聚类或线性组合不同语境下的词向量,分离不同词义。
在自然语言中,一个单词可能有多个意思,比如:在饮食类书籍里,“苹果”更多指水果,但在科技类书籍里,它通常指苹果公司。
- 方法1:可以把这些不同的语境分成两组(聚类),分别给它们创建不同的词向量
- 方法2:用「线性组合」调整词向量
我们可以用加权平均的方法,把不同的语境向量线性组合,得到一个更准确的词向量。
例如:
水果的“苹果” → 0.7 语境1向量 + 0.3 语境2向量
公司的“苹果” → 0.2 语境1向量 + 0.8 语境2向量
这样,即使一个单词出现在不同的场景里,我们也可以通过动态调整它的向量,让计算机理解它当前的意思。
神经网络分类器
逻辑回归:线性分类器,通过概率预测标签。
逻辑回归就是一个最简单的分类器,它用一个线性方程计算分数(即“概率”),然后用Sigmoid函数把结果压缩到 0-1 之间,表示某个类别的可能性。
神经网络
多层结构
通过非线性激活函数学习复杂特征,让神经网络学到非线性关系。
交叉熵损失
衡量预测概率与真实标签的差异,用于训练模型。
优化目标:调整神经网络的参数,使交叉熵损失最小!
神经计算基础
神经元模型
模拟生物神经元,通过加权输入和激活函数输出结果。
计算输入的加权和,并通过激活函数输出。(权衡多个因素后做出判断)
多层网络
通过叠加非线性层实现更强大的特征提取和分类能力。
通过层层提取特征,实现复杂分类。