《session-based recommendations with recurrent neural networks》ICLR 2016 阅读笔记

文章简介: 该文提出了利用RNN建模一个session间用户的点击序列。该方法完全利用用户在当前session里的反馈去做推荐,相比原依赖用户历史记录的推荐能在解决冷启动问题上更为简洁有效。

  • 模型

文中提出的模型如下图所示:
Input层是对所有item做的one-hot encoding, 接下来是一层embedding层,再往下是一层或多层RNN模型,再往下是一个feedforward层,然后接到output,是一个维数等于item数量的向量,其中各元素为各item的打分。

这里写图片描述

文中选用的loss function有两种:
一种是BPR: Bayesian Personalized Ranking, 是一种pairwise ranking loss.

Ls=1NSj=1Nslog(σ(r^s,ir^s,j))

其中 NS 是采样规模, rs,k^ 是当前时刻在item k 上的打分,i是期望item,即在当前session下一时刻的目标item,而 j 是负样本。

另一种是TOP1: 这是作者自改进的一个ranking loss。基于一个概念:relative rank of an item,在此作者定义两item的相对rank差为I(r^s,j>r^s,i), 该函数随两item间分值差距的增加而增大。作者使用sigmoid函数来近似 I{.} 。最终的loss function如下所式,增加了对负样本的一个正则项,目的是使负样本的分值尽可能接近0,以防止正负样本间多重反馈导致大家分值集体偏高的情形。

Ls=1NSj=1Nsσ(r^s,ir^s,j)+σ(r^2s,j)

  • 优化*
    session-parallel mini-batches: 在使用该模型的过程中,由于session长短变化大,也不宜对session做截断,因此文中在做mini-batch训练过程中做了一定的调整,使得每个batch都尽可能满。具体做法为:首先,在构建mini-batch的过程中,在一个session完结后,将另一个session拼接在该session之后,按此思想去确定input和output;其次,上次做法会带来的问题是,对于每处理到一个新的session,模型的隐层状态需要重置。

这里写图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值