个性化搜索排序系统在各类应用场景中发挥着举足轻重的作用,用户通常会明确阐述他们的需求以获取心仪的结果,并与之进行互动。为了提高用户满意度,个性化搜索不仅要注重结果的相关性,还需尽量满足用户的偏好。现有建模用户偏好的方式主要基于用户过去的搜索行为,然而,通过引入用户所有的历史行为(包括在推荐场景中捕捉到的信息),可以更有效地为个性化服务提供搜索结果。
在尝试将推荐场景中塑造用户兴趣的方法迁移到搜索领域时,我们遇到了两大挑战:
-
如果认定用户在全站的行为作为完整的历史行为,一个可以预见的问题是,完整的行为序列可能并不总是和搜索词相关,直接利用完整的行为历史信息可能会导致负面效果。另一方面,用户历史的搜索行为相对稀疏,这意味着使用这些行为建模包含的信息不够。下图展示了根据真实数据调研的情况,通过追踪过去一段时间内的搜索用户在全站的行为,对比两个场景下他们的行为序列长度。其中横轴是根据用户的活跃度划分的低频(LF)、中频(MF)和高频(HF)用户,低频用户的搜索行为序列长度被缩放到了1,其他等比例。可以看到两者的平均交互物品数量的差距达到20倍。如何在搜索场景下有效利用完整的用户行为面临着挑战。
-
推荐和搜索的行为构成并不一样。推荐主要涉及用户与物品之间的交互,而搜索则涉及用户与搜索词和物品之间的交互。这导致在给定搜索词的情况下,行为变得特征稀疏,如果只使用物品ID特征,效果可能不太理想,因此需要关注内容属性类特征的使用。另外,如果相似的物品有着不同的用户满意程度,也应该对预测产生不同的贡献。
本文提出了 QIN 模型,该模型包含两个级联的单元:
-
相关性搜索单元(Relevance Search Unit):此单元用于过滤与当前查询不相关的历史行为。
-
混合注意力单元(Fused Attention Unit):该单元用于建立查询主导的用户兴趣模型,同时对用户的查询和历史行为进行建模,并给予它们不同的权重。此外,该模型还引入了注意力机制来捕捉具有不同满意度的相似物品可能对预测产生不同的贡献。
Relevance Search Unit
这个单元负责过滤不相关的历史行为,而相关又分为 query 相关和 target item 相关。我们根据这两种相关的逻辑,将 RSU 分为两个阶段,第一阶段是根据 query 过滤不相关的历史行为,第二阶段根据 target item筛选更相似的历史行为。接下来将介绍我们计算相似性的方式以及两阶段检索的优势:
Relevance Calculation. 为了把query和 item 链接起来能够计算相似性,我们需要把他们映射到同一空间下,这里我们使用了预训练的向量来表示这些异质的实体。预训练的向量可以用一些公开的大模型生成,而在快手考虑到平台内容的多模态特性,我们实际使用的是一个多模态预训练向量来分别表示 query 和 item。然后他们可以用 cos 相似度计算得到相关性得分。
Search Process. 有了相关性得分,我们可以进行检索。考虑到行为序列中的噪声和过度多样性,第一阶段计算query和item之间的相关性分数,这可以过滤掉大多数不相关的历史行为。它得到的结果表示用户在某个query下的长期兴趣。这个行为子序列包含了不同相关粒度的行为, 比如用户在连衣裙下的历史行为可以丰富黄色碎花连衣裙的行为历史,因此相比搜索序列,一阶段的检索大大扩充了序列的长度。
另外,只有一阶段的检索产生的行为序列对不同的 target item 缺乏区分性,因此我们再这个序列的基础上又进行了一次检索。
两阶段的检索在一定程度上扩充了用户搜索行为,当然也会引入噪声,因此我们还需要保证序列在建模时有一定的泛化能力,所以提出了 FAU。
Fused Attention Unit
FAU 解耦了 ID 特征和属性特征的注意力计算过程,然后再根据用户历史的消费深度对不同行为的重要性进行评估,比如用户播完的视频就会比才看了一秒的视频重要性更高,这些视频在进行注意力得分的融合时也会赋予更高的权重。
注意力计算的解耦:这是比较通用的多头注意力计算过程:
我们将 ID 和内容属性的 att 计算分开,得到:
根据用户满意度融合: 做法就是将相关特征进过一个小的网络输出
在这里是 softmax,也可以是 sigmoid等等其他的激活函数,我们实验的效果是 softmax 最好
然后根据上面公式进行融合, 是一个可调的超参。
注意力聚合:最后单头的计算公式为:
最后多头的结果展开和其它特征拼接来预估结果。我们的 loss 使用的是交叉熵
Online serving
在实际的训练和推理时,可以看到上图右边这个模块是普通的实时训练的流水线,而我们的方法则要增加一个 RSU 模块,负责存储所有的预训练向量,索引并计算最相似的 K 个历史行为。
这里还要提及的是,在 SIM 一文中涉及到的直接用 target item 索引用户历史行为,在个性化搜索里并不适用,有两个原因:1. 这种 i2i 的方式不能保证相关性,这个问题会搜索场景下非常恶劣 2.这个索引方式的耗时承担不起。我们提出的两阶段的 RSU 则完美解决了这些问题。
下表描述了在不同数据集下QIN 的效果,其中 HEM、ZAM、TEM 都是比较经典的个性化搜索方法,GraphSRRL 和 IHGNN 是通过构建 user-query-item 图的方法,MultiResAttn 是最新的使用搜索行为的个性化搜索方法。相比之下,QIN 大幅提升了三项指标。
即使在不同 TOP@N效果也能保证
除此之外,文章还对模型进行了一些消融实验,包括对 RSU 和 FAU 的设计的对比,序列长度和网络参数的对比,超参的调整。
AB Test
在这项工作中,我们认为基于搜索行为的用户兴趣模型学习的表示存在瓶颈,并分析了现实世界数据中搜索的局限性。 为了解决这个问题,我们提出了 QIN,它由两个单元组成——相关性搜索单元和融合注意力单元。 在 RSU 中,我们从与搜索词相关的原始完整用户行为中寻找子序列。 然后将子序列输入另一个搜索单元以检索与目标物品相关的前 K 个子序列。 在FAU中,我们将ID字段和属性字段解耦来分别计算注意力分数,并采用用户参与度来指导两个字段的注意力分数融合。 我们还进行仿真实验和 A/B 测试来证明 QIN 的优势。
原文始发于微信公众号(快手技术团队):CIKM 2023 | 搜索词主导的用户兴趣网络在搜索排序中的应用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论