DSSM
文献链接DSSM
背景
将自然语言转化为向量,计算向量的相似度作为两句(query&doc)的相似度
历史方法:
- 单词向量空间模型:向量维度是词表,值是词频。计算简单,但是无法解决一词多义(polysemy)和多词一义(synonymy)
- 话题向量空间模型(潜语义分析,LSA) : X = TY,X是单词向量空间,T是话题空间,Y是文本在话题空间的表示。将文本在单词向量空间表示转化为话题空间上表示。(X -> Y)。
- LSA,PLSA和LDA都是无监督学习,效果不及预期
- clickthrough data,包含一系列query和clicked document,可以用于文本相似性建模(可以类似监督学习),如BTMs和DPMs,效果好于无监督学习,但是时间复杂度过高(巨大稀疏矩阵运算)
- 深度自编码(deep auto-encoders),采用无监督方法(重建文档),效果比不上关键词匹配。同样存在因为巨大稀疏矩阵运算带来的时间复杂度过高
- 关键:如何学习大语料下的语义模型,是提升效果的关键
结构
- 两个文本词汇输入通过word hashing进入一个低维度
- 通过DNN生成进一步的低维度向量
- 计算两个向量的余弦相似度计算softmax
- 利用clickthrough data来训练参数
Word Hashing
因为输入的Term Vector维度和词表长度一样,如果没有word hashing, 那么DNN输入层参数过多(
O
(
∣
V
∣
∗
n
0
)
O(|V|*n_0)
O(∣V∣∗n0))
输入的处理:letter n-grams(词中的字符粒度n-grams,fasttext里用到了相同的技术)
- 前后添加##: #good#
- 根据n-grams连续切分: #go, goo, ood, od#
- 作为输入进入word hashing
letter n-grams实际上可以理解初步学习词根,词尾等信息,学习了语义,降低了维度。部分解决OOV问题
哈希冲突:50W词,降维到30621,冲突比例为0.0044%
negative sampling
理论上这里分母需要选择所有文档,但是这里负样本(正样本就是clicked)只随机选了四个。经过测试,不同负样本抽样策略不影响结果。
拓展
- LSTM-DSSM
- CNN-DSSM
- MV-DSSM:
Google Two Tower Model
论文还没下到,下到再说。