记得给 “应用机器学习” 添加星标,收取最新干货
作者:香港城市大学、华为诺亚方舟实验室 刘子儒
今天跟大家分享一篇来自于香港城市大学和华为诺亚方舟实验室的流媒体推荐论文,使用强化学习去自适应地分配嵌入信息以解决冷启动问题并减少内存使用。
论文: https://arxiv.org/abs/2308.06965
1 论文概述
在流式推荐系统领域,传统的处理新用户ID或物品ID的方法通常是随机分配初始ID嵌入。但这种做法带来了两个实际问题:(i) 对于交互数据有限的物品或用户, 可能导致预测性能不佳。(ii) 嵌入新ID或低频ID需要不断扩大嵌入表,从而导致不必要的内存消耗。鉴于这些问题,我们引入了一个基于强化学习驱动的框架, 称为AutoAssign+,该框架促进了自动共享嵌入分配。具体而言,AutoAssign+使用Actor网络实现 (i) 用一小组共享嵌入来表示低频ID,从而增强嵌入初始化;(ii) 动态确定应在嵌入表中保留或删除哪些ID特性。该策略进一步在Critic网络的指导下进行优化。为了评估我们方法的有效性,我们在三个常用的基准数据集上 进行了实验。结果显示,AutoAssign+能够显著提高推荐性能,缓解冷启动问题。此外,我们的框架减少了约20-30%的内存使用,证明了其在流式推荐系统中的效率。
2 基本框架
AutoAssign+框架旨在通过自动为低频目标分配用户/物品嵌入来解决现有方法的局限性,从而帮助缓解低频ID特性对推荐性能的负面影响。在本节中,我们将详细描述我们提出的方法。
2.1 MDP设计
为了解决嵌入分配问题,我们将其形式化为一个可以在强化学习框架内分析的马尔可夫决策过程(MDP),在该框架中,我们训练Actor网络来做出最佳的嵌入分配决策。
(i) 状态 State: 定义为该用户/物品出现的频率信息+其在共享嵌入分配表中的位置信息
(ii) 动作 Action: 表示为对当前用户/物品位置信息的更新:上升,不变,下降。
(iii) 奖励 Reward:定义为推荐模型的过去T时间点的损失均值与当前预测损失的差值。
2.2 Critic网络
我们使用Critic网络来估算由Actor网络生成的动作价值,然后基于此价值更新Actor网络的参数。但是挑战在于为Critic网络设计一个合适的结构,以便于参数更 新。我们的解决方案包括在Critic网络中加入一个共享的底层,该层同时转换用户-物品特性和动作信息。为了实现这一点,我们首先应用一个嵌入层和一个MLP结构 来提取特性,然后将得到的用户-物品特性和动作信息结合为输入,送到一个可微分的Critic网络中。
2.3 学习过程
AutoAssign+的整体框架在学习过程中包括两个步骤:
前向步骤:在第一步中,Actor网络接收每个传入ID的相应状态,并采取行动,为一批用户-物品互动中的每个ID分配一个唯一ID或其中一个分层共享ID。行为价值 和用户-物品组合特性进一步由Critic网络处理,以计算Q值,从而可以微调Actor网络的性能。分配ID嵌入后,使用嵌入层处理用户和物品ID并进行连接,然后它们被 送入推理层。然后将预测的输出与实际输出进行比较,使用均方误差(MSE)损失函数来计算总体损失。
后向步骤:我们首先基于Q值和TD误差的梯度更新Critic网络,直到它收敛。然后基于计算的损失更新推荐模型参数,通过基于预测损失确定奖励来更新Actor网络参数。因此,在连续的训练和评估中,数据驱动的Actor网络得到了微调,并有能力做出更有根据的决策。
3 实验结果
最后,让我们来谈论实验部分。本文主要在三个基准数据集,MovieLens Latest, MovieLens 25M 以及 Netflix Price上进行实验。评估指标是AUC分数, MSE和accuracy。
3.1 整体性能
我们提出的方法胜过所有的基准方法。LFF-Grid和LFF-Random方法需要一个广泛的搜索过程,并由于几个局限性产生次优结果。(1) 它们使用固定的阈值,无法捕获流式环境中用户和物品ID的复杂和动态分布。(2) 这些方法仅使用频率作为标准,并且只有一个共享嵌入,忽略了ID特性在空间和时间上分布的变化。相比之下,AutoAssign+方法有一组分层的候选共享嵌入,可以捕获不同频率的特性的细粒度信息。在时间维度上,AutoAssign+具有一个后备机制,该机制捕获了 长时间没有交互数据但已经使用了唯一ID的用户的模式,并重新为他们分配共享嵌入。
3.2 冷启动测试
这个实验比较了我们提出的AutoAssign+方法与其他基准方法在推荐系统的冷启动阶段的性能。我们选择了MovieLens Latest数据集,绘制了不同用户和电影频率 的平均准确率,范围从0到1,000。结果显示,我们提出的AutoAssign+方法在准确性方面始终优于其他基准方法。具体来说,在用户部分,我们的方法与其他基准方法 之间的差距更为明显,与LFF相比,平均准确率提高了1.1%。在电影部分,由于电影数量较少,LFF在开始阶段出现了明显的下降趋势,而AutoAssign+达到了稳 定且更高的性能。原因是固定的共享嵌入阈值使所有电影使用一个ID嵌入,导致了严重的偏差。但是,AutoAssign+可以通过最小化由于使用共享ID而导致的不同损失 为每部电影动态地做出不同的判断,并平滑地避免了由单一频率信息导致的偏差,即使在类似地使用频率信息时也是如此。
3.3 消融实验
在MovieLens Latest数据集上进行了消融实验以展示AutoAssign+的每个组件如何为整体性能做出贡献。(1) 方法“无下降”(No Descend)涉及将代理网络的输出减少到只有两个动作:“上升”(Ascend) 和“不变”(Unchanged) (2) “单一共享嵌入”(Single SE)意味着将userID和itemID的共享嵌入数量都设置为只有1。
结果显示两个变体模型与AutoAssign之间有一个小的差距,但仍然优于基准LFF。然而,AutoAssign (单一共享嵌入 + 无下降)的表现比LFF差。因为基于RL的 Actor网络的奖励是基于每个ID的最后五个预测损失,不同ID的行为在空间和时间上都会动态变化。在这种情况下,使用单向动作和单一共享嵌入会使代理的决策过于 判断性,产生与LFF相同的偏差。因此,必须同时使用分层的共享嵌入组和下降动作来获得更好的结果。AutoAssign+中的Critic网络通过优化身份代理的策略进 一步提高了模型的性能,增强了框架的稳定性和效率。
3.4 参数减少
减少内存消耗是设计高效推荐系统的关键因素,尤其是对于在线平台。嵌入层是深度推荐模型中参数总数的主要贡献者之一。AutoAssign+中提出的自动共享嵌入方法 旨在通过为低频ID分配共享嵌入来减少内存消耗,从而避免为这些ID不必要地分配唯一的嵌入。结果表明,共享嵌入方法根据数据集的不同,将嵌入层的参数总数减少 了20%到30%。同时,由于共享嵌入的代表性能力得到了增强,模型的准确性得到了改善。
4 结论
在这项研究中,我们分析了流式深度推荐系统中的冷启动问题,该问题导致ID嵌入训练不足,降低了预测性能,并在模型中导致不必要的内存使用。为了解决这些问题, 我们提出了一个名为“自动共享嵌入分配+”(AutoAssign+)的框架,其中包括一个增强的Critic网络,可以自适应地地为低频ID分配共享ID。AutoAssign+减少了 在耗时的搜索过程和专家知识中所需的人工努力,并采取行动提高性能,同时减少模型的参数使用量20%-30%。然而,由Actor网络做出的行动选择(上升/不变/下降) 有些不透明,不容易解释,这使得难以清楚地理解系统是如何做出决策的。这是进一步改进的方向之一。
END