推荐系统(九)SENet 双塔模型在推荐领域召回粗排的应用

在推荐领域,双塔模型是粗排/召回环节应用最为广泛的算法模型,各种改进型双塔模型层出不穷,本文介绍一种基于 SENet 的双塔模型。

1.双塔模型的鼻祖——DSSM 模型

所谓“双塔模型”,可以追溯到 UIUC(伊利诺伊大学厄巴纳-香槟分校)与微软于 2013 在 CIKM 上发表的论文,论文中提到了一种名为 DSSM(Deep Structured Semantic Models,深度结构化语义模型)的模型。其核心思想是将 query 和 doc 映射到到共同维度的语义空间中,通过最大化 query 和 doc 语义向量之间的余弦相似度,从而训练得到隐含语义模型,达到检索的目的。

提出 DSSM 的论文题目:《Learning Deep Structured Semantic Models for Web Search using Clickthrough Data》

经过多年演进,DSSM 被广泛应用到多个领域,比如:搜索引擎检索,广告相关性,问答系统,机器翻译等。当然,DSSM 主要用在召回和粗排阶段,基本上统治了召回/粗排阶段,呈现“垄断地位”。推荐中 DSSM 双塔模型结构如图 1 所示:
Alt

图1. 推荐领域常用 DSSM 模型结构

如图 1 所示,双塔模型结构非

### 双塔模型在广告推荐系统中的实现与应用 #### 什么是双塔模型双塔模型是一种广泛应用推荐系统机器学习架构,尤其适合处理大规模数据集下的召回粗排任务。其核心思想是通过两个独立的神经网络分别对用户特征和物品特征进行编码,最终计算两者之间的相似度得分来完成匹配[^1]。 #### DSSM作为双塔模型的基础 DSSM(Deep Structured Semantic Model)被认为是双塔模型的经典代表之一。它最初被设计用于搜索引擎中的语义匹配问题,后来逐渐扩展到推荐系统领域DSSM的核心在于利用深度神经网络将用户的查询(Query)和文档表示映射到同一向量空间中,并通过余弦相似度或其他距离函数衡量两者的相关性[^3]。 #### 广告推荐场景中的具体应用 在广告推荐系统中,双塔模型通常用来解决从海量候选人群中筛选出最有可能点击或转化的目标群体的问题。例如,在某些实际案例中,该方法可以从百亿级别的潜在受众里高效选出数百万规模的小范围目标对象供后续精排阶段进一步优化。 以下是基于SENet改进版双塔模型的一个典型框架描述: ```python import tensorflow as tf def build_se_net(input_dim, reduction_ratio=4): """构建SE模块""" x = Dense(units=input_dim // reduction_ratio)(input_tensor) x = Activation('relu')(x) x = Dense(units=input_dim)(x) x = Activation('sigmoid')(x) return Multiply()([input_tensor, x]) def create_double_tower_model(user_input_shape, item_input_shape): user_inputs = Input(shape=user_input_shape) item_inputs = Input(shape=item_input_shape) # 用户侧塔结构 user_hidden_1 = Dense(128, activation='relu')(user_inputs) se_user = build_se_net(128)(user_hidden_1) user_embedding = Dense(64, name="user_embedding")(se_user) # 物品侧塔结构 item_hidden_1 = Dense(128, activation='relu')(item_inputs) se_item = build_se_net(128)(item_hidden_1) item_embedding = Dense(64, name="item_embedding")(se_item) cosine_similarity = Dot(axes=-1, normalize=True)([user_embedding, item_embedding]) model = Model(inputs=[user_inputs, item_inputs], outputs=cosine_similarity) model.compile(optimizer='adam', loss='binary_crossentropy') return model ``` 此代码片段展示了如何结合SENet机制增强传统双塔模型的表现力。其中`build_se_net`定义了一个简单的挤压激励(Squeeze-and-Excitation)操作以提升重要特征权重;而整个网络则由两条分支构成——一条负责处理用户信息,另一条专注于商品属性提取,最后借助余弦相似度评估二者关联程度。 #### 结论 综上所述,双塔模型凭借其高效的并行化能力以及良好的泛化性能成为当前广告推荐领域不可或缺的技术工具。通过对原始输入的有效表征学习,配合诸如SENet之类的高级组件调整内部交互关系,可以显著提高预测精度和服务质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jin_Kwok

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值