【ccf2021训练赛】图书推荐算法(SASRec序列推荐模型)
内容总结
会话推荐是指,对于一个用户的点击序列(即session),预测下一个要点击的物品。即输入所有的物品V={v1,v2,…,vm} ,在给定某个session为s=[v1,v2,…,vn]的用户点击序列,预测下一个要点击的物品vn+1。
关于序列推荐中的子任务session-based recommend有很多模型,在session推荐中,交互的物品偏少,先有提出基于RNN的建模做session推荐,即GRU4Rec模型,然后为了解决RNN的毛病(长距离依赖问题,不能并行训练),提出本文提到的SASRec模型。第一点是基于注意力机制的SASRec模型的算法讲解,接着五点是对常见的推荐算法(序列建模)做简要的总结,第七点是2021年ccf图书推荐赛题的top2方案解读。
SASRec(召回)提出基于自注意力机制的序列推荐,考虑用户序列行为中不同交互的重要程度。 论文:Self-Attentive Sequential Recommendation. ICDM2018.
SASRec原论文是做在召回阶段:
在给定用户的物品序列来推测下一个最可能出现的物品,如上图所示(其实上面就是transformer中的encoder结构,每个block包括self-attention和FFN部分 ,这里也可以回顾下transformer的架构图如下所示)提取出的expected next item embedding和所有物品embedding进行内积,根据相关性的大小进行排序筛选,得到top k个推荐item。
但再论文实验中,首先针对隐式数据集做一个二分类任务,在测试集中并不是对所有物品预测(太耗时),对每一个正样本,伴随一个100个负样本进行排序。
模型都是和推荐的场景有关,self-attention使得下一次推荐的物品的推荐,是根据前面历史不同权重物品来确定的。而且用户物品交互较少时(数据稀疏),相近时间的历史交互信息就更重要;但是如果像电商这种密集型数据场景,历史行为就更加偏向“多兴趣”。
相关阅读:
从零开发短视频电商 UUID的5个版本和缩短长度
为什么不建议库导出c++接口
SQL性能优化
【Python基础】常用模块学习:sys|os|pytest
【机器学习】主成分分析
antd的upload上传组件,上传成功后清除表单校验——基础积累
钉钉小程序 没有调用该接口的权限
【5G PHY】5G SS/PBCH块介绍(一)
springboot实战(九)之全局异常捕获&异常统一处理
希望所有计算机学生能看到这篇c语言教程
原文地址:https://blog.csdn.net/qq_35812205/article/details/126605698