当前位置: 首页 > news >正文

机器学习-推荐系统(下)

基于内容的过滤算法:

在之前分析的协同过滤算法中,讨论到如何进行推荐时,分为了两种推荐模式:用户协同与项目协同。在这两种模式中,它们的共同点是都更加关注用户的行为,而并非每一个项目的固有特性

这样带来的弊端有:对于没有评分或其他信息的项目,我们无法获得相关的用户行为数据,也就无法进行推荐,即冷启动问题;同时,为了保证推荐的可行性,我们需要拥有大量的用户行为数据,即需要拥有足够多的用户行为才能够生成可靠的模式。

因此引入了基于内容的过滤算法,在此算法中,我们会更加关注项目的固有特性,即根据用户与项目的特征信息进行推荐。如果一个用户有一系列的喜欢和感兴趣的项目,则会给该用户推荐与其喜欢和感兴趣的项目相似的其他项目,所以称之为基于内容的过滤。

如上图所示,假设此时已经拥有了部分用户与电影特征数据,分别用x_{u}^{j}x_{i}^{i}来表示,这两个向量不一定是同维的,为了更加精准的提炼出用户偏好,x_{u}^{j}可能会很大。虽然原始的特征向量也可以反映出特征信息,但这些信息是较为表层的,可能没有考虑不同特征之间的复杂交互关系以及它们的相对重要性

综上,我们需要将原始的特征信息输入神经网络进行处理。由于此时的推荐只依赖于用户与电影的特征信息,我们可以将预测评分表示为:

y^{(i,j)}=v_{u}^{j}\cdot v_{i}^{i}

如果输出是二元变量形式,则可以表示为:

y^{(i,j)}=g(v_{u}^{j}\cdot v_{i}^{i})

因为要进行点积,式中的两个向量必须是同维的,则可以构建出用户网络与项目网络。需要注意的是:用户网络与项目网络的输出层单元数必须保持一致

为了得到神经网络中的参数,构建如下成本函数:

J=\sum_{r(i,j)=1}^{}(v_{u}^{j}\cdot v_{i}^{i}-y^{(i,j)})^{2}

因为对于单个用户进行推荐时,考虑的是项目之间的相似性,而通过上图我们可以得到项目i的特征向量v_{i}^{i},则项目i与项目k之间的相似度可表示为:

\sum_{l=1}^{n}(v_{l}^{i}-v_{l}^{k})^{2}

由于项目的属性一般是很稳定的,如类别、年份、国家等等,因此对于所涉及的项目,我们可以预先通过项目网络计算得出一系列的特征向量,并且计算出项目之间的相似度,便于后续的推荐。

两种过滤算法比较:

协同过滤基于内容过滤
核心思想根据用户过去喜欢的项目特征,推荐特征相似的其他项目。找到与用户偏好相似的其他用户,然后推荐这些相似用户喜欢、但目标用户还未接触过的项目。
优点不需要内容特征,可能可以推荐出新领域项目无冷启动问题,且可解释性强
缺点冷启动问题、要求较多的用户行为数据较为依赖内容特征、一定程度上可能缺乏多样化

大目录推荐:

大目录推荐中项目数量很多,此时对于每一个用户及每一个项目都进行上图中的计算步骤,在计算上是很难实现的,因此实际的步骤大致分类两步:

检索:

对于一个用户,可能目前已经有了一些用户行为,因此我们可以根据这些行为来提供一个可能的推荐列表。以电影推荐为例,该列表中可能包括:与用户高评分电影相似度较高的其他电影、用户喜欢的电影类别中均分top10电影、用户喜欢的电影导演执导的电影中均分top10电影等等。在这个检索过程中,就会利用到前面提到的项目特征向量以及项目之间的相似度。

此列表中应尽可能地检索出较多的用户可能感兴趣的项目,即使列表中可能包含一些用户无感的内容。

排序:

得到了前面的检索列表后,我们则可以结合用户的特征信息来进一步的对所有项目进行排序,预测其得分,从而实现精准推荐。

该过程中可以直接利用之间计算得到的项目特征,但用户特征不能直接沿用。因为用户的行为是动态的,我们需要捕捉用户实时/近期的行为特征,以保证推荐的有效性。

http://www.dtcms.com/a/478287.html

相关文章:

  • 「机器学习笔记13」无监督学习全面解析:从聚类算法到Python实战
  • 计算机视觉(opencv)——基于MediaPipe与机器学习的手势识别系统
  • 建设网站的请示如何做漂亮的网站
  • 【C++ 学习】单词统计器:从 “代码乱炖” 到 “清晰可品” 的复习笔记
  • STL分解:从定义到实战
  • 自己写算法(九)网页数字动画函数——东方仙盟化神期
  • 郑州市科协网站小程序可以用手机网站吗
  • 创建一个 Vue3项目
  • 使用远程模拟器开发调试安卓APP
  • Java外功精要(3)——Spring配置文件和mybatis
  • 深圳网站建设服务商万创网为女足世界杯创建一个网站
  • Vmware Workstation虚拟机不能拖动复制文件到宿主机的Bug原因探究过程
  • 嵌入式Linux开发环境学习(一)
  • 三种解法(数组、栈、快慢指针)全面解析——力扣234.回文链表全解析
  • linux 系统压力测试工具stress使用
  • 铜川做网站电话西安模板网站建设
  • 基于单片机大棚浇水灌溉控制系统Proteus仿真(含全部资料)
  • SQL Server 2019实验 │ 数据库和表的创建、修改与删除
  • 服装制造企业痛点解决方案:EFISH-SBC-RK3588 预测性维护方案
  • 怎么利用自媒体做网站优化招聘网站制作公司
  • 每天五分钟深度学习:基于dropout(随机失活)解决神经网络过拟合
  • 自然语言处理(NLP)之分词
  • 双向数据绑定是什么
  • 全链路智能运维中的业务交易粒度资源消耗追踪技术
  • 开源程序网站百度识图在线网页版
  • 【LABVIEW软件】NI-VISA模块安装教程
  • 【完整源码+数据集+部署教程】害虫识别与分类图像分割系统源码和数据集:改进yolo11-MSBlock
  • 建设部网站公告注册成功怎样自己创造网站
  • 婚纱摄影网站毕业设计php汽车网站建设策划方案
  • mysql实战