machine-learning-notes
  • 封面
  • 目录
  • 前言
  • 个人前言
  • 机器学习前言
    • 什么是机器学习和模式识别
    • 机器学习的应用
    • 机器学习的流程
    • 不同的机器学习算法对相同数据预测效果不同
    • 快速入门机器学习
    • 机器学习需要参考哪些书
    • 机器学习的学习路径
    • 深度学习的学习路径
    • 互联网机器学习特定岗位所需技能
  • 机器学习面试
  • 数学基础
  • 微积分
    • 泰勒展开
    • e的直观认识
    • 傅里叶变换
    • 希尔伯特空间
  • 线性代数
    • 范数
    • 矩阵求导
    • 特征值
    • 奇异值分解
  • 概率与信息论
    • 综述概率论基本定义
    • 概率论与贝叶斯先验
    • 正态分布
    • 贝叶斯概率
    • 概率符号说明
    • 共轭先验
    • 信息论
  • 数值计算与优化
    • 最小二乘法
    • 等式约束的拉格朗日乘子法
    • 凸优化
      • 凸集和凸函数
      • 凸优化问题
  • 梯度下降算法
    • 随机梯度下降SGD
    • 动量法Momentum
    • 牛顿动量Nesterov
    • AdaGrad
    • RMSprop
    • Adadelta
    • Adam
    • Nadam
    • AMSGrad
    • AdasMax
  • 概率图模型
    • 概率图模型概论
    • 概率图简介
  • 编程基础
  • linux
    • linux常用命令
    • shell
      • 输入输出重定向
  • python
    • python简介
    • python语法
      • 基础语法
      • 数据结构
      • 过程控制
      • 函数
      • 类和对象
      • 文件操作
      • 正则表达式
    • python库
      • numpy
      • pandas
      • scipy
      • matplotlib
      • scikit-learn
    • python应用
      • 排序算法
  • 数据结构与算法
    • 数据结构
    • 算法思想
      • 排序
        • 堆排序
        • 归并排序
        • 快速排序
      • 递归
    • 剑指offer
      • 链表
      • 二叉树
      • 数组
      • 字符串
      • 栈和队列
      • 递归
      • 动态规划
      • 其他
    • leetcode
    • 编程语言
      • c++
  • Hadoop
    • Hadoop简介
    • MapReduce
  • Hive
  • Spark
  • TensorFlow
    • TensorFlow1.0
      • TensorFlow基础
      • TensorFlow基础概念解析
      • TensorFlow机器学习基础
      • Tensorflow分布式架构
    • TensorFlow2.0
  • PyTorch
  • 机器学习
  • 机器学习概论
  • 特征工程
  • 感知机
  • k近邻
  • 朴素贝叶斯
  • 线性模型
    • 最大熵模型
    • 指数族分布与广义线性模型
    • 线性回归
      • Ridge回归(岭回归)
      • Lasso回归
    • Logistic回归-对数几率回归
  • 决策树
  • 支持向量机
    • 线性可分支持向量机与硬间隔最大化
    • 线性支持向量机与软间隔最大化
    • 非线性支持向量机与核函数
    • 序列最小最优化算法SMO
    • SVM总结
  • 集成学习
    • Bagging
      • 随机森林
    • Boosting
      • AdaBoost
      • GradientBoosting
        • GBDT
        • XGBoost
          • XGBoost理论
          • XGBoost实践
    • Stacking
  • 降维
    • PCA主成分分析
    • 流形学习
  • EM算法
  • HMM隐马尔科夫模型
  • CRF条件随机场
  • 聚类
    • k均值聚类
    • 高斯混合模型
  • 主题模型
    • LDA隐狄利克雷分布
  • 知识点
    • 损失函数
    • 负采样
  • 机器学习算法总结
  • 深度学习
  • 深度学习概论
  • ANN人工神经网络
  • 知识点
    • Batch Normalization
  • CNN卷积神经网络
  • 深度学习优化算法
  • RNN循环神经网络
  • LSTM长短期记忆网络
  • GRU门控循环单元
  • GNN图神经网络
    • GNN图神经网络综述
    • GCN图卷积网络
      • GCN图卷积网络初步理解
      • GCN图卷积网络的numpy简单实现
      • GCN图卷积网络本质理解
      • GCN图卷积网络全面理解
      • SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS ICLR2017
  • 神经网络架构搜索
    • Weight-Agnostic-Neural-Networks Google2019
  • 强化学习
  • 强化学习概论
  • 马尔科夫决策过程
  • 动态规划
  • 无模型方法一:蒙特卡洛
  • 无模型方法二:时间差分
  • 无模型方法三:多步自举
  • 函数近似和深度网络
  • 策略梯度算法
  • 深度强化学习
  • 基于模型的强化学习
  • 强化学习前景
  • 自然语言处理
  • 自然语言处理概论
  • 自然语言
  • 语言模型和中文分词
  • word2vec
    • word2vec概述
    • word2vec算法原理
    • word2vec源码分析
    • word2vec实践
  • Seq2Seq模型和Attention机制
  • Self-Attention和Transformer
  • 知识图谱
  • 推荐系统
  • 推荐系统概论
  • 基础知识
  • 进阶知识
    • 机器学习
      • Factorization Machines ICDM2010
    • embedding
      • Network Embedding
        • LINE: Large-scale Information Network Embedding
    • 深度学习
      • DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 2017
      • DSSM: Learning Deep Structured Semantic Models for Web Search using Clickthrough Data CIKM2013
    • 图卷积网络
      • Graph Convolutional Neural Networks for Web-Scale Recommender Systems KDD2018
    • 强化学习
      • DRN基于深度强化学习的新闻推荐模型
  • 业界应用
    • YouTube
      • Deep Neural Networks for YouTube Recommendations RecSys2016
    • Alibaba
      • Learning Tree-based Deep Model for Recommender Systems KDD2018
      • Deep Interest Network for Click-Through Rate Prediction KDD2018
      • DSIN:Deep Session Interest Network for Click-Through Rate Prediction IJCAI2019
