http://www.linklink001.com/2008/03/doubanarithmetic/
豆瓣一直是中国web2.0的楷模,它神奇的“猜”功能吸引了无数的粉丝。他到底为什么有这么神奇的能力那?古老的读心术吗?当然不是,这全部得力于他的推荐算法。
所谓推荐算法就是利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西。推荐算法主要分为两种(还有一些可能不在本文讲述的范围内)基于内容的推荐和基于协同过滤的推荐。基于内容的推荐比较容易理解,他是通过两样东西的内容之间的相关性进行推荐。比如说,A喜欢一篇400字文章,里面出现了“豆瓣”这个词100次。哪么系统就会推荐一些同样出现了“豆瓣”这个词很多次的文章给A。这就是基于内容的推荐,他的好处是比较好理解、简单、高效,缺点就是只能用来推荐文章等一些文字的东西。对于图片等一些多媒体的内容就无从下手了。
基于协同过滤的推荐算法,正好弥补了这个缺点,他理论上可以推荐世界上的任何一种东西。图片、音乐、样样可以。协同过滤算法主要是通过对未评分项进行评分预测来实现的。不同的协同过滤之间也有很大的不同。
基于用户的协同过滤算法
这种算法基于一个这样的假设“跟你喜好相似的人喜欢的东西你也很有可能喜欢。”所以基于用户的协同过滤主要的任务就是找出用户的最近邻居,从而根据最近邻居的喜好做出未知项的评分预测。这种算法主要分为3个步骤:
一,用户评分。可以分为显性评分和隐形评分两种。显性评分就是直接给项目评分(例如给豆瓣里的书籍评分),隐形评分就是通过评价或是购买的行为给项目评分(例如在当当购买了什么东西)。
二,寻找最近邻居。这一步就是寻找与你距离最近的用户,测算距离一般采用以下三种算法:1.皮尔森相关系数。2.余弦相似性。3调整余弦相似性。调整余弦相似性似乎效果会好一些。
三,推荐。产生了最近邻居集合后,就根据这个集合对未知项进行评分预测。把评分最高的N个项推荐给用户。
这种算法存在性能上的瓶颈,当用户数越来越多的时候,寻找最近邻居的复杂度也会大幅度的增长。因而这种算法无法满足及时推荐的要求。基于项的协同过滤解决了这个问题。
基于项的协同过滤算法
根基于用户的算法相似,只不过第二步改为计算项之间的相似度。由于项之间的相似度比较稳定可以在线下进行,所以解决了基于用户的协同过滤算法存在的性能瓶颈。
豆瓣应该采用的就是基于项的协同过滤算法。但是他不可能只使用一种算法,肯定是综合了许多的算法。至于都有什么算法,比例是什么。那只有豆瓣的工程师知道,我们是猜不出来的。
分享到:
相关推荐
关于遗传算法的详尽介绍,对于遗传算法中各个模块的参数进行解析,窥视遗传算法的核心部分,对于遗传算法模式定理的深入解析,及由模式定理产生的启迪思想,能够让你更好的理解遗传算法!
为了确定锚杆支护在巷道中起到的加固作用,通过对山西省长治经坊煤业有限公司3-6011辅助运输巷现场调研、井下钻孔窥视,并形成窥视孔柱状图,对顶板地质情况进行分析,并对围岩地质力学评价,最终确定3-6012辅助运输巷...
目前要进行这些工作主要采用提取岩芯、电测井等手段,费时费力,不能满足生产需要,迫切需要一种既可在煤矿井下现场观测记录、又能在地面回放、分析的钻孔窥视设备,以建立岩性特征数据库。阳煤新景矿与西安煤科院合作,...
通达信指标公式源码窥视顶底买卖副图指标 通达信指标公式源码窥视顶底买卖副图指标是一个基于技术指标的交易策略,旨在帮助交易者识别股票或期货的买卖机会。该指标公式包含多种技术指标,包括动力线、趋势、MACD...
在复杂地质条件下煤巷掘进中,矿用钻孔窥视仪作为一种行之有效的观测仪器,可以直接进入锚杆(锚索)钻孔、地质钻孔,通过其输出的图像直观地反映出巷道周围岩体不连续面(如层理、节理、裂隙),为巷道支护设计、围岩注浆...
以寺河二号井坚硬顶板水力压裂工程为背景,为探测顶板围岩结构状况和定位合适的切槽位置,利用GD3Q-GA型4D超高清全智能孔内电视,进行了围岩结构窥视。结果表明:在斜长22~25m之间,垂高11~12.5m之间有一层厚度约为400mm...
在Java编程领域,LeetCode是一个非常受欢迎的在线平台,它提供了大量的编程题目,帮助开发者提升算法能力和准备求职面试。本题解聚焦于LeetCode中的第284题——窥视迭代器(Peek Iterator),主要涉及到Java数据结构...
Femtoscope和熵算法监视X射线的时间和能量,X射线将癌细胞转化为健康细胞,反之亦然。 治愈癌症意味着恢复从癌细胞中丢失的信息,从而使熵降到最低。 癌症的有效治疗在不对称地产生和消除癌细胞中表现出共振频率。 ...
综上所述,基于最小窥视孔长短期记忆神经网络的电力系统短期负荷预测模型是深度学习与优化算法在电力领域的成功应用,它有效地解决了传统LSTM模型的复杂性和训练难题,提升了预测的效率和准确性。未来的研究可以在此...
Oracle 绑定变量窥视功能深度分析 Oracle 绑定变量窥视功能是 Oracle 数据库中的一种功能,可以使 SQL 语句共享执行计划,从而提高数据库性能。该功能通过在绑定变量中存储执行计划,从而避免了每次执行 SQL 语句...
此外,每个章节还包含“进一步探索”的部分,为读者提供研究现状的窥视,以及对算法的概括和更高级解决方案的展望。算法科学是一个现代且活跃的研究领域,本书致力于为读者构建坚实的算法和数据结构基础。 通过本书...
本文主要介绍了一种基于Android平台的防窥视新型屏幕解锁软件,旨在提供一种更有趣、更安全、更通用的解锁机制,以满足用户对于隐私保护的需求。 现有的屏幕解锁方式,如数字密码、图案解锁、指纹识别等,虽然方便...
电子政务-光电防窥视键盘.zip
利用钻孔窥视分析方法,对巷道沉积岩区及火成岩区分别进行了钻孔窥视,对窥视结果进行了详细分析,掌握了火成岩侵入区岩石破碎状态及分布规律,为火成岩侵入区围岩控制方案研究提供了可靠地基础数据。
窥视未来数据驱动的自动驾驶汽车.docx
电信设备-防止窥视的信报箱.zip