MovieMat:如何利用场景数据进行基于场景的电影推荐
【51CTO.com原创稿件】推荐系统是发展了数十年的技术体系,被广泛应用于电商、新闻APP、流媒体等领域。推荐系统的技术脉络多种多样,从主流的准确率等技术指标的提升和优化,到近年来流行的基于公平性的推荐,吸引了成千上万的研究者和从业者。
推荐系统的一个非常重要的子领域是基于场景的推荐。基于场景的推荐,顾名思义,就是利用用户所在场景的信息辅助给用户推荐感兴趣的物品。一些著名的企业,比如 Burger King 就在自己的服务中增加了基于场景的推荐。
基于场景的推荐的技术有许多, 然而并没有形成一个主要的演化脉络。比较著名的基于场景的推荐思路包括线性模型和张量分解。然而线性模型不利于处理复杂的关系,而张量分解本身又消耗大量的存储空间,都存在着许多可以优化之处。
在2021 年的国际学术会议 ICISCAE 2021,有学者发表了一篇题为 MatMat: Matrix Factorization by Matrix Fitting 的论文。提出了利用矩阵拟合的方式近似求解包含场景信息的评分矩阵。
首先,作者回顾了基于矩阵分解的推荐系统的框架:
我们可以观察到,矩阵分解的本质其实就是用向量的点乘去拟合标量值。如果我们将矩阵分解的算法框架进行推广,用矩阵的乘法代替向量的点乘,用矩阵代替标量进行拟合。我们将得到 MatMat 框架:
矩阵的每个元素都是矩阵,矩阵元素的对角线对应原始矩阵分解框架的标量值,而矩阵对角线之外的元素是场景信息。
基于场景的推荐系统的研究难点之一是如何获得开放的数据集合。由于场景信息本身难以获取,可用的数据集合就显得尤为珍贵。难能可贵的是国外的高校公开了一个名为 LDOS-CoMoDa 的数据集合,包含了大量的观看电影的场景信息,使得基于场景的推荐系统的研究成为可能。
在 2021 年 12 月举办的国际学术会议 ICCC 上,有学者利用 LDOS-CoMoDa 数据集合和 MatMat 算法框架,提出了名为 MovieMat 和 MovieMat+ 的电影推荐算法。MovieMat 算法设定的用户评分矩阵如下:
而 MovieMat+ 算法设定的用户评分矩阵如下:
作者随后利用 LDOS-CoMoDa 数据集合做实验,对比了 MovieMat v.s 经典矩阵分解,和 MovieMat+ v.s 经典矩阵分解的结果。实验比较了 MAE 和 Degree of Matthew Effect 两个指标。其中 MAE 指代 Mean Absolute Error,用来衡量评分预测的准确性; 而 Degree of Matthew Effect 用来衡量算法的公平性。
实验的结果如下:
根据观察, 我们发现 MovieMat 和 MovieMat+ 在测评数据上的表现都要优于经典矩阵分解的模型,最优 MAE 在 0.6 - 0.7 的水平。
MovieMat 和 MovieMat+ 都是依托于 MatMat 框架的电影推荐系统。MovieMat 和 MovieMat+ 表现都优于没有场景信息的推荐系统,是非常有前景的技术。在下一代的电影院中,如果电影院可以利用传感器和人脸识别算法记录下用户的场景信息,将会有效提升电影院产业的利润,而 MovieMat 和 MovieMat+ 将在这一波的技术革新中大方异彩。
参考文献地址:
1. MatMat: Matrix Factorization by Matrix Fitting
2. MovieMat: Context-aware Movie Recommendation with Matrix Factorization by Matrix Fitting
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】
相关文章
- linux系统开mc服务器
- 红队技术-Cobaltstrike之Linux上线
- 权限维持-Linux后门
- 万万没想到,go的数据库操作,也能像php一样溜了
- Typora+PicGo+GitHub实现图片快速上传
- Linux计划任务服务程序
- 2022 如何在 GitHub 上搭建个人网站(github.io)
- 虚拟机安装linux无法访问外网解决办法
- 用过 mongodb 吧, 这三个大坑踩过吗?
- 教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了
- MongoDB 在评论中台的实践
- 使用mongodb作为Quartz.Net下的JobStore实现底层的持久化机制
- mongodb之使用explain和hint性能分析和优化
- mongodb 3.x 之实用新功能窥看[2] ——使用$lookup做多表关联处理
- mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理
- 双十一来了,别让你的mongodb宕机了
- GO语言开发环境搭建笔记
- PHP判断网络连通
- 开启phpMyAdmin的远程登录
- PHP_cURL初始化和执行方法