Query推荐

Apr 25, 2024
2 views
Search&Rec

在电商搜索中,query推荐有很多种产品形态,不同的产品形态也扮演着不同的角色,常见的有query suggestion(SUG)、猜你想搜(搜索发现、大家都在搜)、细选(锦囊)、搜索底纹、搜索PUSH、搜索“风向标”(点击回退query推荐)等。以淘宝当前版本的产品形态为例,有:

image

上述每个方向都值得单独介绍,而本文则先整体从query推荐角度,放在一起介绍,方便横向对比各个场景的目标和方法上的异同之处。而以经典的分类方式展开,可以将query 推荐策略放在用户搜索前、搜索中、浏览中、搜索后(本章不涉及讨论)等各个状态阶段来进行比较:

image

目标

以上引出了搜索query推荐的两大目标:

  • 搜索增长,目标提升提升渗透率,将用户引导到成交效率更高的搜索场景,提升搜索活跃度,常见的产品形态有:底纹、query push、风向标等;
  • 搜索效率优化,节省用户输入成本,细化搜索词,预测用户搜索兴趣,同时挖掘用户需求,并进一步拓宽用户搜索宽度,常见的形态有:SUG、历史搜索、猜你想搜、细选、纠错、空结果反馈等。

实现

明确搜索query推荐目标后,在实现方法上,各类型的query推荐也可放在一起讨论,并围绕其召回、排序展开。从触发条件角度分类,这里将query推荐分成被动触发型(Trigger Based),和主动推荐型(Trigger Free)两类;

Trigger Based

Trigger based方法主要指,有明确触发词或行为的query推荐类型,场景触发需要以用户动作为条件

Query Sug

根据用户当前搜索词前缀,实时猜测用户希望搜索的query,进行query推荐。详细的,召回阶段根据事先建立好的前缀词典(如前缀树),召回候选query。进阶一点则可使用相似query算法召回(基于内容或行为的q2q)、兼容拼音、错别字等,一定程度上放松前缀一致的要求。排序阶段则可简单按照候选query历史搜索pv、uv或点击/成交率进行排序,也可基于简单特征和模型(如LR)进行qeury点击率预估。

猜你想搜(浏览中)、细选

根据用户当前搜索query,推荐相似、略发散query(猜你想搜),对于泛query则可以推荐更加收敛的query(如细选)。通常直接目标为坑位点击率,间接目标可以根据需要设计为搜索丰富度(如人均搜索类目数)、整体成交效率(如人均成交)等,不同的目标对应着不同的设计目的,后续也需要有针对的方案设计的侧重。

以浏览中阶段的“猜你想搜”策略为例,召回可以使用当前用户搜索词为trigger进行q2q召回。也可通过u2q2q,即user过去搜索过的query做为trigger进行q2q召回,以增加个性化,当然需要使用如类目、关键词限制等方法保证历史行为query与当前query的相关性。同样如果要求多样性更强,可通过用户过去行为过的相关item(如相同类目),间接找到这些item常被点击的query作为召回候选,即u2i2q;类似的还可以q2i2q,可根据实际需求进行脑洞。

排序阶段,区别于query sug对实时性要求高,“猜你想搜”可以设计稍复杂的特征和模型,相对于商品搜索rank,这里的query rank的主特征簇包括:trigger query feature、user feature、候选query feature以及上下文特征。对于相关特征的设计可以参考《特征工程篇》,另外也需要有针对特殊场景设计贴近目标的特征。而对于训练数据,则同样与商品搜索rank类似,如以点击率为目标,使用曝光未点击query为负,有点击query为正。

风向标

“风向标“或者叫点击回退query推荐,主要目标是提升搜索渗透率,将其他场景行为的用户引导至搜索场景。相比于sug和猜你想搜,风向标的trigger更多的是用户当前点击的item或其他类型内容。相应地,在实现上,召回阶段主要以item为锚点展开,如i2q、i2i2q、i2q2q、增加个性化的u2i2q、u2q2q(间接物料需要有相关性保证,如通过类目)等。同样,排序侧增加一路trigger item特征簇及相应交叉特征,其他环节则大同小异。

对于风向标场景query的配图,简单的可以通过query下高点击率item的首图即可(需要过滤风险)。

Trigger Free

Trigger free这里相对的指不需要用户具体的触发条件,用户进入相应页面后即可触发query推荐,如进入搜索触发页可以推荐历史搜索、热搜、猜你想搜等,主页搜索框页面可以推荐底纹。另一种trigger free的query推荐是push,系统主动通过提醒栏向用户推荐query,如“你关注的‘笔记本电脑‘有上新了”。详细的有:

历史搜索

直接通过离线、实时统计用户行为日志即可得到用户的历史搜索query词,并直接根据行为时间取topN 展示给用户;

热搜(热榜)

曝光当前热门搜索词、热门搜索话题、热门品类等,同样可直接通过整体用户的搜索频次、人数,并进行不合法query过滤或运营审核配置,进行前端展示。

猜你想搜(搜索中)&底纹

搜索中的猜你想搜,类似“浏览中”的猜你想搜,不同的是这里少了一个用户当前搜索query作为trigger,在召回阶段可以更加发散,主要以用户历史搜索词、点击商品为trigger,围绕u2i2q、u2q2q、u2c2q(c为用户偏好类目)等,而rank阶段同样可以做相应调整。

搜索底纹的推荐链路通常可以复用猜你想搜逻辑,最简单的在搜索框滚动topN的结果即可。

Query Push

Query push场景属于push的一种,这里指围绕搜索词的文案主动弹窗推送,用以引导当前未使用app的用户打开应用程序。实践证明,多数情况下,围绕用户感兴趣的query的主动推送相对于其他文案计划效率更高。相应的,query push场景的召回和rank方法可以借鉴上述底纹、猜你想搜,然后围绕满足条件的query,补充文案模版,送入push链路。

难点

Query推荐场景常遇到冷启动问题,如小场景本身就会有行为数据不足的问题,大场景通常开始时也需要小流量AB,短时间内无法得到足够量的训练数据,而这点的困境大都发生在rank阶段。常规地,冷启阶段召回可以从简,量也不会很大。rank阶段初期也可以不使用模型,而直接通过query历史表现做rank socre,如query历史pv、ctr、cvr等。最后通过多样性重排打散方法(参考重排中的特殊重排情况),避免排序在top的query过于热门和集中。同时通过简单的如Bandit之类的方法进行探索,保证query曝光的多样性以积累更加丰富的数据。

另一种应对冷启动或样本不足的方法是多场景联合优化,可以参考近期淘宝的一篇论文Self-Supervised Learning on Users' Spontaneous Behaviors for Multi-Scenario Ranking in E-commerce[1]。

此外,在上述简单的冷启方法基础上,对用户进行分层(如根据用户活跃度)进行query推荐有时也能取得不错的效果。这点可以认为加入先验的用户活跃度偏好特征,缓解因数据不足引起的bias问题。

小结

本文从搜索阶段、目标、实现方法等维度介绍了电商搜索query推荐的一般应用方法,后续会以重要的query推荐场景举例进行详细介绍。值得一提的是,在搜索query推荐中,风险把控同样也是不可或缺的一环,如涉黄涉政话题query/配图是需要禁止的。这点通常是准备相关词包,或专门设计在线识别模型,毕竟如果因为一个小策略的优化,app被下架就得不偿失了

Reference

电商搜索:Query推荐