一、概述
这里为什么要强调正定矩阵W呢,可以参见笔者文章二次型和矩阵正定的意义
二、计算
- 复杂度简化
- 计算简化的原理其实很简单,就是一个方阵减去对角线的一半,不赘述。
- 参数求导
针对 θ = v i , f \theta=v_{i,f} θ=vi,f 的情况,首先要明确 v i , f v_{i,f} vi,f 有 n ∗ k n*k n∗k 个, n n n 为特征域数,也就是 f i e l d _ s i z e field\_size field_size, k k k 为每个特征 f i e l d field field 对应的 e m b e d d i n g embedding embedding 维度(什么?初学小白embedding还不懂?可以参见笔者文章词向量与Embedding究竟是怎么回事?),那么对公式
而言,对 v i , f v_{i,f} vi,f 求导时候 i , f i,f i,f 就已经是固定量了,重点关注 v v v, i i i 和 f f f 交给 ∑ f = 1 k , ∑ i = 1 n \sum_{f=1}^k,\sum_{i=1}^n ∑f=1k,∑i=1n 遍历即可。
- 计算简化的原理其实很简单,就是一个方阵减去对角线的一半,不赘述。
Ref:
[1].论文地址
[2].FM 论文笔记
[3].词向量与Embedding究竟是怎么回事?
[4].二次型和矩阵正定的意义