在上一篇文章中分析了“基于内容的推荐”的相关知识后,有网友评论说这种方式存在一些问题。 他列举了推荐的板栗作为某调频瓣膜的音乐。 ljdgtx第一次使用调频后,会保留peofile的版本。 第二天,你的心情和场景发生了变化,系统推荐的都很奇怪。 你只能自己选歌。 那之后是第三次,第四次。
我们在制作算法的时候一定不是完美的,所以其他算法会补充产生接近完美的结果。
(java系、java系、java系、java系、java系、java系、java系、java系、java系、java系) ) ) ) ) ) ) )。
今天,我们将分析用户协作过滤是如何实现的。
文章不长,但内容很紧凑,我的产品她看了两次就明白了。 你们一次就没关系。
古人说“物以类聚,人以群分”,今天我们就以看电影为例。 例如,如果你喜欢看诸如《碟中谍》、《蝙蝠侠》、《源代码》、《星际穿越》等电影,另一个人也喜欢看这些电影,他也喜欢《蜘蛛侠》,那么你可能也喜欢《蜘蛛侠》。
因此,如果用户a需要个性化推荐,可以先找到兴趣与他相似的用户组g,然后向a推荐g喜欢同事a而从未见过的。 这是基于用户的协同过滤算法的大致思路。
基于用户的协同过滤推荐算法可以通过以下两个步骤来实现:
1 .找到兴趣相近的用户
2 .推荐道具
(hadoop组、hadoop组、hadoop组、hadoop组、hadoop组、hadoop组、hadoop组、hadoop组和hadoop组
1.发现兴趣相似的用户
通常使用Jaccard表达式或余弦相似度计算两个用户之间的相似度。如果n(u )是用户u喜欢的项目的集合,而n(u )是用户v喜欢的项目的集合,那么u和v的相似度是多少呢?
Jaccard公式:
余弦相似度:
假设目前有四个用户: a、b、c和d。 五个项目: a、b、c、d和e。 用户与项目的关系(用户喜欢哪个项目)如下图所示。
如何计算所有用户之间的相似度? 为了便于计算,通常创建“物品-用户”倒置表,如下图所示。
然后,对于每个项目,喜欢他的用户在2、2之间将同一项目加1。 例如,如果喜欢a的用户有a和b,则矩阵中包含2、2和加1。 如下图所示。
计算用户之间的相似度,上面的矩阵只表示式的分子部分。
(java系、java系、java系、java系、java系、java系、java系、java系、java系、java系、java系) ) ) )。
这里,以余弦类似度为例,对上图进行以下计算:
至此,系统将计算用户的相似度,并在图表中直观地找到与目标用户兴趣相似的用户。
2.推荐物品
首先需要从矩阵中找到与目标用户u最相似的k个用户,用集合s(u,k )表示,提取s中用户喜欢的所有用户,并去除u已经喜欢的用户。 对于每个候选项目I,用户u感兴趣程度通过以下公式计算:
其中rvi表示用户v对I的喜爱度,这里均被定位为1,在具有用户分数的推荐系统中被代入用户分数。
举个板栗吧。 a向用户推荐商品时,首先选择K=3个相似的用户。 每个相似的用户分别是b、c和d,他们喜欢而不喜欢a的项目是c和e,分别计算p(a、c )和p(a、e )。
结果表明,用户a对c和e的喜爱程度可能相同,但在实际推荐系统中,按得分顺序排在前列即可。
(hadoop组、hadoop组、hadoop组、hadoop组、hadoop组、hadoop组、hadoop组、hadoop组和hadoop组
自己对于学Hadoop的一点建议
作为jzdwx,我知道学习技术很难,所以想提供很有帮助的知识。我开始学Hadoop的时候自己看书,但是效率很低,找不到方向和重点。 之后在论坛上认识了某渡的cxdbg,给了我一套视频。
0从基础入门Hadoop,到Hadoop生态圈各个组件的说明,最重要的还是一些实际的商业案例,我给大家展示了实际的生产环境。 否则,我不知道学什么才适合工作。 我也是跟着视频学会的Hadoop。
我把获取视频的方法留在上图的右下角,如果你打算学习Hadoop的话可以去拿最新版。 我的有点旧。 解释意思最好:学习视频
最后,我想说,读文章不思考、不行动的知识永远不会属于自己。
一起学习。