LIC介绍

Reading time ~1 minute

douyin在《Long-Term Interest Clock: Fine-Grained Time Perception in Streaming Recommendation System》详细介绍了LIC的实现:

摘要

用户的兴趣在一天中表现出动态模式,例如,用户通常在早上8点喜欢柔和的音乐,但在晚上10点可能转向环境音乐。为了模拟一天中的动态兴趣,小时嵌入在传统的每日训练工业推荐系统中被广泛使用。然而,其离散性可能导致近期流媒体推荐系统中的周期性在线模式和不稳定性。最近,兴趣时钟在流媒体推荐系统中取得了显著的性能。尽管如此,它以粗粒度的方式模拟用户的动态兴趣,仅编码用户从短期行为中得出的24小时的离散兴趣。在本文中,我们提出了一种用于流媒体推荐系统的细粒度时间信息感知方法,名为长期兴趣时钟(LIC)。LIC的关键思想是通过考虑当前时间周围长期行为的关联性(例如,上午8点)来自适应计算当前用户兴趣。LIC由两个模块组成:

  • (1)时钟通用搜索单元(Clock-GSU)通过查询候选项和当前时间的信息,搜索长期行为中的子序列;
  • (2)时钟精确搜索单元(Clock-ESU)采用时间间隔感知的注意力机制,将子序列与候选项聚合。

通过Clock-GSU和Clock-ESU,LIC能够从长期行为中捕捉用户的动态细粒度兴趣。我们进行了在线A/B测试,获得了用户活跃天数+0.122%的提升。此外,扩展的离线实验也显示出改进。长期兴趣时钟已被集成到抖音音乐应用的推荐系统中。

1 引言

时间在一天的过程中对用户的兴趣产生了显著且相当大的影响:

  • 在清晨时分,用户倾向于倾向于平静感的内容。具体来说,他们可能会倾向于听柔和、舒缓的音乐。
  • 到了深夜,当身心接近休息状态时,用户可能更喜欢更宁静、冥想的内容,如环境音乐。

因此,对于旨在根据用户当前兴趣提供满意内容的推荐系统[9-11]来说,捕捉一天中用户的动态兴趣至关重要。

作为使模型能够感知时间信息的典型通用解决方案:小时嵌入方法[3,5],即将一天中的小时转换为小时嵌入,已被早期工业推荐系统广泛采用。这些系统通常采用每日训练框架:收集单日的所有样本,然后随机洗牌进行训练过程。近年来,越来越多的公司部署了实时流媒体推荐系统,这给时间感知带来了新的挑战。在流媒体框架中,任何给定时刻,所有训练样本都具有相同的时间特征。此外,推荐系统具有每小时生成数千万个样本的能力。这种现象导致推荐模型仅适应当前时间特征,并丢弃在其他时间段获得的信息。小时嵌入方法的这种离散性可能导致周期性在线模式的出现并带来不稳定性[10],这在实时流媒体推荐系统中表现出不令人满意的效果。

图片名称

图1:长期兴趣时钟的整体架构

最近,抖音集团提出了一种有效且通用的方法,名为兴趣时钟[10],用于流媒体推荐系统中的时间感知。兴趣时钟将个性化的用户24小时兴趣编码到一个时钟中,取得了显著的性能。然而,在我们的迭代中,我们观察到了这种方法的三个缺点

  • 兴趣的离散性:它按小时分组计算用户的过去兴趣,因此在7:59和8:01的时间感知特征可能不同。尽管它利用经验高斯分布来平滑和聚合离散兴趣嵌入,但聚合的嵌入主要基于相邻的两个小时。因此,如果用户在过去的当前小时附近没有互动,时间感知特征将缺失
  • 粗粒度的兴趣:它将用户的过去行为转化为类别级别的兴趣,仅包括类型、情绪和语言的前三个偏好。如果在当前小时附近,不同的用户主要消费相同类型/情绪/语言的内容,他们将拥有相同的时间感知特征。
  • 短期兴趣:它基于过去30天内的行为计算离散的粗粒度时间感知特征,这只涵盖了短期兴趣。

