多目标推荐:MMOE

论文介绍了MMOE模型,一种用于多任务学习的方法,它通过多门控混合专家(Multi-gateMixture-of-Experts)结构来处理任务之间的差异。在OMOE模型基础上,MMOE为每个任务设置单独的gate,以适应不同任务的需求,缓解任务间的冲突。当任务相关性低时,MMOE的表现优于OMOE,显示出其在处理任务差异上的优势。提供的代码展示了MMOE模型的实现细节,包括专家网络和门网络的构建。

论文直达

Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts | Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining

原理架构说明

如图是作者给出一个架构图,其中的c就是本文提到的MMOE。

  • a)为共享参数的模型架构

  • b)为OMOE模型架构

  • c)在OMOE的基础上,为每一个任务分贝设置一个gate,对不同的任务使用不同的gate与共享参数进行点乘,作为不同任务的基础输出。

作为2018年的论文,gate更加像是一种attention机制的雏形,论文相对简单。在任务相关度很低的情况下,则OMoE的效果相对于MMoE明显下降,说明MMoE中的multi-gate的结构对于任务差异带来的冲突有一定的缓解作用

代码部分

模型整体
### MMOE 多目标场景下的实际应用效果 MMOE(Multi-gate Mixture-of-Experts)模型是一种有效的架构,在处理多目标任务时表现出色。该模型通过共享底层特征表示并允许不同任务之间的协作来提高性能。 #### 模型结构与工作原理 MMOE 架构由多个专家网络组成,这些专家网络负责捕捉输入数据的不同方面。每个专家网络可以专注于特定类型的模式识别。对于不同的目标任务,存在独立的门控机制,用于决定哪些专家的知识应该被利用于特定的任务预测中[^1]。 ```python import tensorflow as tf from tensorflow.keras.layers import Input, Dense def build_mmoe_model(input_dim, num_experts=8, expert_units=64, tasks=['task1', 'task2']): input_layer = Input(shape=(input_dim,)) # Experts layer experts_outputs = [] for _ in range(num_experts): expert_output = Dense(expert_units, activation='relu')(input_layer) experts_outputs.append(expert_output) outputs = [] for task_name in tasks: gating_network = Dense(len(experts_outputs), activation="softmax")(input_layer) weighted_sum = sum([gating_network[:, i:i+1]*experts_outputs[i] for i in range(len(experts_outputs))]) output_for_task = Dense(1)(weighted_sum) outputs.append(output_for_task) model = tf.keras.Model(inputs=input_layer, outputs=dict(zip(tasks, outputs))) return model ``` 这种设计使得 MMOE 能够有效地应对复杂的现实世界问题,其中可能涉及多种相互关联的目标变量。例如,在推荐系统中,除了点击率之外还可以优化转化率;在广告投放领域,则可同时考虑CTR(Click Through Rate)、CVR(Conversion Value Rate)等多个指标。 #### 实际应用场景中的表现 研究表明,在许多情况下,采用 MMOE 方法能够显著提升整体系统的效率和准确性。特别是在那些具有高度相关性的子任务上,由于参数共享带来的正则化效应以及更丰富的表征能力,往往可以获得更好的泛化能力和更高的精度[^2]。 然而值得注意的是,尽管 MMOE 提供了一种强大的框架来进行多目标学习,但在具体实施过程中仍需仔细调整超参数设置,并针对具体的业务需求定制相应的损失函数形式以达到最优解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

会发paper的学渣

您的鼓励和将是我前进的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值