返回目录
公开知识笔记 · 不进入目录

矩阵内积解码与矩阵补全

公开知识笔记

矩阵内积解码与矩阵补全

一句话理解:先把每个药物和副作用压缩成向量,再用两个向量的内积作为配对分数,就能补出整张药物—副作用矩阵。

1. 什么是内积

对两个dd维向量xix_i和yjy_j:

S^ij=xi⊤yj=∑k=1dxikyjk\hat S_{ij}=x_i^\top y_j=\sum_{k=1}^{d}x_{ik}y_{jk}

若两者在若干潜在维度上方向一致,内积较大;方向相反,内积可能较小。它可以被理解为一种可学习的匹配程度。

2. 从单个配对到完整矩阵

把所有药物向量堆成X∈Rnd×dX\in\mathbb R^{n_d\times d},所有副作用向量堆成Y∈Rns×dY\in\mathbb R^{n_s\times d}:

S^=XY⊤\hat S=XY^\top

结果大小是nd×nsn_d\times n_s,每个元素对应一个药物—副作用组合。A3Net中即750×994750\times994。

3. 为什么叫矩阵补全

真实矩阵只有少数位置有观测值,目标是利用这些观测和实体特征估计未知位置。传统矩阵分解直接学习X,YX,Y;A3Net则先用GAT和Transformer注意力生成X,YX,Y,再内积解码。

因此它不是“凭空填空”,而是把图结构、原子属性、副作用特征和已知频率共同压进低维表示。

这里X,YX,Y是网络训练后输出的最终药物/副作用表示,不是KNN构图时使用的原始频率轮廓。两者内积得到的是药物—副作用的预测频率等级分数矩阵;训练标签是SIDER离散的1—5级频率,0表示未知/未记录,因此它通常不应直接理解为概率矩阵。

4. A3Net的加权损失

L=∥VΓ⊙(S^−S)∥F2+α∥VΛ⊙(S^−δE)∥F2\mathcal L= \left\|V_\Gamma\odot(\hat S-S)\right\|_F^2+ \alpha\left\|V_\Lambda\odot(\hat S-\delta E)\right\|_F^2
  • VΓV_\Gamma选择已知位置;
  • VΛV_\Lambda选择未知位置;
  • 第一项拟合1—5级真实频率;
  • 第二项把未知预测拉向δ=0.5\delta=0.5;
  • α=0.03\alpha=0.03降低大量未知项的总体影响。

待后续用小矩阵手算澄清:待澄清知识点。

5. 这个解码器的优缺点

优点:参数少、一次矩阵乘法可得到全部组合、容易训练。

局限:内积是对称形式的双线性匹配,表达能力有限;分数无天然范围约束;向量尺度变大也会让分数变大。可替代为双线性层xiTWyjx_i^TWy_j或MLP,但复杂解码器是否更好必须通过验证证明。

6. 未知项基线不是事实

将未知位置拉向0.5是正则化选择,不表示真实频率就是0.5。由于0本身是未标注状态,这一设定应与PU方法或“不对未知项施加回归目标”等方案比较。

相关概念

相关论文

  • A3Net精读笔记(A3Net)
矩阵内积解码与矩阵补全|每周札记