在本文中,我们提出了一种名为长期兴趣时钟(LIC)的细粒度方法,用于在流媒体推荐系统中感知时间信息,该方法通过考虑当前时间周围长期行为的关联性(例如,上午8点)来自适应计算当前用户兴趣的嵌入。LIC由两个模块组成:基于时钟的通用搜索单元(Clock-GSU)和基于时钟的精确搜索单元(Clock-ESU)。Clock-GSU从长期行为中提取与特定候选项相关且围绕当前时间的子序列。Clock-ESU使用时间间隔感知的注意力机制,根据时间间隔和项目相似性计算相关分数,并生成用户当前兴趣的嵌入。因此,LIC产生的当前兴趣嵌入包含了用户的细粒度(项目级别)长期兴趣,这在一整天内表现出平滑效果。我们工作的三个主要贡献总结如下:

  • 为了使流媒体推荐系统能够感知时间信息,我们提出了一种名为长期兴趣时钟的新方法。据我们所知,我们是第一个在实时流媒体推荐系统中使用长期行为解决时间感知问题的。
  • 我们进行了在线实验,获得了用户活跃天数+0.122%的提升。此外,离线实验也证明了其有效性。
  • 长期兴趣时钟已在抖音音乐应用的在线推荐系统中广泛部署,表明其卓越的有效性和通用性

2 相关工作

在本节中,我们将介绍时间感知和长期序列建模的相关工作。

时间感知。小时嵌入[3, 5]是行业中广泛采用的方法,它将一天中的小时编码为小时嵌入。然而,小时嵌入方法将时间转换为离散嵌入,在现代实时流媒体推荐系统中无效。对于外卖推荐,[9]将一天分为四个时段,包括早晨、中午、晚上和昨晚,并为不同时间段使用不同的图模型,这在其他场景中难以部署。对于流媒体推荐系统,Interest Clock[10]将个性化的用户24小时兴趣编码为一个时钟,但它只以粗粒度的方式模拟短期离散兴趣。

长期序列建模。大多数现有方法[1,2,4,6,7]采用两阶段搜索框架,由通用搜索单元和精确搜索单元组成。它们主要考虑长序列与候选项之间的相似性。其中一些方法[1, 2, 6]还考虑了上下文相似性。然而,这些方法使用小时嵌入来表示时间信息,在流媒体推荐系统中无效。据我们所知,我们是第一个从长期兴趣的角度解决实时流媒体推荐系统中的时间感知问题的。

3 长期兴趣时钟

本节将详细介绍我们提出的长期兴趣时钟模型。3.1节简要说明问题定义,3.2节介绍Clock-GSU模块细节,3.3节阐述Clock-ESU模块。

3.1 问题定义

在推荐系统中,每个样本包含输入原始特征和标签$y \in \lbrace 0,1 \rbrace$,这些特征会被转换为向量形式(称为特征嵌入),记作$\lbrace v_1, \cdots, v_N \rbrace$,其中$N$表示原始特征数量。推荐模型$f(\cdot)$以嵌入向量为输入的预测公式为$\widehat{y} = f([v_1, \cdots, v_N])$。二元分类通常采用交叉熵损失作为优化目标:

\[L = -y \log \widehat{y} - (1 - y) \log(1 - \widehat{y}) \tag{1}\]

本文重点研究如何根据当前时间$t_{cur}$、候选商品及长期行为,提取用户当前兴趣表示$v_{cur}$。

  • 候选商品包含多项特征,其聚合嵌入作为查询向量$q \in \mathbb{R}^H$;
  • 每个行为包含商品及其特征,行为嵌入记作$b \in \mathbb{R}^L$($L$为维度)。因此长期行为序列表示为$\lbrace b_1, \cdots, b_M \rbrace$,$M$为序列长度,第$m$个行为发生时间记为$t_{b_m}$。

3.2 基于时钟的通用搜索单元(Clock-GSU)

