协同推荐系统简介

【数据挖掘】推荐系统(一):协同过滤 推荐系统是一种计算机程序或算法,用于预测用户对特定项目的兴趣度,并根据这些预测向用户提供个性化推荐。这种系统通常使用大量数据来分析用户的行为和偏好,以找出潜在的喜好和兴趣。推荐系统可以应用于电子商务、社交媒体、影视娱乐等领域,帮助提高用户体验、增加销售和粘性。 阅读详情
协同推荐系统简介


最近几年搜索引擎理念可谓渗入人心,对于互联网产品设计人员来说,张口必言搜索。同事基于搜索技术的各种产品也在Web2.0的浪潮下如雨后春笋,刷刷往 外冒。在这些林林总总的产品里面,几乎都能见到“ tag , 相关新闻, 相似产品 ” 类推荐链接的踪影。稍加留意这些产品的实现就可以发现,大多还是基于关键词的搜索机制实现的。很显然基于关键词技术的相关推荐是最直观的,似乎也是最有效 的一种实现方式,如同机枪中的AK-47,那他冲锋陷阵总是屡试不爽。

对于文字类产品的推荐,基于关键词的实现方式,目前还是主流;但在电子商务,智能阅读推荐,商务搜索方面单纯的关键字相关性实现机制还不那么让人满意,这也就有了协同推荐过滤系统。Collaborative filtering 。

所谓协同推荐,很显然弥补了单纯依赖关键词相关性的不足,把获取相关性数据的视角放大到数据从产生到消费的各个环节。

有2种最基础类型的协同推荐系统:

1 基于当前活跃用户 和 上一个用户的相似性 来进行分析(一般是计算用户购买或者感兴趣的商品来进行);侧重于用户
2 基于当前用户选择(或感兴趣)的商品 和 上一个用户感兴趣的商品的相似性来进行分析;

这也就是大家所熟知的user-based 和item-based协同推荐。

根据实现机制物理载体划分,以上两类协同推荐系统可以分为:内存型 和 模式型的协同推荐。一般内存型的都比较直观,适合于小型的数据集合,而模式型的一般都是利用 机器学习的方法,适用于大规模的数据分析,也可以称之为离线分析。模式型的是我比较关心的,因为做基于SEO的日志分析 ,比较适合。


我们在进行协同分析的时候,要考虑协同的意义。一般来说协同就是指多个用户或多个数据项的交叉作用。如果数据项较多的情况下,如何定义数据项的关系就是个重要问题了。

下面说一下协同系统的设计要素吧:

1 数据项 Item
2 项集合 ItemCollection
3 数据项的关系权重 DirectedEdge
4 数据项在数据集合中的存储方式









具体的算法实现过程,可以参考:Beyond Search 的推荐系统:关联规则(2)。我这里摘录如下:

Apriori 是一种广度优先算法,通过多次扫描数据库来获取支持度大于最小支持度的频繁项集。它的理论基础是频繁项集的两个单调性原则:频繁项集的任一子集一定是频繁 的;非频繁项集的任一超集一定是非频繁的。晦涩的理论我这里就不多写了,有兴趣的可以去看论文。我把里面的例子给翻译一下,图文并茂,简明易懂。
某数据库 DB 里有 4 条事务记录,取最小支持度(min support)为 0.5,则计算频繁项集的过程如下:

TIDItems
100A, C, D
200B, C, E
300A, B, C, E
400B, E
扫描DB
ItemsetSupport
{A}2 (0.5)
{B}3 (0.75)
{C}3 (0.75)
{D}1 (0.25)
{E}3 (0.75)
取满足
最小支持度
项集
ItemsetSupport
{A}2
{B}3
{C}3
{E}3
Itemset
{A, B}
{A, C}
{A, E}
{B, C}
{B, E}
{C, E}
扫描DB
ItemsetSupport
{A, B}1 (0.25)
{A, C}2 (0.5)
{A, E}1 (0.25)
{B, C}2 (0.5)
{B, E}3 (0.75)
{C, E}2 (0.5)
取满足
最小支持度
项集
ItemsetSupport
{A, C}2
{B, C}2
{B, E}3
{C, E}2
Itemset
{A, B, C}
{A, B, E}
{A, C, E}
{B, C, E}
扫描DB
ItemsetSupport
{A, B, C}1 (0.25)
{A, B, E}1 (0.25)
{A, C, E}1 (0.35)
{B, C, E}2 (0.5)
取满足
最小支持度
项集
ItemsetSupport
{B, C, E}2 (0.5)

如上可以看出,在海量数据的情况下,Apriori 算法的运算过程有 2 个问题:

  1. 需要多次扫描数据库,时间成本很高;
  2. 运算过程中需要产生大量的候选集,空间成本也非常高。

针对 Apriori 算法所做的改进也基本上是围绕着解决这两个问题进行的,如在扫描DB前首先进行以便事务合并和压缩,数据分区或抽样等。

Weka 里有 Apriori 算法的 Java 实现,非常值得一看。


推荐阅读:协同过滤(Collaborative Filtering)












 


Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1706522


