SIM(Search-based user interest modeling)

导读

我们对电商场景兴趣建模的理解愈发清晰:1. 通过预估目标item的信息对用户过去的行为做search提取和item相关的信息是一个很核心有效的技术。2. 更长的用户行为序列信息对CTR建模是非常有效且珍贵的。从用户的角度思考,我们也希望能关注用户长期的兴趣。但是当前的search方法无论是DIN和DIEN都不允许我们在线对一个超长的行为序列比如1000以上做有效搜索。所以我们的目标就比较明确了,研发一个可以根据预估目标item信息对用户全生命周期行为进行search,获取该item相关信息的方法 

方法

直接用类似DIN或者DIEN的方案对全行为序列search无疑是在线计算时无法接受的,因此我们想到了能否把搜索解开来,在文中我们提出了两阶段的search模式:general search 和 exact search。从精度角度我们将搜索拆解为一个相对粗糙普适的搜索和一个更为具体精确的搜索。从计算过程角度我们希望general search的大部分计算可以离线完成,并且将历史行为的数量缩小到几百的量级,给exact search部分的建模保留充足的计算复杂度空间。

exact seatch部分我们没有投入太多的精力,可以把它看做是一个短序列建模问题,用DIN/DIEN或者一些其他的类似结构皆可行。当然在长序列建模里,我们发现以前尝试不那么有效的时间信息影响变大了,因此在exact search这部分引入了时间信息,具体的做法可以看披露的论文SIM。核心的难点还是在general search部分,研发过程中有两种思路:1. 用参数化的方式,我们通过对用户的行为和item进行向量化,然后用基于内积的近似最近邻检索出Top_K个相关的行为,比如这篇文章Maximum Inner Product Search (MIPS)

### 序列建模的概念与方法 #### 行为序列建模概述 行为序列建模是一种用于捕捉用户历史行为模式的技术,广泛应用于推荐系统、搜索引擎等领域。该领域可以划分为两个主要的研究方向:短序列建模和长序列建模[^1]。 --- #### 短序列建模 短序列建模的目标是对用户的近期行为进行高效建模。常见的技术方案包括: - **池化(Pooling)** 池化方法通过对用户行为序列中的多个特征向量进行聚合操作,提取出固定长度的表示向量。常用的池化方式有平均池化(Mean Pooling)、最大池化(Max Pooling),以及加权池化(Weighted Pooling)。这些方法简单有效,在计算资源有限的情况下表现良好。 - **序列化(Sequential Modeling)** 序列化方法更注重捕获用户行为的时间依赖性和顺序关系。典型的方法包括循环神经网络(RNN)、长短时记忆网络(LSTM)、门控循环单元(GRU),以及基于注意力机制的Transformer模型。例如,BST模型利用Transformer中的多头自注意力机制(Multi-Head Self-Attention)和前馈网络(Feed-Forward Network),对用户行为序列进行了高效的建模[^3]。 --- #### 长序列建模 对于长序列建模,由于用户的历史行为可能跨越较长时间范围,因此需要特别设计以处理数据稀疏性和计算复杂度等问题。一种典型的解决方案是SIM模型。 - **SIM模型简介** SIMSearch-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction)是由阿里巴巴广告团队提出的长序列建模框架。它的核心思想是采用两阶段策略: 1. **检索阶段**:从用户的超长行为序列中筛选出与当前候选物品最相关的子序列; 2. **建模阶段**:针对筛选后的子序列应用短序列建模技术完成最终预测。这种设计不仅降低了计算开销,还能更好地适应实时推荐场景的需求[^2]。 --- #### 技术实现细节 以下是几种常见序列建模方法的具体实现思路和技术要点: 1. **DIN模型的核心技术** DIN(Deep Interest Network)通过引入Attention-Pooling机制动态调整用户兴趣权重,使得模型能够聚焦于与目标商品高度相关的交互记录。此外,DIN还提出了多项辅助技术,如MBA(Model-Based Attention)、DICE(Data Imbalance Compensation and Enhancement)等,进一步提升了模型性能[^4]。 2. **Transformer的应用** BST模型借鉴了自然语言处理领域的成功经验,将Transformer架构引入到用户行为序列建模中。具体而言,它首先通过嵌入层(Embedding Layer)将离散的行为转化为低维稠密向量,随后借助多头自注意力机制学习不同位置之间的关联性,并通过堆叠若干个编码器模块逐步增强表达能力。 3. **在线建模的优势** SIM模型采取了在线更新的方式,允许系统持续接收最新用户反馈并即时反映至后续预测过程中。相比传统的离线训练流程,这种方式显著提高了系统的响应速度和服务质量。 --- ### 示例代码片段 以下是一个简单的基于Transformer的用户行为序列建模示例: ```python import torch from torch import nn class SequenceModel(nn.Module): def __init__(self, input_dim, hidden_dim, num_heads, output_dim): super(SequenceModel, self).__init__() self.embedding = nn.Embedding(input_dim, hidden_dim) self.transformer = nn.TransformerEncoder( encoder_layer=nn.TransformerEncoderLayer(d_model=hidden_dim, nhead=num_heads), num_layers=2 ) self.fc = nn.Linear(hidden_dim, output_dim) def forward(self, x): embedded_x = self.embedding(x) # 输入序列映射为高维空间 transformer_out = self.transformer(embedded_x.permute(1, 0, 2)) # Transformer编码 pooled_output = torch.mean(transformer_out, dim=0) # 平均池化 final_output = torch.sigmoid(self.fc(pooled_output)) # 输出概率值 return final_output ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值