《搜索与推荐中的深度学习匹配》-搜索

说明:本文是对Deep Learning for Matching in Search and Recommendation中搜索部分的读书笔记,参考了知乎大佬-后青春期的工程师文章《搜索与推荐中的深度学习匹配》之搜索篇

1 搜索概述

用户输入query,获取信息documents
目标: query 和 documents 的匹配,e.g. “iphone多少钱” = “苹果手机什么价格”
难点:Semantic Gap
 1.现有搜索仍基于词级
 2.相同内容不同表示,相同表示不同内容

搜索流程

2 Q&D匹配的关键因素

 2.1. 词信息
  精准匹配同一个词
  匹配语义相似词

 2.2. 词块信息
  N-grams:局部词块(包含词序)
  N-terms:局部词块(不包含词序)

  重要性:词信息 > 词序信息

3 传统匹配模型

3.1 Matching in latent space

在这里插入图片描述
假设:q和d具有一定的相似性,通过用户的点击 (click-through) 数据表示

将q和d都映射到隐空间中进行匹配(正则化约束防止过拟合)

3.2 Matching with machine translation

在这里插入图片描述
可以视为将d翻译成q

4 深度语义匹配模型

4.1 优势

  4.1.1 表示
   - word: one hot => 分布式表示
  - Sentence: 词袋模型 => 分布式表示

  4.1.2 匹配函数
   - 输入特征: 手工设计 => 自动学习
   - 匹配函数:简单函数(cos,点乘) => 神经网络

4.2 模式

4.2.1 基于表示学习的方法 (methods of representation learning)
在这里插入图片描述
分别学习q和d表示,再进行匹配分计算: ϕ ( q ) ⊗ ϕ ( d ) \phi(q)\otimes\phi(d) ϕ(q)ϕ(d),其中,词编码方式、句子表示方式和匹配分计算方式各有变化

(1) Deep Structured Semantic Model (DSSM)

