博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
推荐方法的比较
阅读量:4043 次
发布时间:2019-05-24

本文共 1022 字,大约阅读时间需要 3 分钟。

LFM和基于邻域的方法比较

基于邻域的方法(比如UserCF、ItemCF)

1、LFM具有比较好的理论基础,他是一种学习方法,通过优化一个设定的指标建立最优的模型

基于邻域的方法更多是一种基于统计的方法,并没有学习过程。

2、离线计算的空间复杂度 基于邻域的方法需要维护一张离线的相关表。在离线计算相关表的过程中,如果用户/物品数很多,将会占用很大的内存,LFM则节省了大量的内存。

3、 离线计算的时间复杂度 一般LFM的时间复杂度要稍微高于UserCF和ItemCF,因为该**算法需要多次迭代。**但总体上,这两种算法在时间复杂度上面没有本质的差别。

4、在线预测:协同好

​ 在线实时推荐 UserCF和ItemCF在线服务算法需要将相关表缓存在内存中,然后可以在线进行实时的预测。以ItemCF算法为例,一旦用户喜欢了新的物品,就可以通过查询内存中的相关表将和该物品相似的其他物品推荐给用户。因此,一旦用户有了新的行为,而且该行为被实时地记录到后台的数据库系统中,他的推荐列表就会发生变化。

而从LFM的预测公式可以看到(因子模型),LFM在给用户生成推荐列表时,*需要计算用户对所有物品的兴趣权重,*然后排名,返回全中最大的N个物品。那么,在物品数很多时,这一过程的时间复杂度非常高,因此,LFM不太适合用户物品数非常庞大的系统。另一方面,LFM在生成一个用户推荐列表时速度太慢,因此不适合在线实时计算,而需要离线将所有用户的推荐结果事先计算好存储在数据库中。当用户在线有了新的行为后,他的推荐列表不会发生变化。

5可解释性

​ 推荐解释 ItemCF算法支持很好的推荐解释,它可以利用用户的历史行为解释推荐结果。但LFM无法提供这样的解释,它计算出的隐类虽然在语义上却是代表了一类兴趣和物品,却很难用自然语言描述并生成解释展示给用户。

基于物品的协同过滤和内容过滤有什么区别?

基于物品的协同过滤,核心是要计算两个物品的相似度,同时出现的频率比

内容过滤:核心任务是计算物品的内容相似度。

可以注意到两者的相同点都是要计算两个物品的相似度,但不同点是前者是根据两个物品被越多的人同时喜欢,这两个物品就越相似,

而后者要根据物品的内容相似度来做推荐**,给物品内容建模**的方法很多,最著名的是向量空间模型,要计算两个向量的相似度。
由此可以看到两种方法的不同点在于计算两个物品的相似度方法不同,一个根据外界环境计算,一个根据内容计算。

转载地址:http://hlhdi.baihongyu.com/

你可能感兴趣的文章
course_2_assessment_6
查看>>
coursesa课程 Python 3 programming course_2_assessment_7 多参数函数练习题
查看>>
coursesa课程 Python 3 programming course_2_assessment_8 sorted练习题
查看>>
在unity中建立最小的shader(Minimal Shader)
查看>>
1.3 Debugging of Shaders (调试着色器)
查看>>
关于phpcms中模块_tag.class.php中的pc_tag()方法的含义
查看>>
vsftp 配置具有匿名登录也有系统用户登录,系统用户有管理权限,匿名只有下载权限。
查看>>
linux安装usb wifi接收器
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>
让我做你的下一行Code
查看>>
浅析:setsockopt()改善程序的健壮性
查看>>
关于对象赋值及返回临时对象过程中的构造与析构
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
SQL 多表联合查询
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>
在C++中使用Lua
查看>>
一些socket的编程经验
查看>>