标准回答
一、先说明要解决的问题
用户历史行为很丰富,但对某个具体候选广告,只有部分历史是相关的。传统做法对行为序列做 sum/average pooling 得到固定用户向量,无论推什么都一样,无法表达「兴趣的多样性与局部相关性」。
二、DIN 的局部激活(Local Activation)
以候选广告作为 query,对用户历史行为序列中的每个物品计算注意力权重(activation unit),再做加权求和得到用户兴趣向量。这样推不同候选时,被「激活」的历史行为不同——推手机时手机相关行为权重高,推衣服时衣服相关行为权重高,用户表示随候选动态变化。
三、DIEN 的兴趣演化
DIN 没有显式建模兴趣的时间演化。DIEN 增加两层:兴趣抽取层用 GRU 从行为序列抽取每一步的潜在兴趣,兴趣演化层用带注意力的 AUGRU 建模兴趣随时间的迁移,更好捕捉「兴趣漂移」。
二者都是阿里在 CTR 预估精排阶段的代表性序列建模工作。
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:DIN 的注意力 query 是「候选广告」而非用户自身;它解决的是「历史行为对当前候选的相关性加权」,不是普通自注意力。漏掉「随候选动态变化」就答错了核心。
🔗 相似问题
同一考点的不同问法,换着练更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习
