神经网络之密集的词向量如何能够代表稀疏的词向量

🧠 一、核心问题回顾

我们有两个向量表示:

  1. 稀疏向量(Sparse Vector)

    • 通常是 One-hot 或共现矩阵(co-occurrence matrix)的一行。
    • 维度非常高(几万甚至几百万)。
    • 大多数维度为 0。
    • 每个维度代表某个词、上下文、或特征。
  2. 密集向量(Dense Vector)

    • 维度较低(几十到几百)。
    • 每个维度是一个“混合语义特征”。
    • 是从稀疏空间“学习压缩”出来的。

问题是:

为什么密集向量(低维)能代表稀疏向量(高维)中的语义关系?


⚙️ 二、直观理解:从“身份编号”到“语义坐标”

稀疏表示(如 one-hot)就像:

  • 给每个词一个唯一的编号
  • 每个词在空间中是一个孤立的点
  • 两个词之间没有任何几何或统计关系。

密集表示(embedding)相当于:

  • 用实数向量为每个词找到一个“坐标”;
  • 坐标位置由语料中的共现规律决定;
  • 距离近的词出现在相似上下文中;
  • 实际上是对稀疏信息的一种语义压缩与泛化

🧮 三、数学视角:稀疏向量的低维逼近

1. 设定

假设我们有一个词汇表 ( V ),每个词 (wi)( w_i )(wi) 的稀疏表示是一个高维向量 (xi∈RN)( \mathbf{x}_i \in \mathbb{R}^N )(xiRN),其中 ( N ) 可以是:

  • 词-上下文共现矩阵的列数;
  • 或词的 One-hot 向量维度。

这些 (xi)( \mathbf{x}_i )(xi) 形成一个庞大的矩阵:

$$
X =
\begin{bmatrix}

* & \mathbf{x}_1^T & - \
* & \mathbf{x}_2^T & - \
  & \vdots &  \
* & \mathbf{x}_V^T & -
  \end{bmatrix}
  \in \mathbb{R}^{V \times N}

$$


2. 稀疏矩阵的问题

  • (X)( X )(X) 非常稀疏(绝大部分为 0);
  • (N)( N )(N) 可能比 (V)( V )(V) 还大(几百万级别);
  • 存储与计算都不可行;
  • 直接比较词与词的相似度几乎没有意义。

3. 低维表示的思想

我们希望找到一个低维矩阵 (E∈RV×d)( E \in \mathbb{R}^{V \times d} )(ERV×d)
使得每一行 (ei)( \mathbf{e}_i )(ei)(词的 embedding 向量)
能“近似保留”原稀疏向量的语义结构:

X≈EWT X \approx E W^T XEWT
其中 (W∈RN×d)( W \in \mathbb{R}^{N \times d} )(WRN×d) 是“解码矩阵”或“上下文向量矩阵”。


🔹 换句话说:

  • 稀疏向量 (xi)( \mathbf{x}_i )(xi) 在高维空间中;
  • 我们用一个线性变换 ( E ) 把它投影到低维空间;
  • 要求这种投影仍能近似原有的相似关系。

📘 四、从线性代数看:稀疏矩阵的低秩分解

低维词向量的本质,其实是一种矩阵分解(Matrix Factorization)

1. LSA(Latent Semantic Analysis)

最早的思想来自 LSA:

  • 构造一个词-文档矩阵 ( X )(TF-IDF 权重);
  • 对其做奇异值分解(SVD):

X=UΣVT X = U \Sigma V^T X=UΣVT

  • 取前 ( k ) 个奇异值和对应列:
    Xk=UkΣkVkT X_k = U_k \Sigma_k V_k^T Xk=UkΣkVkT

此时:

  • (UkΣk)( U_k \Sigma_k )(UkΣk) 就是词的密集表示
  • 它在最小平方误差意义下,是原稀疏矩阵的最优低维逼近。

💡 所以:密集词向量是稀疏矩阵的低秩近似。


2. GloVe、Word2Vec 的联系

Word2Vec、GloVe 虽然没有显式使用 SVD,但本质上也是在做类似的事:

  • Word2Vec Skip-gram 模型训练目标:
    maximize∑(i,j)log⁡P(wj∣wi) \text{maximize} \quad \sum_{(i,j)} \log P(w_j|w_i) maximize(i,j)logP(wjwi)
    这等价于在隐式地分解一个共现概率矩阵 (P(wj∣wi))( P(w_j|w_i) )(P(wjwi))

  • GloVe 明确写出了目标函数:
    wiTw~∗j+bi+b~∗j≈log⁡(X∗ij) w_i^T \tilde{w}*j + b_i + \tilde{b}*j \approx \log(X*{ij}) wiTw~j+bi+b~jlog(Xij)
    这里 (X∗ij)( X*{ij} )(Xij) 是共现次数。
    也就是说:GloVe 直接对稀疏的共现矩阵做了对数平滑的低维分解


🧩 五、直觉理解:从稀疏统计 → 密集语义

举个例子:

上下文苹果
喵喵叫500
吠叫060
446
水果008

这就是一个稀疏的“词-上下文共现矩阵”。

我们希望找到低维向量:

猫: [0.9, 0.7]
狗: [0.8, 0.8]
苹果: [0.1, 0.9]

使得它们的相似度能重建上表的大致规律。
也就是说:

  • “猫”和“狗”向量接近(因为共现模式相似);
  • “苹果”远离“猫”和“狗”(因为上下文不同)。

👉 所以密集向量是稀疏共现模式的压缩编码


🔍 六、从信息论角度理解

从信息论的角度,embedding 是一种有信息保留的压缩编码(information-preserving compression)

  • 稀疏向量中包含大量冗余(比如“的”、“是”等高频词对所有词几乎都共现);
  • 通过训练,我们学到了一组低维基向量,使得:
    I(词向量;共现统计)≈I(原稀疏表示) I(\text{词向量}; \text{共现统计}) \approx I(\text{原稀疏表示}) I(词向量;共现统计)I(原稀疏表示)
    即:保留了最有用的语义信息。

这就像主成分分析(PCA)提取主轴:
低维空间捕获高维数据中主要的变化方向(即语义主轴)。


🧠 七、总结:密集词向量“代表”稀疏向量的机制

层面原理说明
几何层面稀疏空间的低维投影保留距离与方向(语义)
线性代数层面稀疏矩阵的低秩分解(X≈EWT)( X \approx E W^T )(XEWT)
概率统计层面共现概率建模(P(contextword)≈softmax(E))(P(\text{context}\text{word})\approx\text{softmax}(E))(P(contextword)softmax(E))
信息论层面压缩编码去掉冗余,保留语义信息

最终:

密集词向量并不是直接替代稀疏词向量,而是它的“语义压缩映射” ——
一种低维、连续的、保留主要语义结构的表示。


🔚 八、简明总结一句话

密集词向量 = 稀疏共现信息的低维压缩,使语义相似的词在几何上靠近。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值