推荐系统论文阅读(二十四)-基于回话推荐的知识蒸馏模型

论文:

论文题目:《ADER: Adaptively Distilled Exemplar Replay Towards Continual Learning for Session-based Recommendation 》

论文地址:https://arxiv.org/pdf/2007.12000v1.pdf

本论文是RecSys最佳短论文,采用重放策略和知识蒸馏的方式进行持续学习,有效的避免了持续学习中灾难性遗忘的问题,我们知道在持续学习中,如果简单的在新到来的数据上进行模型增量训练的话,会导致模型忘记以前学习到的知识,也就减弱了对以前学习到的训练样本的推理能力,本论文基于回话推荐的任务下,采用知识蒸馏的方式进行持续学习,一起看一下吧。

一 、背景

session-based recommendation:基于最近网页浏览器的用户动作短序列预测用户的下一阶段动作(某个 item 的点击,查看,购买),例如 E-commerce和社交媒体。session是服务器端用来记录识别用户的一种机制. 典型的场景比如购物车,服务端为特定的对象创建了特定的Session,用于标识这个对象,并且跟踪用户的浏览点击行为。我们这里可以将其理解为具有时序关系的一些记录序列。传统的两类推荐方法——基于内容的推荐算法和协同过滤推荐算法(model-based、memory-based)在刻画序列数据中存在缺陷:每个item相互独立,不能建模session中item的连续偏好信息。

如果一个系统中有着实时sessipn这样数据,我们就能对用户的session序列进行建模,我们可以这么理解,比如一个用户刚点击了一个iphone12手机,紧接着又点击了iphone12的手机壳,很明显这些序列之间的建模是十分有意义的,因为用户下一个要点击的物品可能就是iphone的耳机。

介绍完序列推荐任务后,我们再看一下持续学习,在一个比较成熟的推荐系统里面,精排模型都是有一个训练周期的,模型每隔几天,有时候甚至为了满足业务需求一天都要重新训练一遍。在一个数据量非常庞大的系统中,每天都对所有的训练样本进行全量学习是一个既耗费时间又耗费资源的事情,所以只能通过持续学习的方式来对模型进行参数更新。持续学习的主要挑战是灾难性的遗忘。 减轻灾难性遗忘的方法可分为三类:正则化,示例重放和动态体系结构,本论文主要聚焦在前面两种方法。

正则化方法添加了特定的正则化术语,以巩固之前学到的知识。 其中,知识蒸馏用来惩罚模型logit变化,并且被广泛采用了。主要的方法就是根据各种重要措施来惩罚对旧知识至关重要的参数更改。 

示例重播方法存储过去的样本(也称为示例),并定期重播以防止模型忘记先前的知识。 除了统一选择样例外,还可以采用了Herding技术来选择样例,本论文采用的就是Herding方法。

二、Method

2.1 Background on Neural Session-based Recommenders

序列推荐模型的结构主要有两部分,第一部分是feature extractor ϕ(x),特征提取层,这个结构的主要作用就是把一个session序列建模并且表达成一个vector。第二部分就是output layer ω(ϕ(x)),通常这一层都是全连接层,用来预测下一个预测要点击的item。

2.2 序列推荐中的持续学习


这里就不拿原论文中的话语来讲解了,我们直接看上面这个图就知道了。首先给出Dt的定义,Dt是第t个周期新到来的数据,函数可以理解为在第t个周期的模型。持续学习的意思是这样:使用Dt-1来训练第t-1个周期的模型,用Dt的数据对这个模型做评估。

2.3 论文提出的方法


2.3.1 Exemplar Replay


存储样本的数目和对应 item 出现的频率成比例。假设一共存储 N 个样本,在 t 轮对于 item 

 存储的样本 的数量是:

Et-1是上一轮次保存的样本,Dt是新到来的样本,因此在轮次 t 不同 item 对应被选择的样本大小可以被编码为一个向量 :Mt = [,,...]。(可以把It数量理解成总的类别数量)

这样我们就可以根据算法 1的过程,用基于到item的平均特征向量的距离选择样本,总共选取N个样本:


每一个周期到了,我们都要利用新到来的样本Dt和之前保留的样本Et-1来构建对应item的examplars,也就是说Et在每个周期中不断的被更新。

上面这种选取对应item的 examplars的方式是herding technique,基于与该项目的平均特征向量之间的距离,以迭代方式选择该项目的最具代表性的序列,也就是对每个多分类中的类别,选出个样本序列。

在 circle t,被重演的样本集是  ,直到上一 circle 的 item 集合是  ,本文提出的知识蒸馏损失为:

其中是生成的的概率分布,是生成的分布,这个KD损失计算的两个周期的模型生成的概率分布的差异,这个想法是惩罚在更新周期中对于item预测的更改。

另一部分损失为交叉熵损失:

总的损失函数为:

当旧 item 数量与新 item 数量比例提高时,即意味着新的 circle 中 少数新样本需要被学习,这时对应 

 增加,蒸馏损失增加,让模型更趋近于老知识。当旧item与新item数量比例降低时,意味着新知识更关键,所以降低,蒸馏损失也降低。

算法描述如下:

三、实验结果



你可能感兴趣的:(推荐系统论文阅读(二十四)-基于回话推荐的知识蒸馏模型)