告别LM2596!用LM5175打造400W自动升降压数控电源(附完整电路图与代码) 本文详细介绍了如何利用LM5175芯片设计400W自动升降压数控电源,替代传统的LM2596方案。通过四开关Buck-Boost拓扑结构,LM5175实现了高达98%的转换效率和400W大功率输出,支持无缝升降压切换。文章涵盖芯片选型、电路设计、PCB布局及STM32数控实现,为工程师提供完整的实践指南。 阅读详情

相关推荐

防反接电路、防倒灌电路、过流保护和ESP相关知识

1.开关电源给负载供电, 如果负载是电池或者其他感性负载(比如像 电机 有线圈 当电源突然断掉时 会产生感应电动势)时, 当220V断掉的时候,可能会出现 电池反向给开关电源 的 输出端 供电,导致开关电源的一些莫名损坏。2.系统在不同的 输出电压 之间 切换时,会存在高压电压倒灌到低压电压源中。例如:系统 有两个电源供电 比如 一个电池 一个 充电器 充电器的电压一般会高于电池 如果没有防倒灌的电路 可能充电器的电压会直接倒灌给电池 造成电池的损坏。

a_black_的博客 1万+

一文系统搞懂协同推荐算法(一)

推荐系统的重要性已经不需要过多的强调了,随处一搜索就能看到各领域的大佬告诉你推荐系统的构建方法,面试的时候不讲几个协同都不好意思说自己懂算法,各个资料都会对协同的每一个细节详细描述,不知大家看完之后有没有一个感触:各个知识点都了解了,就是串不起了,而且也多少会有些疑惑,就这么简单?被全宇宙的人推崇的推荐算法就是简单的几个表的来回计算吗?那平时我们应用的机器学习的各种算法都去哪里了? 1、协同推荐...

livan1234的博客 5192

Adobe Acrobat Pro(Adobe PDF) - 使用技巧

Adobe Acrobat Pro为Adobe出品的PDF查看和编辑软件,下文简称Adobe PDF,该软件功能强大,拥有查看PDF、编辑PDF、打印PDF、导出PDF、合并文件、组织页面、文本标注、注释、动作向导、等功能。本文介绍Adobe PDF的一些使用技巧,最后介绍软件设置。

NSJim的博客 4万+

基于协同过滤算法的图书推荐系统(源码+定制+开发)图书推荐平台优化、协同过滤算法图书推荐、智能图书推荐系统、图书推荐系统开发、智能推荐算法实现、图书推荐平台优化

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为优快云特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生完成毕业项目和技术提升。 技术范围: 我熟悉的技术领域涵盖SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等方

程序员阿龙的博客 2196

八股文(Unity篇)

在Unity中,协程是通过迭代器实现的,即将协程函数的返回值类型定义为IEnumerator,然后使用yield语句暂停协程的执行,并在需要恢复执行时通过MoveNext()方法继续执行。Unity中的协程是一种能够在主函数中暂停和恢复执行的功能,它使用了C#的迭代器。Resources方式:Resources方式:使用Resources.Load方法加载Resources文件夹下的资源,这种方式的好处是简单易用,无需手动打包资源,但是会导致应用包变得较大,加载速度较慢,不适合较大的资源文件。

m0_50816320的博客 1万+

【语音识别入门】特征提取(Python完整代码)

给定一段音频,请提取12维MFCC特征和23维FBank,阅读代码预加重、分帧、加窗部分,完善作业代码中FBank特征提取和MFCC特征提取部分,并给出最终的FBank特征和MFCC特征,存储在纯文本中,用默认的配置参数,无需进行修改。抽样时频率不够高,抽样出来的点既代表了信号中的低频信号的样本值,也同时代表高频信号样本值,在信号重建的时候,高频信号被低频信号代替,两种波形完全重叠在一起,形成严重失真。DFT得到了每个频带上信号的能量,但是人耳对频率的感知不是等间隔的,近似于对数函数。

weixin_51293984的博客 1万+

一文系统搞懂协同推荐算法(二)

笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据助跑每一个人,欢迎直筒们关注我的公众号,大家一起讨论数据中的那些有趣的事情。 我的公众号为:livandata 不知大家对推荐算法有没有一个系统的了解,推荐本身的逻辑很简单,就是需要找到用户喜...

livan1234的博客 2051

上海计算机学会2020年5月月赛C++乙组T2经济普查

中国正在以前所未有的力度推进脱贫攻坚,国家计划在2020年使得在现行标准下的贫困人口实现全面脱贫,为此,需要对居民的经济状况进行普查。 题目描述 给定一个正整数n,表示人口数量。一开始,每个居民拥有的财产记为a1​,a2​,⋯,an​,财产可能发生两种变化: 一种来源于个体,由某个居民的经济活动而产生。在某个时刻,某个居民的财产会直接变成某个数值,可能升高也可能降低。 一种来源于政策,在某个时刻,国家会对财产低于某个标准线全部的居民,实施政策支持,使得他们的财产全部正好到达标准线。 给定这些变

长春高老师编程 911
上一篇: “Sun科技日2007”--开源创造未来
下一篇: 巧遇红楼梦中人
techweb
博客等级 码龄19年 226粉丝 3842原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值