深入理解搜索引擎——基于DPSR的个性化召回模型

DPSR是京东发表于SIGIR2020 的paper,是京东在搜索推荐系统领域的实践经验总结,京东自2019年起就开始部署DPSR搜索推荐系统框架,总体网络结构如下:

从整体看,离线模型是一个双塔模型结构,query 和 item 分别有一个 model tower。
Query 端:包括query tokens、user profile、user history events 等特征。
item端:包括title tokens、brand、category、shopid 等特征。
离线索引(offline indexing):使用的是item tower,导出item的embedding 构建 QP 索引。
在线服务(online serving):使用的是query tower,实时计算Query Embedding,模型加载在tensorflow service,在线召回 TopK Item。

 

整个模型并不复杂,现在很多搜索推荐的召回算法中都有类似的想法,就是把用户和个性化信息作为一个tower,item信息作为另一个tower,然后通过多层的感知机进行训练建模,最后计算相似度排序召回。

模型最终公式如下:

f(q,s)=G(Q(q),S(s))

Q(q)∈Rd×m 表示query的embedding
S(s)∈Rd×m 表示sku的embedding
G 表示打分计算函数,比如内积或者余弦相似度等,具体跟随场景的变化而变化。

 

乍一看,和DSSM双塔模型很像,有木有?确实,都是双塔模型,但细节方面还是有很大不同:

1.基于multi-heads的query tower

2.基于attention的损失函数

3.设计了不一样负采样方法

4.DPSR构建了个性化的在线语义召回模型

 

【基于multi-heads的query tower】

在query tower这个层面,不单单使用query单个维度去构建Embedding向量,因为从实验来看,单query维度建模效果不是很好,例如我们在query理解那篇文章提到的一个案例(query=苹果,可以是手机,也可以是水果,虽然query文本相同,但代表的意思不同)。

所以在此模型中,就提出了一种multi-heads的query tower,不同的head可以捕获query不同的语义、品牌、属性等,用多个mlp从不同维度建模query的tower

 

【基于attention的损失函数】

基于muti-head的query可以训练出多个不同维度Embedding,并将其与item的Embedding计算打分。模型采用了attention loss做优化,r(qi,si+) 为正样本,r(qi,si-) 为负样本,模型优化的 loss 可表示为:

公式如下:

 

【设计了不一样的负采样方法】

在搜索场景构建正负样本,大多数模型都是基于用户的点击日志这种弱监督数据,同query词下曝光了多个item,点击了为正样本,未点击则是负样本,但其实这种方式对于电商领域来讲存在一些问题,容易引入bad case,因为实际点击行为中,存在很多噪声数据,并且点击了也不一定是强相关的。举个例子搜索“手机”,展示了苹果、华为、小米手机,不能说未点击就是不相关商品。

所以此模型提出一种混合的负采样方式,即random negatives(全局的随机)和batch negatives(batch的随机)的混合负采样,使用了一组超参来调整两者的比例。全局随机服从某种特定分布,而batch的随机则是根据item的点击频次进行采样,最后通过人工监督的方式进行修正。

上图是超参比例调整的实验结果,发现random negatives越多,召回商品的popularity越高,更能吸引用户点击下单,但会降低商品与检索query的相关性。

 

【DPSR构建了个性化的语义召回模型】

在以上3点的模型设计方案上,基于构建的用户画像和物品画像,使用亿级别的60天用户点击日志的数据集,其中包含56亿个会话,训练个性化语义召回模型。

模型在多个方面做了优化,比如:

1.通过 训练数据压缩,修改训练数据格式,把共用的特征数据加载内存,训练时展开从而降低数据存储;
2. 可伸缩分布式,切分大的 embedding,并将 sum up 放到 ps 以解决带宽瓶颈;
3. 模型分片部署,可以支持上百个模型同时服务或者 A/B 实验;

总体来说,模型效果不错,总体效果如下:

 

DPSR在语义层面、个性化层面做了很多尝试,在实际的工业级搜索引擎的召回过程中还是有很强的借鉴意义。

paper地址:https://arxiv.org/pdf/2006.02282.pdf,有兴趣的小伙伴可以下来看看哈。


 

最后欢迎关注同名微信公众号:药老算法(yaolaosuanfa),带你领略搜索、推荐等数据挖掘算法魅力。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值