文章简介: 该文提出了利用RNN建模一个session间用户的点击序列。该方法完全利用用户在当前session里的反馈去做推荐,相比原依赖用户历史记录的推荐能在解决冷启动问题上更为简洁有效。
- 模型
文中提出的模型如下图所示:
Input层是对所有item做的one-hot encoding, 接下来是一层embedding层,再往下是一层或多层RNN模型,再往下是一个feedforward层,然后接到output,是一个维数等于item数量的向量,其中各元素为各item的打分。
文中选用的loss function有两种:
一种是BPR: Bayesian Personalized Ranking, 是一种pairwise ranking loss.
其中
NS
是采样规模,
rs,k^
是当前时刻在item
k
上的打分,
另一种是TOP1: 这是作者自改进的一个ranking loss。基于一个概念:relative rank of an item,在此作者定义两item的相对rank差为
- 优化*
session-parallel mini-batches: 在使用该模型的过程中,由于session长短变化大,也不宜对session做截断,因此文中在做mini-batch训练过程中做了一定的调整,使得每个batch都尽可能满。具体做法为:首先,在构建mini-batch的过程中,在一个session完结后,将另一个session拼接在该session之后,按此思想去确定input和output;其次,上次做法会带来的问题是,对于每处理到一个新的session,模型的隐层状态需要重置。