session-based recommendation的两个模型对比NARM, STAMP

本文对比了两种session-based推荐模型NARM和STAMP。NARM利用GRU进行全局和局部编码,而STAMP直接使用商品embedding计算短期和长期记忆。两者都采用注意力机制,但STAMP不依赖RNN,表明RNN在session内容处理中可被替代。
摘要由CSDN通过智能技术生成

介绍

现在有很多地方都需要推荐系统,比如网购平台、音乐平台、影视平台等等。一个应用如果能更准确地进行内容推送,那么自然用户的黏性会更强,有更强的竞争力。
但是现在出现了一个问题,我们以往做的一些工作都是基于用户历史记录进行的推荐,现在由于隐私政策的问题,有时候我们不能得到用户的长历史,我们能拿到手的只有用户当前在网页/app里面的行为,这个短历史我们就叫session。
举个例子,当你下载淘宝的软件之后,在没有登陆的情况下搜索你想要的东西,这个时候淘宝对你一无所知。你先点击了adidas的一件上衣,又点击了nike的一条裤子,然后又点击了李宁的一件上衣,这三个click就组成了你当前的一个session。我们要做的就是基于这三个点击对你下次想点击的东西进行预测,通过这个模型,我们可能会给你推荐安踏的衣服,或者adidas的另一版型的衣服。
总而言之,这个session-based方法可以在不侵犯用户隐私的情况下仍然进行有一定质量的推荐,值得我们进行研究。

模型介绍

从大体上来看,session-based recommendationo有两种分支,一种是把session看作一个sequence,利用诸如处理流数据的RNN模型得到隐层向量,并基于此搭建预测模型。

另一种则是基于图神经网络GNN的方法,通过构建有向图,利用GNN的方法学习表达向量,基于此进行预测。

今天要介绍的两个都是属于第一类的模型

NARM

每一个商品实际上都可以用一个id进行标识,这个和NLP任务里面把每一个单词都转化成id的思路是一样的。那么类似的,我们也可以有每一个商品的embedding,以此为基础把数据喂到RNN里面。

这个模型其实很简单,编码上分为两部分,Global encoder 和 Local Encoder。

global encoder

通过我们上面提到的与NLP任务类似的地方,我们这里为了方便理解可以把这个session看作一句话的等价,我们先通过word2id把商品转化为了id,得到了他们的embedding,然后把他们送进RNN里面。

在这篇文章里,作者使用的是GRU。

说起来fancy,但是这个global encoder得到的第一部分编码实际上就是RNN最后的隐层向量而已。
c t g = h t c_t^g=h_t ctg=ht

local encoder

这个地方使用到了attention。

对于session里面的每一个商品,他的attention权重是:
α t j = v T σ ( A 1 h t + A 2 h j ) \alpha_{tj} = v^T\sigma(A_1h_t + A_2h_j) αtj=vTσ(A1ht+A2hj)
这里 A 1 , A 2 , v A_1,A_2,v A1,A2,v都是参数, h t h_t ht表示最后一个隐层,实际上就是刚才提的global encoder得到的东西,而 h j h_j

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值