从DIN到DSIN:阿里推荐系统演进史中的3个关键洞察

在电商推荐系统的技术演进过程中,阿里团队从2017年到2019年相继提出了DIN、DIEN和DSIN三个重要模型,构建了一套完整的用户兴趣建模体系。这三个模型不仅反映了推荐系统技术的迭代路径,更揭示了工业级推荐系统设计的核心思考逻辑。

1. 从点式兴趣到序列兴趣的范式转变

**DIN(Deep Interest Network)**的出现标志着推荐系统从静态特征建模向动态兴趣建模的关键转折。传统推荐模型通常将用户历史行为视为无序集合,通过简单求和或平均池化处理,这种处理方式存在两个明显缺陷:

  • 兴趣多样性丢失:用户可能同时对服饰、数码、美妆等多个品类感兴趣
  • 局部激活失效:与当前推荐商品无关的历史行为会引入噪声

DIN的创新点在于引入了注意力机制,其核心公式为:

# DIN中的注意力计算简化示例
def attention(target_embed, behavior_embeds):
    scores = [cosine_sim(target_embed, embed) for embed in behavior_embeds]
    weights = softmax(scores)
    return weighted_sum(behavior_embeds, weights)

这种设计带来了两个重要特性:

  1. 动态权重分配:根据候选商品自适应调整历史行为的权重
  2. 兴趣强度保留:避免softmax归一化对绝对兴趣强度的削弱

然而DIN仍存在明显局限——它将用户行为视为无序集合,忽略了行为间的时序关系。这直接催生了DIEN模型的诞生。

2. 会话划分带来的结构革新

DSIN(Deep Session Interest Network)的创新在于发现了用户行为中的会话结构特性。通过对4.5亿条用户行为日志的分析,阿里团队发现:

行为特征会话内跨会话
商品类目相似度0.680.21
价格区间重叠率72%34%
品牌集中度85%42%

基于这些发现,DSIN设计了分层处理架构:

  1. 会话划分层:以30分钟为阈值切分行为序列
  2. 会话兴趣提取层:使用改进的Transformer处理会话内行为
    • 引入Bias Encoding替代传统Position Encoding
    # Bias Encoding实现示例
    def bias_encoding(session_idx, item_pos, embed_dim):
        return W_k[session_idx] + W_t[item_pos] + W_c[embed_dim]
    
  3. 会话交互层:Bi-LSTM建模会话间演化关系
  4. 兴趣激活层:双层注意力机制融合目标商品信息

这种结构带来的性能提升非常显著:

模型广告数据集AUC推荐数据集AUC
DIN0.7260.642
DIEN0.7410.658
DSIN0.7530.672

3. 工业部署中的复杂度权衡

模型演进过程中,计算复杂度呈现指数级增长:

模型参数量推理延迟线上AUC提升
DIN1x1x+8.2%
DIEN3.2x2.1x+12.7%
DSIN5.8x3.7x+15.3%

在实际部署中,阿里工程师采用了多种优化策略:

  • 分片计算:将用户历史行为按会话分片并行处理
  • 层次缓存:
    • L1缓存:最近会话的embedding结果
    • L2缓存:用户长期兴趣向量
  • 动态降级:在流量高峰时关闭Bi-LSTM层

实际业务中发现,将会话最大长度限制在20,会话数量限制在5,能在效果和性能间取得最佳平衡

4. 模型选型的决策框架

针对不同业务场景,推荐系统的技术选型应考虑三个维度:

  1. 数据特性:

    • 行为密度高、时序明显的场景适合DIEN/DSIN
    • 稀疏数据场景建议使用DIN
  2. 业务目标:

    - 转化率优化:优先DSIN
    - 新用户冷启动:DIN+迁移学习
    - 多目标优化:DIEN+MMoE
    
  3. 计算资源:

    • 边缘计算场景:轻量化DIN
    • 云端部署:完整版DSIN

在淘宝首页推荐的AB测试中,三种模型的组合使用取得了最佳效果——对新用户使用DIN,对活跃用户使用DSIN,对中间群体使用DIEN,整体GMV提升19.7%。

模型演进的过程印证了一个核心观点:推荐系统的进步不是简单的技术堆砌,而是对用户行为本质理解的不断深化。从离散兴趣点到连续行为序列,再到结构化会话模式,每一次突破都源于对数据更精细的观察和更本质的抽象。

更多推荐