在这里插入图片描述

  • 基于字母级表示 trigram,e.g. [#candy#] -> [#ca, can, and, ndy, dy#]。每个词被映射为一个 D \mathbb{D} D维向量 L T w LT_{w} LTw D \mathbb{D} D为letter-trigram词表大小,类似于multi-hot)
  • 对于q和d分别计算 L T q = ∑ w ∈ q L T w LT_{q} = \sum_{w \in q} LT_{w} LTq=wqLTw L T d = ∑ w ∈ d L T w LT_{d} = \sum_{w \in d} LT_{w} LTd=wdLTw,将不定长文档、问句变成定长向量
  • 全连接层分别抽取 L T q LT_{q} LTq L T d LT_{d} LTd特征,最后计算余弦相似度 c o s ( x , y ) cos(x,y) cos(x,y)获得匹配分

 训练样本:<q, D = { d + , d − } D=\{d_{+},d_{-}\} D={d+,d}>
 缺点:词序信息丢失

(2) CNN类
 CDSSM 用 conv1d 操作获得 L T q LT_{q} LTq 取代了 DSSM 中对各词的加和
 ARC-I 和 CNTN 用 word embedding 编码词

(3) RNN类
 RNN-LSTM 用 LSTM 抽取,最后一个时刻 t 的输出代表整个句子

4.2.2 基于交互的方法 (methods of matching function learning)
在这里插入图片描述
底层提前交互奖励基础匹配信号,在融合成匹配分: ϕ ( q ⊗ d ) \phi(q\otimes d) ϕ(qd)

(1) ARC-II
在这里插入图片描述

  • 每次从q,d中各取一个词级trigram做一维卷积 c o n v 1 d ( c o n c a t e ( w 1 q , w 2 q , w 3 q , w 1 d , w 2 d , w 3 d ) ) conv1d( concate(w_{1}^q,w_{2}^q,w_{3}^q,w_{1}^d,w_{2}^d,w_{3}^d)) conv1d(concate(w1q,w2q,w3q,w1d,w2d,w3d)),获得匹配矩阵
  • 在匹配矩阵上不断卷积,最后获得定长向量,输入MLP

 Ad:有基础匹配信号 & 可解释信强 & 有次序
 Dis:无1-gram匹配信号 & 未区分精确匹配和普通匹配

(2) MatchPyramid
在这里插入图片描述
 用1-gram获得匹配矩阵,其余类似(1)

(3)Match-SRNN
在这里插入图片描述
 用动态规划的思想,在匹配矩阵上逐词向后求解,黄色部分作为q和d的最终匹配表示

(4) Decomposable Attention Model for Matching
在这里插入图片描述

  • q和d中每个词计算attention A i A_{i} Ai B j B_{j} Bj
  • 对每个词用一个func作用到每个词编码 w w w和attention向量上(类似于词 w q w^{q} wq在d下的加权表示) x i = f u n c ( w i q , A i ) x_{i}=func(w_{i}^{q},A_{i}) xi=func(wiq,Ai) y j = f u n c ( w j d , B j ) y_{j}=func(w_{j}^{d},B_{j}) yj=func(wjd,Bj)
  • V q = ∑ i x i V^{q}=\sum_{i}x_{i} Vq=ixi V d = ∑ j y j V^{d}=\sum_{j}y_{j} Vd=jyj
  • 计算 V q , V d V^{q},V^{d} Vq,Vd相似度

4.2.3 两种方法结合
方法1: 对短的、热门的q更有效
 重点学习表示,可预先计算存储
 学出表示前,q和d无任何交互,细粒度匹配信号丢失

方法2: 对长的、冷门的q更有效
 匹配信号细粒度、精细化、上层匹配提取更大粒度;可解释性好
 在线计算代价大
在这里插入图片描述

5 q&d相关性深度匹配模型

语义匹配是相关性匹配的基础技术。

5.1 语义相似 ≠ \neq = 语义相关

相似相关
句子语义相似?q与d相关?
文本一般同质(长度相近,属性类似)异构文本
两端文本全部位置进行匹配在d不同部分匹配
匹配func对称匹配func不对称

5.2 基于全局的匹配信号(Based on global distribution of matching strength)

5.2.1 原理

  • 对于q中每个term t i q t^{q}_{i} tiq,计算其与d中各term t j d t^{d}_{j} tjd 匹配信号 s i j s_{ij} sij,再获得其整体匹配强度 S i S_{i} Si
  • 累计所有 t i q t^{q}_{i} tiq的匹配强度分布

 Ad:构建短q与长d间的匹配;与原始匹配信号相比更鲁棒
 Dis:词序信息丢失

5.2.2 模型

(1) DRMM
在这里插入图片描述

  • 编码用w2v,不在本模型中学习训练
  • t i q t^{q}_{i} tiq t j d t^{d}_{j} tjd 计算匹配分,获得匹配矩阵
  • 矩阵每行离散化分桶,获得 t i q t^{q}_{i} tiq的匹配分统计直方图(直接用count、归一化和 log ⁡ ( c o u n t ) \log(count) log(count)
  • 对直方图向量用fc学习表示 z i z_{i} zi(各i用同一个网络,参数共享)
  • 经过Term Gating Network加权求和 t o t a l = ∑ i g i z i total=\sum_{i}g_{i}z_{i} total=igizi,其中 g i g_{i} gi t i q t^{q}_{i} tiq 的 idf 值或者 w2v 编码有关(用 idf 时表现更好)

(2) K-NRM
在这里插入图片描述

  • cos计算匹配矩阵
  • 对矩阵每一行用 K 个 pooling-kernel (高斯核)得到 K-dim 向量 z i z_{i} zi,高斯核 μ , σ \mu,\sigma μ,σ参数可调, μ = 1 , σ → 0 \mu=1,\sigma\rightarrow0 μ=1,σ0时只取精确匹配, σ → ∞ \sigma\rightarrow\infty σ时类似于mean-pooling
  • 将每行向量加和得到 Z = ∑ i z i Z=\sum_{i}z_{i} Z=izi输入fc

(3) Conv-KNRM
在这里插入图片描述

  • 用CNN分别抓取q、d的unigram和bigram信息,两两组合
  • 同(2)用pooling-kernel,最后concate

5.3 基于局部term级匹配信号(Based on local context of matched terms)

5.3.1 原理

  • t i q t^{q}_{i} tiq 找出最匹配的d局部上下文,与q进行匹配计算
  • 累计局部匹配信号

 Ad:robust;删去了d与q无关部分;局部上下文可结合位置信息

5.3.2 模型

(1) DeepRank
在这里插入图片描述

  • 对于每个 t i q t^{q}_{i} tiq
     找出在 d 中出现的位置,取 window 大小为 2k+1,提取局部文本序列 s n s_{n} sn(有多处就提多处);
     对于每个 s n s_{n} sn 计算其与 q 的匹配矩阵(如用MatchPyramid等打分);
     每个 t i q t^{q}_{i} tiq 对应的多个 $ s_{n} $用RNN融合;
  • 对所有 $ t^{q}_{i}$ 加权求和

(2) PACRR(Position-Aware Neural IR Model)
在这里插入图片描述

  • 预处理:
     将 q padding成固定长度
     d 有两种方式
       取前n个词;
       先计算 q 和 d 的匹配矩阵;用大小为 k 的 window 划分 d,在各window 中取各词对于各 t i q t^{q}_{i} tiq的最大评分平均后作为该 window 对于 q 的 最终匹配分;取 top p 个 window,凑齐 n 个长度序列 p = ⌊ n / k ⌋ p=\lfloor n/k \rfloor p=n/k
  • 在匹配矩阵上,用不同size的kernel抽取(如果对于d采用第二种预处理方式,则对于 k window 的序列用 size 为 k 的核,不断变化 k 获取不同特征)
  • 对于 t i q t^{q}_{i} tiq 融合上述所有特征,同时得到该term的权重信号
  • 用RNN融合各 t i q t^{q}_{i} tiq得到匹配分
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值