美团搜索——基于用户Session的Query改写

美团的搜索引擎主要是对店铺的主店名称,分店名称,地址,推荐菜,商品等进行分词,然后进行倒排索引。用户在搜索时会使用不同的Query去找到想要的结果,但用户的query与索引的内容可能存在差异导致无法召回,比如用户在搜索“早餐”,那"一品粥铺"、"永和豆浆"这些肯定出不来,这样会流失掉很多用户需求。那美团是怎么实现的呢?我们今天就来讲讲美团的Query改写算法。
在这里插入图片描述

在搜索引擎领域,用户Session是指用户在同一个时间段的连续操作,可以基于用户Session构建Session Embedding,针对同一个Session下,用户会在短时间内输入多个query,如下:

user1: query1,query2,query3……
user2: query1,query2,query3……

通过点击行为和文本相似性研究,我们认为同一个Session下的所有的query应该都是有关系的,都是意图聚焦的。所以结合以上的理论,我们将美团搜索基于用户Session的Query改写实现方式分为两个部分,包含Session Embedding以及语义相似纠正。

【Session Embedding】

针对单用户按照时间进行Session划分,一个用户在不同时间段比如早中晚的需求是不同的,如下:

早:“早餐”、“豆浆”、"油条"等
中午:“快餐”、“真功夫”、“都城”、"餐餐乐"等
下午:“下午茶”、“奶茶”、"一点点"等
晚上:“夜宵”、“麻辣烫”、"水煮"等

从上可发现,不同的时间段用户的需求不同,而且同一时间段用户的需求比较聚焦,因此可以按照1小时或者半小时为一个Session,针对用户的每个Session下找到相似的query。

每个用户都按以上方式划分Session,将所有用户的Seesion进行结合构造Session Embedding,总体结构图如下:

在这里插入图片描述

User集合为[user1, user2, user3, user4, user5] Query集合为[query1, query2,
query3, query4, query5, query6, query7, query8]

主物品是item,我们要计算和item相似的query。

图中不同的用户可能会搜索同一个query,比如user1和user2都搜索了query1,结构是(user1, query1, user2),此种结构说明多个用户都搜索同一个query,并最终都点击或者消费了这个item,表明此query1和item的相似性高,这种结构要比单边结构更稳固,单边结构比如(user5,query5),也就是说query1和item关联性更高

如果两个user pair对之间构成的结构越多,也就是两个user共同的query越多,则每个结构越弱,在这个pair对上每个节点分到的权重越低。公式如下:

在这里插入图片描述

Ui表示点击过i的user集合, Iu表示u点击过的item集合。

本质是一个大矩阵乘法,不同的是这里需要计算两两用户对间的关系,此种结构相对CF来讲有一定的优势,CF很多噪声数据,并且非常稀疏,而图中算法结构都是"有益"的信息,更好的利用了群体智慧。

当item为早餐时,如下:
在这里插入图片描述

通过以上方法可得出query序列[“早餐”、“包子”、“豆浆”、“油条”、“都城快餐”]

【语义相似纠正】

基于Bert实现语义纠正模型,同一个Session中用户输入的Query序列在语义上是相近的,Query序列按照时间排序定义为[query1, query2, query3,queryn]。

我们将序列中的每个Query看成一个整体,基于美团历史搜索query构造千万级Session用于训练,结合Bert预训练模型训练每个query的语义向量,根据语义向量,使用余弦距离计算query之间的语义相似度。

语义相似纠正主要是过滤掉多用户误召回以及热门query之间的误召回问题。比如在Session Embedding中得出query序列[“早餐”、“包子”、“豆浆”、“油条”、“都城快餐”]中,通过语义相似纠正后,“都城快餐”会被过滤掉。“早餐”和“都城快餐”的相似性可能没那么高,保留强相关性的其他query,过滤掉语义相似度低的query。

以上算法通过实践,在实际场景中相比于CF来讲,uv点击率和pv点击率均有明显提升,对于item扩展以及曝光都有很大的正向作用。

在这里插入图片描述
最后欢迎关注微信公众号:药老算法(yaolaosuanfa),带你领略搜索、推荐等数据挖掘算法魅力。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值