推荐系统_情景感知推荐系统

03565d6f13d31538a294bd6668cad5bc.png

哈喽,大家好。我是新年不停更的铁打小人silver~~首先祝大家新年快乐,然后就是注意安全和健康,今年过年突发病毒,大家一定要注意身体,尽量少聚会。然后,步入正题,让我们简单的介绍一下情境感知推荐系统吧~

f51c9c15b9645cf85a8fe88ef9fc9133.png

推荐系统中的情景

在传统的推荐系统中,包括我们之前介绍的例子,主要依靠的数据内容是用户和物品之间的交互。就像前面我们说推荐电影,就是通过用户以前看过什么电影,然后来进行新电影的推荐。

那么情景信息是如何体现的呢?其实很简单,我们身边就有很明显的例子。比如我们周末和朋友出去逛,打开美团想找个地方吃饭。这个时候美团会进行什么操作呢?它会考量我们在什么地理位置,在什么日期,以往的消费水平等,来进行一个综合的推荐:

b000c68b976059082c67347796382680.png

可以看到,推荐的结果不简单是考虑距离,但是距离的确是一个重要的情境信息。

从数据方面,我们可以直观的想象到,传统的 user 和 item 之间的交互由一张矩阵来保存数据。但是如果加上情景信息,数据的储存方式肯定就会有所变化。

常见的一个思路就是在原有的方式上面继续增加数据的维度。比如我们加上一个 time 的情境信息,那么数据的储存方式就需要一个 user * item * time 的三维张量来表示,如果增加更懂的情景信息,就需要更高的维度。

那么针对情境信息进行建模主要分为这两方面:1)情境特征有哪些类型的知识内容;2)情境特征是如何随时间进行改变。

关于情境特征的知识类型有:完全可预测;部分可预测;无法预测。关于随时间变化可以分为:静态和动态。我们现在的研究主要专注于“静态,完全可预测”的情境特征,但是其它的组合方式也是值得研究的。

f51c9c15b9645cf85a8fe88ef9fc9133.png

几种结合情境的推荐系统范式

我们先回顾原始的推荐系统模式,首先通过一个 user * item * rating 的数据集来训练推荐系统模型,挖掘这些数据其中的隐藏信息;然后通过训练出来的模型对给定用户进行兴趣预测并完成推荐。

那么在哪一步加入情境信息呢?按照这种分类,我们就可以将这些结合情境信息的推荐系统范式分为以下三类:情境预过滤,情境后过滤,情境建模

1)情境预过滤

在结合了情境信息的数据集上,我们可以表示为 user * item * context * rating 的形式,也就是多了一个 context 的维度。

情境预过滤指的就是,先对数据进行情境过滤。比如是时间情境信息,具体的内容是周内或者周末,那么把周内的数据全部拿出来作为一类,周末的数据拿出来作为一类,分开训练。

这种做法的好处就是,在进行预过滤后,剩下的数据就成了 user * item * rating 的格式,那么以前的现有模型都可以直接借鉴。

但是缺点也很明显,就是过滤后的数据可能会过于狭隘。比如一个人是周六还是周天陪女朋友看电影的区别应该不是很大,但是这种细化的情景过滤就不如稍微泛化一点好,比如只看他周末陪女朋友,而不进一步细化。另一方面细化后也可能导致数据不足。所以在如何泛化情境信息的粒度上也有很多工作。

采用预过滤方法很关键的一点是,要弄清楚情境信息对当前的应用场景是否有帮助,其次就是只利用部分数据会影响推荐结果的广度,这里就需要权衡。

2)情境后过滤

情境后过滤则指的是先无视数据中的情境信息,直接按照现有模型的 user * item * rating 进行训练得到模型。在这里和传统方法一致,但是接下来则会利用情境信息。

在得到推荐模型后,对每个用户进行推荐时再考虑情境信息。例如对用户小明在周末进行电影推荐,先用模型得到一个用户喜欢的电影的预测排名,然后分析小明周末只爱看喜剧,利用这个情境信息将非喜剧的电影排除。

同样的情境后过滤也很关注泛化技术在其中的应用。

3)情境建模

与之前的过滤方式不同,这里的思路生成的是真正的多维推荐函数。也就是说直接生成一个预测模型,同时考虑包含情境在内的数据信息。

一个简单的例子就是 n 维空间的相似性计算。比如之前基于领域的协同过滤,相当于在二维空间中计算用户之间的相似度,或者计算物品之间的相似度。

那么在加入情境信息后,就是在一个更高维的空间中计算用户之间的相似度或者物品之间的相似度。

除此之外,也有人提出利用基于张量因子分解进行建模,思路也是来自于矩阵分解。

f51c9c15b9645cf85a8fe88ef9fc9133.png

总结

现有在情境感知的推荐系统中主要有以下几个方向:

基础概念:即使在“情境”这个概念上,目前也没有统一的定义,那么在推荐系统中,情境到底应该指的是什么呢?

算法:推荐算法该如何设计,使得情境信息可以有利的融入推荐系统中。

评估:如何设计评估,可以有效的展现出情境信息的优点与局限性。

工程化:例如设计通用的架构和方法,能方便情境感知的推荐系统的部署等。

现有我们的工作主要聚焦于算法层面,包括今天的文章也是如此,但是其它的几个方面也是值得深入考虑的。

最后感谢可以阅读到这里的朋友,祝新年快乐哟~~~

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方"AINLP",进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心eac50734f36835b1ed99320b105b2076.png

欢迎加入推荐系统交流群 进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注推荐系统 8006bc73392ffefa2a85804986b2cd4e.png

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。

f6544b18c05512d3880394794f356283.png

阅读至此了,分享、点赞、在看三选一吧?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值