Clock-GSU旨在从长期行为中提取与候选商品$q$相关且围绕当前时间$t_{cur}$的子序列。首先定义:

  • 时间提取函数$g(\cdot)$(例如$g(2024.12.10\ 13:30:00) = 13:30:00$)
  • 两个行为$b_n$与$b_m$的相对时间差记为$\Delta(t_{b_n}, t_{b_m})$(例如$\Delta(23:00:00, 1:00:00)=120$分钟,$\Delta(11:00:00, 17:00:00)=360$分钟)。

候选商品与历史行为的相关性得分$\alpha \in \mathbb{R}$计算如下:

\[\alpha(b_m, q) = \underbrace{\frac{(W_b \times b_m) \odot (W_q \times q)^T}{\sqrt{d}}}_{\text{商品相似度}} + \underbrace{s(\Delta(t_{b_m}, t_{cur}))}_{\text{时间相似度}} \tag{2}\]

其中:

  • $W_b \in \mathbb{R}^{d \times L}$和$W_q \in \mathbb{R}^{d \times H}$为可学习参数,$d$为潜在向量维度。
  • $s(\cdot)$是以$[\Delta, \sqrt{\Delta}, \Delta^2, \log(\Delta+1)]$为输入的双层神经网络

基于相关性得分,Clock-GSU可从万级长度的用户行为中执行Top-K搜索,所得子序列记为$\lbrace z_1, \cdots, z_K \rbrace$(LIC中$K=100$)。

与现有上下文感知方法[1,2,4,6]使用绝对时间差不同,我们提出的相对时间差能更好建模流式推荐系统中用户日内动态兴趣。为加速Top-K搜索,$W_b \times b_m$和$W_q \times q$的结果会预计算并存储在线参数服务器(PS)中,$s(\cdot)$的[8,1]维参数也存储于PS。由于$s(\cdot)$结构简单,其时间复杂度远低于$(W_b \times b_m) \odot (W_q \times q)^T$。

3.3 基于时钟的精确搜索单元(Clock-ESU)

Clock-GSU检索出的Top-K子序列$\lbrace z_1, \cdots, z_K \rbrace$是与候选商品及时段相关的行为。Clock-ESU则旨在提取用户当前兴趣表示$v_{cur}$

受长期序列方法[1,4,6]中多头注意力启发,我们采用多头时间差感知注意力机制计算相关性得分。令:

  • $Z \in \mathbb{R}^{K \times L}$表示Top-K行为矩阵

为增强时间感知能力,我们将$[\Delta, \sqrt{\Delta}, \Delta^2, \log(\Delta+1)]$融合到行为表示$z$中。单头表示$r_i$计算如下:

\[r_i = \text{Softmax}(\alpha_i)^T Z W_v^i \tag{3}\]

其中:

  • $W_v^i \in \mathbb{R}^{L \times d}$为第$i$个头的可学习参数矩阵,
  • $\alpha_i$表示通过公式(2)计算的第$i$个头的Top-K相关性得分(每个头具有不同的$W_b$和$W_q$参数矩阵)。

实际使用4个头,用户当前兴趣表示为:

\[v_{cur} = h([r_1, \cdots, r_4]) \tag{4}\]

其中:

  • $h(\cdot)$为双层深度网络

最终将$v_{cur}$输入$f(\cdot)$进行预测。

需注意,Clock-GSU和Clock-ESU均包含时间相似度计算:Clock-GSU能检索临近当前时间的相关商品,Clock-ESU能自适应建模Top-K行为在商品和时间两方面的相关性。两个模块均采用多头注意力机制,Clock-GSU中各头的$(W_b \times b_m)$和$(W_q \times q)$会预计算存储于在线PS,实际计算时直接拼接各头的预计算嵌入来计算商品相似度。

#

https://arxiv.org/pdf/2501.15817

kuaishou LiveForesighter介绍

kuaishou直播团队在《LiveForesighter: Generating Future Information for Live-Streaming Recommendations at Kuaishou》提出了它们的电商直播推荐LiveForesighter:摘...… Continue reading

kuaishou MomentCross介绍

Published on February 20, 2025

kuaishou LiveStream RS介绍

Published on February 19, 2025