文档和词项之间的相关度计算汇总

下面针对《Spark高级数据分析》中的第六章的实验
进行原理上的分析
先来个矩阵 M m n M_{m·n}

word1 word2 word3
doc1
doc2
doc3
doc4
doc5

M m n U m k S k k ( V T ) k n M_{m·n}≈U_{m·k}S_{k·k}(V^T)_{k·n}
P118有一句十分关键的话:
线性代数运算告诉我们重构矩阵中的两个列的余弦相似度
正好等于 S V T SV^T 的相应列的余弦相似度

这里的重构矩阵的意思就是 M m n M_{m·n} 近似后的结果(就是上面等式的右侧)。

表达式 对应书本
特定词语-每个词语相关度 V n k S k k ( V T ) k 1 V_{n·k}S_{k·k}(V^T)_{k·1} 6.9节
特定文档-每个文档相关度 U m k S k k U 1 k U_{m·k}S_{k·k}U_{1·k} 6.10节
特定词语-每个文档相关度 U m k S v t = U m k S k k ( V T ) k 1 U_{m·k}Sv_t=U_{m·k}S_{k·k}(V^T)_{k·1} 6.11节
特定文档-每个词语相关度 u d T S V = U 1 k S k k ( V T ) k n u_d^TSV=U_{1·k}S_{k·k}(V^T)_{k·n} 6.11节
多词项查询 U m k S k k U_{m·k}S_{k·k}·多词项构成的向量 6.12节

( V T ) k 1 (V^T)_{k·1} :表示从 V k n V_{k·n} 中抽取一列,即特定词语
U 1 k U_{1·k} :表示从 U m k U_{m·k} 中抽取一行,即特定文档

其中多词项查询相当于:
查询的多个关键词做成词向量,
最后计算该词向量和每个文档的相关度
也就是在模仿前面的“特定词语-每个文档相关度”,
计算的时候把特定词语对应的V中的向量替换成“多个关键词”构成的向量。

猜你喜欢

转载自blog.csdn.net/appleyuchi/article/details/88674874