前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >"轻量"且"优秀"的序列推荐模型

"轻量"且"优秀"的序列推荐模型

作者头像
张小磊
发布2021-09-02 15:23:52
1.1K0
发布2021-09-02 15:23:52
举报

self-attention已经广泛使用在序列化推荐中,但是存在复杂度较高且过度参数化的问题,并且由于隐式位置编码的缘故,会使模型在对items之间的关系错误建模。这篇来自微软的论文《Lighter and Better: Low-Rank Decomposed Self-Attention Networks for Next-Item Recommendation》提出了LightSans去解决这些问题。该模型把用户历史行为序列映射成潜在的兴趣,通过这种方式在线性时间和空间“限制”了用户历史行为序列的长度,缓解了过度参数化的问题。

LightSANs

LightSANs假设用户历史上有过的交互的items可以被分类为不超过k类(k是一个很小的定值),基于这个假设,用户历史行为的items都需要和k个潜在的兴趣做交互(论文里叫item-to-interest),避免了item之间的交互,使得模型参数变少。然后该模型还提出了decoupled位置编码去描述位置直接的相关性。关于LightSANs的细节见下图:

Item-to-Interest Aggregation:

有了每个items可以归类为k个兴趣中的一个的假设,我们就可以用一个可学习的function,把n*d的序列映射成k*d,如下公式所示:

通过这种方式把item集合聚成k个向量表达,有效的降低了attention矩阵的大小。因为兴趣更能表达用户的倾向,attention的weights就能更精确的描述不常见的items。

Item-to-Interest Interaction:

简单来说,就是把self-attention中的K和V替换成我们上一步聚合的k个兴趣,如下式所示:

当然,这里也用了multi-head,i表示head ID。

Decoupled Position Encoding:

传统的position embedding,就是每个位置的item embedding直接加上position embedding,然后描述两个位置item的关系如下式:

展开就是:

论文提到上式的最后两项并没有那么合理,描述item到position的关系是有问题的,限制了模型的挖掘序列关系的能力.所以该文提出了下式对序列之间位置的关系进行编码:

这样做序列位置之间的关系就被显式的指定,避免了对item-position直接关系的编码,提高了模型的表达能力.loss函数也很简单,就是用的交叉熵损失.

实验

从实验上看,该模型不仅效果好,性能还和彪悍,同时也节约内存.

参考文献

1、Lighter and Better: Low-Rank Decomposed Self-Attention Networks for Next-Item Recommendation

https://www.microsoft.com/en-us/research/uploads/prod/2021/05/LighterandBetter_Low-RankDecomposedSelf-AttentionNetworksforNext-ItemRecommendation.pdf

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与推荐算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档