Powered by GitBook
On this page
  • DSSM基于深度学习的语义模型
  • 简介
  • DSSM原理
  • 计算语义特征的DNN模型
  • word hash
  • DSSM的损失函数
  • 实验
  • 参考资料

Was this helpful?

  1. 进阶知识
  2. 深度学习

DSSM: Learning Deep Structured Semantic Models for Web Search using Clickthrough Data CIKM2013

PreviousDeepFM: A Factorization-Machine based Neural Network for CTR Prediction 2017Next图卷积网络

Last updated 5 years ago

Was this helpful?

DSSM基于深度学习的语义模型

论文:Learning Deep Structured Semantic Models for Web Search using Clickthrough Data 作者:Po-Sen Huang, Xiaodong He, Jianfeng Gao, Li Deng 来源:CIKM2013

做了两件事:

1、用深度结构将query和doc映射到同一个低维空间,从而可以计算出它俩之间的相似度。

2、应对大规模网络检索,采用word hash技巧。

简介

传统的网络检索通常用关键词匹配,但是一个概念通常用的词汇和语法都不一样,这样就导致不准确了。

已有的LSA隐语义模型虽然能将相似上下文的不同单词放到同一个语义类簇中,但是它的训练方式是无监督的,损失函数和检索的评估指标联系不太相关,所以性能也不能达到预期。

目前对于上述传统的隐语义模型,有两条路进行了拓展:

  1. 将训练目标和检索排序任务联系起来。但其训练目标是最大化似然值,而不是排序这一评估指标,这依然是次优的。而且,不能应对大规模检索任务,必须要见效减小单词数量,但这会导致性能下降。

  2. Hinton等人通过深度自编码这一深度学习技术,可得到单词的embedding,比传统的LSA更优。但是其依然使用了无监督学习,模型的参数被用来重建doc而和排序无关,所以比base line方法也好不了太多。而且,当检索规模一大,也不能胜任。

针对上述缺点,于是提出了DSSM,给定query,使用深度神经网络对doc进行排序。

主要改进之处有两点:

  1. 将query和doc同时非线性映射到同一个语义空间,然后计算给定的query和每一个doc之间的cos相似度。目标函数是直接最大化实际发生的query-doc点击pair对的条件似然。

  2. 对于大规模单词,提出了word hash技巧。以很小的信息损失,将高维的vector映射到n-gram大小维度。

经过这两点改进,DSSM比其他所有的方法的指标都要高出2.5~4.3%。

DSSM原理

计算语义特征的DNN模型

DNN架构如下图所示。输入的原始文本特征是高维向量,输出是低维语义特征空间的向量。

