A Latent Semantic Model with Convolutional-Pooling Structure for Information Retrieval笔记

来源:互联网 发布:js display none 编辑:程序博客网 时间:2024/06/06 09:08
clsm(convolutional latent semantic model) 主要的思想是使用cnn模型来提取语料的语义信息,卷积层的使用保留了词语的上下文信息,池化层的使用提取了对各个隐含语义贡献最大的词汇。

结构
clsm的结构如下:

第一层将word转换成letter-trigram表示,转换之后的word向量维度大大小于one-hot的word表示,相应的增加了泛化能力。该方法不同于dssm模型的bag of letter-trigram,还保留了word作为一个整体。
第二层是卷积层,对句子使用一个滑动窗口(测试的效果是长度为3最好,好于1和5,1没有包含上下文信息,5包含了冗余信息,query一般较短),将窗口中的word向量concat起来。和传统cnn一样,对句子左右边缘做padding。卷积变换得到300维向量,300这个维度相当于传统cnn的层数,得到的向量数量和句子中的word相同(padding的效果)。激活函数为tanh。
第三层是池化层,对卷积得到的各个层做max pooling,把每层维度由1*T转换成1*1。原理是句子中有些词汇对语义贡献不大,max pooling在各个维度选取了对语义贡献大的词汇的值。
第四层是全连接层,将300维映射到128维,激活函数是tanh,得到语义的更高维表达。

细节技巧
预处理中做了lower case,移除了标点符号,保留了数字,没有做stemming。
和dssm一样,模型最大化点击的query doc对的概率,概率的计算方式和dssm一样,使用了平滑因子和负采样(或noise contrastive estimation)。
作者发现将query和doc的模型分开,会有更好的效果,对dssm也是一样。
负采样的数量越大,结果越好。
通过比较clsm和其他模型,clsm表现更好,而且具有显著性。

0 0