1.Introduction
- lexical matching:不准确
- 隐式语义模型:将类似上下文中的不同term聚到一个语义群里。
- LSA:用SVD将doc-term矩阵分解,$\hat{D}=A^TD$,A是映射矩阵,最后用余弦距离进行检索。
- 概率主题模型:无监督,与评估函数松散耦合。
- PLSA:
- LDA:
- ctr数据训练得出的模型:
- BLTMs:生成模型,query和doc要共享同样的topic分布,每个topic包含同样的factions of words,最大化log似然,是次优的结果。
- DPMs:用S2Net算法,遵循pairwise learning-to-rank模式,优化过程有很多矩阵乘法(跟随词表大小激增)。
- 用auto-encoders扩展语义模型:无监督,优化目标是文档的重构。
3.DEEP STRUCTURED SEMANTIC MODELS FOR WEB SEARCH
3.1DNN for Computing Semantic Features
- 模型假设:如果点击的话,query和doc是相关的。
- tanh作为激活函数。
-
最终是用余弦相似度。
- 优化目标:最大化文档点击率
3.2Word Hashing
- 目的/优点:
- 大大降低维度
- 减少训练集中未出现的词的影响
- 减少词性变化的影响。
- 做法:可以看做是固定线性转换(fixed linear transformation)。
- word头部尾部加上ending mask
- 将word分为ngram
- 同一个单词进行统计,出现过的ngram在对应位置+1,最后形成一个multi-hot的编码
- 问题:碰撞,但是碰撞概率极低。
3.3训练
-
模型:条件(后验)似然概率P(D Q),通过softmax计算得到。系数gamma>0用于平滑,当它大于1时,概率之间的差异会被放大,当它小于1时,概率直接的差异会被缩小。 -
目标函数:最大化极大似然。度量D个Doc(包括D+和D-),其中D-和D+按照4:1采样取得,实验中发现正负样本的比例其实没那么重要。
- 算法:sgd算法
3.4实现细节
- 数据分为训练集、验证集
- 初始化:均匀分布$\sqrt{(-\frac{6}{fanin+fanout},\frac{6}{fanin+fanout})},其中franin是输入单元数,franout是输出单元数$
- pretrain没有用。
- batchsize为1024
- 20个epoch会收敛
4.实验
4.1Datasets & Evaluation Methodology
- eval数据集有16510个query,每个query平均要预估15个web doc的ctr
- label是人工生成的,0-4(4是最相关的,0是最不相关的)
- 预处理:white-space tokenized、lowercased、保留数字、不词干化、不词尾化。
- 2-fold交叉验证
- metric指标:
- NDCG
- 使用paired t-test进行显著性检验,p值小于0.05时被认为有统计学意义。
- train数据集有1亿个数据集,只用title和query做。
4.2结果
- 词汇匹配方法:
- TF-IDF:doc和query都用TF-IDF term weighting表示为term vector。
- BM25
- word翻译模型:侧重解决文档语言差异
- WTM:比TF-IDF和BM25好。
- 语义模型(无监督):DNN的隐式语义模型比线性映射模型(如LSA)表现好。LSA和DAE都是在doc上无监督学习的,所以没有词汇匹配方法好。
- LSA:使用PCA而不是SVD来计算linear projection matrix
- PLSA:只用doc训练,使用MAP估计进行学习
- DAE:模型训练复杂,词表减少为40K。4层隐藏层,每层300个node,中间有个bottleneck层(128个node)。
- 语义模型(ctr数据监督):比词汇匹配方法好。
- BLTM-PR:EM算法优化,约束要求query和title有相同的fractions of terms分配给每个隐topic。PLSA的升级版。
- DPM:线性判别映射模型,映射矩阵用S2Net学习到。LSA的升级版。