DNN模型的作用如下:

  1. 将原始的文本特征非线性映射到低维语义空间。

  2. 在低维语义空间中计算doc和query的相似度。

具体表述如下:

xxx为输入向量,yyy为输出向量,

li, i=1,...,N−1l_i,\ i=1,...,N-1li​, i=1,...,N−1

为中间隐层,WiW_iWi​为第iii层的权重矩阵,bib_ibi​是第iii层的偏移项。

我们有:

l1=W1xli=f(Wili−1+bi)y=f(WNlN−1+bN)\begin{aligned} &l_1=W_1x\\ &l_i=f(W_il_{i-1}+b_i)\\ &y=f(W_Nl_{N-1}+b_N) \end{aligned}​l1​=W1​xli​=f(Wi​li−1​+bi​)y=f(WN​lN−1​+bN​)​

使用tanh作为输出层和隐藏层li(i=2,...,N−1)l_i(i = 2, ..., N-1)li​(i=2,...,N−1)的激活函数:

f(x)=1−e—2x1+e—2xf(x)=\frac{1-e^{\text{—}2x}}{1+e^{\text{—}2x}}f(x)=1+e—2x1−e—2x​

则queryQ和docD的语义相关度为:

R(Q, D)=cosine(yQ,yD)=yQTyD∣∣yQ∣∣ ∣∣yD∣∣R(Q,\ D)=\text{cosine}(y_Q,y_D)=\frac{y_Q^Ty_D}{||y_Q||\ ||y_D||}R(Q, D)=cosine(yQ​,yD​)=∣∣yQ​∣∣ ∣∣yD​∣∣yQT​yD​​

所以,给定query,按照其语义相关度对doc进行排序。

输入的xxx向量的维度等于单词表的大小,但是单词表在现实中是非常大的,所以将其直接作为神经网络的输入,对神经网络的前向传播和模型训练都不可接受。所以这里对DNN的第一层使用了“word hash”,这一层的权重被设置为不可学习(固定权重的线性变换)。

word hash

word hash用于减小输入x(词袋向量)的维度,它基于n-gram,最终被表征为n-gram字符的向量。例如good这个单词,先加上起始结束标志#,即#good#,基于3-gram可被拆分为:#go, goo, ood, od#。

相比维度巨大的one-hot编码的向量,Word hash技术让我们能够用维度小得多的向量去表征query或者doc。500K大小的单词可表征成30621维的3-gram向量,从而让我们能将DNN模型用到大国膜信息检索任务上。

唯一的问题是可能不同的单词会有相同的word hash值,但是这个概率很小,500K的单词中仅有22个单词发生了重叠,重叠概率仅为0.0044%。

可将word hash视为固定的不可变的线性变换。

DSSM的损失函数

我们的目标是给定query下最大化点击过的doc的条件概率。

P(D∣Q)=exp(γR(Q,D))∑D′∈Dexp(γR(Q,D′))P(D|Q)=\frac{\text{exp}(\gamma R(Q,D))}{\sum_{D'\in \mathbf{D}}\text{exp}(\gamma R(Q,D'))}P(D∣Q)=∑D′∈D​exp(γR(Q,D′))exp(γR(Q,D))​

其中,γ\gammaγ是平滑因子,需要经验性设置。D\mathbf{D}D为待排序的候选doc集。

理论上,D\mathbf{D}D应该包含所有可能的doc,但实际上,对于每一个实际发生的(query, clicked-doc)pair对,用

(Q,D+)(Q, D^{+})(Q,D+)

表示,即QQQ是query,D+D^{+}D+是点击过的doc。

负采样:

我们将理论上包含了所有doc的集合D近似为包含了D+D^{+}D+和四个随机选择的未点击的doc(负样本)。

而且这里作者说,并没有观察到不同的选择未点击doc的负采样策略会导致显著差异。

所以损失函数是

L(Λ)=−logΠ(Q,D+)P(D+∣Q)L(\Lambda)=-\text{log}\mathop{\Pi}_{(Q,D^{+})}P(D^{+}|Q)L(Λ)=−logΠ(Q,D+)​P(D+∣Q)

实验

略。具体直接看paper。

参考资料

无

===

PDF:

Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
DSSM模型和tensorflow实现
DSSM系列: Deep Structured Semantic Models
返回顶层目录
返回上层目录
简介
DSSM原理
计算语义特征的DNN模型
word hash
DSSM的损失函数
实验
dssm-paper
dssm-dnn-architecture