内容推荐算法:异构行为序列建模探索( 三 )


内容推荐算法:异构行为序列建模探索文章插图
图1-7.框选图片作query , 基于此作图片k近邻验证
? case study人们常说深度网络像个黑盒 , 可解释性差 。 但在本网络中 , 可以观察attention 权重 , 尝试作为对本次推荐结果的解释 。 attention 权重来自 block 3 of 3 的 vanilla attention , 对 四个 multi_head的 attention 作 avg_pooling 。
内容推荐算法:异构行为序列建模探索文章插图
图1-8.case中 ,decoder 对历史商品序列的权重分配
CTR预估模型 In_CTR? base 回顾洋淘场景的base模型由 Wide --tt-darkmode-color: #FF7800;">? 模型架构及主要贡献针对base 短板 , 我们提出并设计了 Interest Transfer CTR model(named In_CTR briefly) ,侧重CTR任务下异构序列的兴趣迁移挑战 。 既然商品兴趣不等于内容兴趣 ,我们就在深度网络中对 兴趣的匹配程度 而不是 兴趣的直接表达 进行建模 ,并利用 匹配程度会直接影响点击意愿 这一先验设想设计了辅助loss ,鼓励模型有所侧重的去学习 ,最终取得了Offline GAUC+8.72% , Online uv_ctr +6.16% 的显著收益 。
内容推荐算法:异构行为序列建模探索文章插图
图2-1.In_CTR 模型架构
模型左侧是常规的设计范式 ,我们的创新为右侧的红色框选模块 , 后续三个章节逐个介绍 。
? uni-coder 有效建模 异构序列
内容推荐算法:异构行为序列建模探索文章插图
图2-2.uni-coder有效建模异构序列
我们参照文献unicoder-VL,对送入encoder之前的异构序列作如图2-2所示的预处理 。 entity即异构序列中的一个元素 , 可以是商品 ,此时side_info={cate , brand}; 也可以是内容 ,此时side_info={id , cate , brand , 封图宽高比 , etc.}; 还可以是special token , 如[sep]作分隔 , 此时没有side_info 。
接着往上 , 是三层emb的element-wise加和 。 1) segment标识电商兴趣/内容兴趣两个不同的domain;2) context标识用户对商品的交互行为 , 如点击/收藏/加购物车/购买 , 内容序列都是点击 , 出于对齐考虑 , 加一个mock即可; 3) position标识交互次序 , 我们按时间排序 。
? 提取兴趣的 匹配强度 而不是直接表达我们对self-att模块的期望就是用它来捕捉序列内的相互依赖关系 ,可以通过tensorboard 可视化来验证它的表现是否符合预期 。 可视化attention方阵可以得到一个灰度图 ,元素(i , j)表示i作query , j作key时的attention_score(soft_max处理) ,颜色越白表示权重越大 。 在搜索团队的工作中 ,明确给出了他们学习收敛后得到的self-att可视化分布图 ,以对角线为主 ,兼有adaptive weight观感 。 在我们的In_Match模型中同样观测到了这样的对角线(见2-3左) ,同In_Match取得的成功可以互相印证 。 但在ctr任务中 , 异构序列加入后 , one-hot现象严重 ,表现不理想(见2-3右) 。
内容推荐算法:异构行为序列建模探索文章插图
图2-3.异构序列的self-attention对比 ,左): In_Match模型 ,对角线为主 ,兼有adaptive weight ,表现理想; 右): ctr模型 , one-hot现象严重 ,表现不理想(without 兴趣匹配强度模块)
失败之后我们转变方向 ,不再执着于商品序列这一兴趣的直接表达 ,转向兴趣的匹配强度建模 。 我们的破局思考是: 预估ctr ,某种程度上就是在预估待打分内容与用户意图(历史异构序列) 的匹配程度的高低与否 , 也即紧密与否 。 既然商品兴趣不等于内容兴趣 , 且二者不在同一语义空间 ,我们就在深度网络中对 兴趣的匹配程度 而不是 兴趣的直接表达 进行建模 ,体现出商品序列应有的贡献 。 改良后 , 获得了期望的self-att对角线观感 。


推荐阅读