首页 > 编程语言 >基础推荐算法概述

基础推荐算法概述

时间:2023-07-10 22:36:01浏览次数:36  
标签:基于 推荐 用户 商品 算法 概述 显式 方法

推荐系统可以解决什么问题?

 

推荐系统的性能可以直接或者间接的影响商品交易系统的成交额,也会影响到用户的购物体验。在实际场景中,用户自己往往也不完全知道自己想要什么,例如,有某银行的积分,想要在其app上兑换一些商品,那么我该兑换什么商品呢?某银行与很多汽车厂商合作,我想通过该银行购买汽车,我该购买什么汽车,彩适合我并且价格合适呢?这些问题如今推荐系统可以解决,它努力为用户推荐买得起、个性化、匹配度高的商品。

协同过滤方法、冷启动问题

我们常常会看到购物网站会显式的弹出评分收集窗口,因为大多数面客的系统,采用了协同过滤或者其改进方法提供个性化商品推荐。协调过滤方法区分基于用户的推荐和基于物品的推荐,它假定了用户过去有相同的偏好,那么将来他也会有相似的偏好。其优点是不需要知道物品的信息,因而减轻了计算机的负担。这种方法强依赖于用户显式的或者隐式的反馈,例如让用户从1到10打分是显式的,只要购买了商品,就被认为是正向评分,是隐式的。但是,在数据稀疏时,也就是有效评分非常稀少的情况下,就很难做到准确推荐了。这也是人们常说的冷启动问题。

基于内容的推荐与基于知识的推荐

基于内容的推荐根据用户的喜好直接推荐商品。这种推荐需要评估用户还没有看到的商品与当前用户过去的喜好的商品的相似程度。需要对商品特征的构建和文本描述。但是,当用户购买房子、汽车时并不像购买衣服那样频繁,评分显而易见是稀疏的。由于内容的时效性,比如用户在五年前对一套房子的描述显然也不合适现在的,因此基于内容的推荐并不适用。基于知识的推荐根据用户指定的需求,设法给出解决方法。通过一组变量域、约束条件、再利用知识库就能构建一个基于知识的推荐系统。

混合推荐

可以看到,协同过滤利用用户模型和群体数据的信息,基于内容的方法以产品特征和文本描述,基于知识的算法利用显式知识领域模型进行推理。三种方法以及其油壶方法都有各自的优缺嗲和适用场景,混合推荐可以融合三者的优点,处理多种类型的输入数据。目前技术方案有流水线方案,即一个推荐系统的输出是下一个推荐系统的输入。并形式方案,即不同的推荐系统分别长生遇见,随后被组合到最终的推荐集合。整体式方案,即将集中方案整合到一个算法中实现。

总结

不管是协同过滤推荐,还是基于内容的推荐和基于知识的推荐,以及更高级的改进方法,都致力于帮助用户找到更感兴趣的,更喜欢的和更准确的商品。

标签:基于,推荐,用户,商品,算法,概述,显式,方法
From: https://www.cnblogs.com/songwmeta/p/17542529.html

相关文章

  • 2023.7.10值得推荐的一款服务器空间
    已经体验一个月咯,非常不错的免费资源,适合大家去了解了解~!他们家的免费空间,免费服务器,非常稳定,非常靠谱,值得拥有,价格厚道~!免备案服务,域名管理等等服务,应有尽有,2023年你值得了解,他们家的免费云服务器还是独立IP的哦,非常非常好,非常NICE~! ......
  • 算法练习-day17
    二叉树110.平衡二叉树题意:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例:思路:本题我们可以自下而上判断二叉树是否为平衡二叉树,以上图为示例,我们先判断15是不是平衡二叉树,很明显......
  • 【数据结构与算法】队列算法题
    TS实现队列interfaceIQueue<T>{//入队enqueue(item:T):void;//出队dequeue():T|undefined;//队首peek():T|undefined;//是否为空isEmpty():boolean;//大小size():number;}classArrayQueue<T>implementsIQueue<T>{......
  • 【数据结构与算法】栈相关算法题(长期更新)
    TS实现栈interfaceIStack<T>{push(e:T):void;pop():T|undefined;peek():T;isEmpyt():boolean;size():number;}//implements:实现接口,一个类可以实现多个接口classArrayStack<T>implementsIStack<T>{privatedata:T[]=[];//pri......
  • 「学习笔记」KMP 算法
    前置知识前缀是指从串首开始到某个位置\(i\)结束的一个特殊子串.真前缀指除了\(S\)本身的\(S\)的前缀.举例来说,字符串abcabeda的所有前缀为{a,ab,abc,abca,abcab,abcabe,abcabed,abcabeda},而它的真前缀为{a,ab,abc,abca,abcab,abcabe,abcabed}.......
  • 算法细节系列(1):Java swap
    算法细节系列(1):Javaswap问题在C++中,swap算法可以用指针来实现,因此在Java中,如果采用如下代码来对两个数字进行交换时,也不会影响两个对象的值。publicclassTestSwap{publicstaticvoidmain(String[]args){inta=2;intb=3;System.out.prin......
  • 文心一言 VS 讯飞星火 VS chatgpt (57)-- 算法导论6.4 1题
    文心一言VS讯飞星火VSchatgpt(57)--算法导论6.41题一、参照图6-4的方法,说明HEAPSORT在数组A=(5,13,2,25,7,17,20,8,4)上的操作过程。文心一言:下面是HEAPSORT在数组A=(5,13,2,25,7,17,20,8,4)上的操作过程:调用BUILD-MAX-HEAP函数,将数组A转换为最大堆。将堆顶元......
  • c#实现SharedMatting抠图算法
    内容简介      将AlphaMatting抠图算法由c++版本移植至c#环境。主要采用OpenCV的C#版本Emgu取代c++支撑的OpenCV。 参考资料http://www.inf.ufrgs.br/~eslgastal/SharedMatting/这个网页是算法的论文介绍页,可以从该网页下载到论文原文以及测试用图以及linux下的De......
  • 图解算法数据结构
    算法复杂度1.算法复杂度旨在输入数据量N的情况下,算法的时间和空间使用情况,体现算法运行使用的时间和空间随数据大小N而增大的速度。 算法复杂度主要可以从时间,空间两个角度评价:时间:假设各操作的运行时间为固定常数,统计算法运行的计算操作的数量,以代表算法运行所需时间......
  • 使用加密算法时报错:ModuleNotFoundError: No module named ‘Crypto‘
    解决办法:安装Crypto模块,执行 pipinstallCrypto ,安装成功后,再执行命令,还是报上面的错误第一步:在python3(或者python虚拟环境)目录下的/Lib/site-packages/目录下找到crypto、crypto-1.4.1.dist-info目录,将crypto首字母改为大写,即修改名称为Crypto、Crypto-1.4.1.d......