物品推荐

推荐系统| 基于协同过滤

坚强是说给别人听的谎言 提交于 2019-11-29 23:55:12
基于协同过滤的推荐算法 协同过滤(Collaborative Filtering,CF) 基于近邻的协同过滤     基于用户(User-CF)     基于物品(Item-CF) 基于模型的协同过滤     奇异值分解(SVD)     潜在语义分析(LSA)     支撑向量机(SVM) 1. 协同过滤CF的推荐 基于内容(Content based,CB)主要利用的是用户评价过的物品的内容特征,而CF方法还可以利用其他用户评分过的物品内容 CF 可以解决 CB 的一些局限     物品内容不完全或者难以获得时,依然可以通过其他用户的反馈给出推荐     CF基于用户之间对物品的评价质量,避免了CB仅依赖内容可能造成的对物品质量判断的干扰     CF推荐不受内容限制,只要其他类似用户给出了对不同物品的兴趣,CF就可以给用户推荐出内容差异很大的物品(但有某种内在联系) 分为两类:基于近邻和基于模型 2. 基于近邻的推荐 基于近邻的推荐系统根据的是相同“口碑”准则 是否应该给Cary推荐《泰坦尼克号》? 基于用户的协同过滤(User-CF) 基于用户的协同过滤推荐的基本原理是,根据所有用户对物品的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,并推荐近邻所偏好的物品 在一般的应用中是采用计算“K- 近邻”的算法;基于这 K 个邻居的历史偏好信息,为当前用户进行推荐 User

论文阅读 - Item-Based Collaborative Filtering Recommendation Algorithms

谁说胖子不能爱 提交于 2019-11-29 21:39:40
本文是我在阅读推荐系统经典论文 Item-Based Collaborative Filtering Recommendation Algorithms 时候记录的笔记。 协同过滤算法 协同过滤算法(collaborative filtering algorithm, CF)基于当前用户先前的行为(评分、购买记录等),以及与该用户相似的用户的行为,来给当前用户推荐其可能喜欢的物品(item),或者预测该用户对某物品的喜欢程度。 问题设定是有一组用户 \(\mathcal{U}=\left\{u_{1}, u_{2}, \ldots, u_{m}\right\}\) 和一组物品 \(\mathcal{I}=\left\{i_{1}, i_{2}, \ldots, i_{n}\right\}\) ,每个用户 \(u_i\) 有一组购买、评价过的物品 \(I_{u i}\) 。 这里的用户和物品信息可以构成 user-item 矩阵,用户对物品的交互信息,构成矩阵中的值。矩阵可以是二值的(买过 0、未买过 1),也可以是多值或连续值(用户对物品的评分)。利用这个矩阵,可以用来预测用户对其未交互过的物品的评价值或喜欢的概率,进而可以基于此为用户产生一组推荐。 传统的协同过滤算法会从不同角度进行细分。根据是否需要保存 user-item 矩阵,可以分为 Memory-based CF 和

推荐系统架构

大憨熊 提交于 2019-11-29 03:16:39
推荐系统架构 下图所示是业界推荐系统通用架构图,主要包括:底层基础数据、数据加工存储、召回内容、计算排序、过滤和展示、业务应用。 底层基础数据是推荐系统的基石,只有数据量足够多,才能从中挖掘出更多有价值的信息,进而更好地为推荐系统服务。底层基础数据包括用户和物品本身数据、用户行为数据、用户系统上报数据等。 召回内容 电商网站、内容网站、视频网站中数据量很大,并不能直接把所有的物品数据全部输送到推荐系统进行排序,那么如何对物品进行筛选就成了很关键的问题。第4章中介绍了一些常用的数据挖掘算法和应用场景,在进行物品召回时可以基于一些常用的机器学习算法构建用户偏好模型、用户兴趣模型、物品相似模型、物品互补模型等。在进行内容召回时,只召回和用户有偏好关系、和用户有直接关联、和用户有直接关系的相关物品,输入排序模型,进行打分排序。例如,在某新闻类网站中,根据用户对新闻的相关行为信息构建用户对新闻标签的兴趣模型,在为用户推荐时就可以推荐用户偏好标签下的新闻数据,如图14-5所示。 在物品召回过程中,重点是如何构建合适的用户偏好模型,只有保证偏好模型的准确性才能确保用户召回物品的准确性。 计算排序 特征工程 “数据决定了机器学习的上限,而算法只是尽可能逼近这个上限”,这里的数据指的就是经过特征工程得到的数据。特征工程指的是把原始数据转变为模型的训练数据的过程,目的就是获取更好的训练数据特征

摘抄的关于推荐算法的文章

蹲街弑〆低调 提交于 2019-11-28 17:29:43
最近因为PAC平台自动化的需求,开始探坑推荐系统。这个乍一听去乐趣无穷的课题,对于算法大神们来说是这样的:      而对于刚接触这个领域的我来说,是这样的:      在深坑外围徘徊了一周后,我整理了一些推荐系统的基本概念以及一些有代表性的简单的算法,作为初探总结,也希望能抛砖引玉,给同样想入坑的伙伴们提供一些思路。   ◆ ◆ ◆   什么是推荐系统   1. 什么是推荐系统?   推荐系统是啥?   如果你是个多年电商(剁手)党,你会说是这个:      如果你是名充满文艺细胞的音乐发烧友,你会答这个:      如果你是位活跃在各大社交平台的点赞狂魔,你会答这个:      没错,猜你喜欢、个性歌单、热点微博,这些都是推荐系统的输出内容。从这些我们就可以总结出,推荐系统到底是做什么的。   目的1. 帮助用户找到想要的商品(新闻/音乐/……),发掘长尾   帮用户找到想要的东西,谈何容易。商品茫茫多,甚至是我们自己,也经常点开淘宝,面对眼花缭乱的打折活动不知道要买啥。在经济学中,有一个著名理论叫长尾理论(The Long Tail)。      套用在互联网领域中,指的就是最热的那一小部分资源将得到绝大部分的关注,而剩下的很大一部分资源却鲜少有人问津。这不仅造成了资源利用上的浪费,也让很多口味偏小众的用户无法找到自己感兴趣的内容。   目的2. 降低信息过载  

推荐算法-余弦相似度

邮差的信 提交于 2019-11-28 11:28:00
/*--> */ /*--> */ 一、余弦相似度: 余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性" 二维向量的余弦相似度: 多维向量的余弦相似度(类比) /*--> */ /*--> */ 协同过滤(Collaborative Filtering , 简称 CF ): 收集用户行为 减噪与归一化处理 减噪:用户行为数据是用户在使用应用过程中产生的,它可能存在大量的噪音和用户的误操作,我们可以通过经典的数据挖掘算法过滤掉行为数据中的噪音,这样可以是我们的分析更加精确 归一化:将各个行为的数据统一在一个相同的取值范围中,从而使得加权求和得到的总体喜好更加精确。 二、基于物品的协同过滤推荐算法(itemCF): 算法思想:给用户推荐那些和他们之前喜欢的物品相似的物品 用户行为与权重:点击 -1、搜索 -3、收藏 -5 、付款 -10 用户 A 、B 、C 商品 1 、2 、3 、4 、5 、6 根据用户行为列表计算用户、物品的评分矩阵 根据用户、物品的评分矩阵计算物品、物品的相似矩阵 相似度矩阵x评分矩阵=推荐列表 推荐列表中用户之前已经有过行为的元素置为0 /*--> */ /*--> */ 三、基于用户的协同过滤推荐算法( UserCF) 算法思想:给用户推荐和他兴趣相似的其他用户喜欢的物品 用户行为与权重:点击 -1、搜索 -3、收藏 -5

推荐系统实践(七)

旧街凉风 提交于 2019-11-28 05:13:44
第七章 推荐系统实例 7.1 外围架构      数据收集和存储    需要实时存取的数据存储在数据库和缓存中,而大规模的非实时地存取数据存储在分布式文件系统中(HDFS)中。 7.2 推荐系统架构     用户和物品的联系如下所示:   如果认为用户喜欢的物品也是一种用 户特征,或者和用户兴趣相似的其他用户也是一种用户特征,那么用户就和物品通过特征相联系。基于上述的理解我们可以把推荐系统的核心任务拆分位两个部分1   > 如何给用户生成特征   > 如何根据特征找到物品   推荐系统的需求有很多,可以根据不同的需求设计不同的推荐引擎,通过不同的推荐引擎来满足客户的需求。 7.3 推荐引擎的架构       推荐引擎使用一种或几种用户特征,按照一种推荐策略生成一种类型物品的推荐列表。一个规则引擎的概念图如下所示:      > A部分从缓存中拿到用户的行为数据,通过分析用户的行为获取特征向量   > B部分将特征向量结合特征-物品矩阵生成初始的推荐列表   > C部分对初始的列表进行处理,从而生成最终的推荐结果。    生成用户特征向量    用户的特征一般有两种:一种是注册的时候获取的,另一种是通过用户的行为计算出来的。   计算用户特征向量主要考虑:   > 用户行为的种类 一般的标准是用户付出代价越大的行为权重越大   > 用户行为产生的时间 近期行为权重大   >

推荐系统实践(五)

↘锁芯ラ 提交于 2019-11-28 03:47:40
第五章 利用上下文信息 5.1 时间上下文信息   给定时间信息后,推荐系统从一个静态的系统变成了一个时变的系统.有一个三元组(u,i,t)表示用户u在时刻t对物品i有过行为.   ( a) 评价物品的生命周期的指标:     (1) 物品平均在线天数: 如果一个物品在某天被至少一个用户产生过行为,就定义该物品在这一天在线     (2) 相隔T天物品流行度向量的平均相似度(余弦相似度) 用来评估一个系统的时效性   (b) 推荐算法的时间多样性: 推荐系统每天推荐结果的变化程度被定义为推荐系统的时间多样性    (c) 在用户没有行为的情况下如何保证推荐结果具备一定的时间多样性:     (1) 在生成推荐结果时加入一定的随机性     (2) 记录用户每天看到的推荐结果,然后在推荐的时候对用户已经看过的推荐降底权重     (3) 每天给用户使用不同的推荐算法    (d) 时间上下文推荐算法     (1) 最近最热门:给用户推荐最近一段时间最热门的物品,给定时间T,物品i最近的流行度$n_i(T)$可以定义为:          (2) 时间上下文相关的itemCF算法     itemCF的核心部分为:利用用户行为离线计算物品之间的相似度;根据用户的历史行为和物品相似度矩阵,给用户做在线个性化推荐。     利用时间信息对计算物品相似度的矩阵做一个改进:       

推荐系统实践笔记(三)

心不动则不痛 提交于 2019-11-28 01:07:00
第三章 推荐系统冷启动问题   如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐系统结果满意从而愿意使用推荐系统就是冷启动问题. 3.1 冷启动问题简介   冷启动问题主要分为以下三类:   (1) 用户冷启动 主要解决如何给新用户做个性化推荐的问题   (2) 物品冷启动 主要解决如何将新的物品推荐给可能对其感兴趣的用户   (3) 系统冷启动 主要解决如何在新开发的网站上设计个性化推荐系统   主要解决方法:   (1) 提供非个性化的推荐(用的比较多的是热门推荐)   (2) 利用用户注册时提供的年龄、性别等数据做粗粒度的个性化   (3) 利用用户的社交网络账号登录(需要用户授权) ,导入用户在社交网站上的好友信息,然后给用户推荐好友喜欢的商品   (4) 要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息   (5) 对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户。   (6) 在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。 3.2 利用用户注册信息   用户注册信息分为三种:   (1) 人口统计学信息 包括用户的年龄、性别、职业、民族、学历和居住地。   (2) 用户兴趣的描述   (3) 从其他网站导入的用户站外行为数据   基于注册信息的个性化推荐系统基本流程如下:   

协同过滤推荐算法的原理及实现

我是研究僧i 提交于 2019-11-26 21:14:11
一、协同过滤算法的原理及实现 协同过滤推荐算法是诞生最早,并且较为著名的推荐算法。主要的功能是预测和推荐。算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤推荐算法分为两类,分别是 基于用户 的协同过滤算法(user-based collaboratIve filtering),和 基于物品 的协同过滤算法(item-based collaborative filtering)。简单的说就是:人以类聚,物以群分。下面我们将分别说明这两类推荐算法的原理和实现方法。 1.基于用户的协同过滤算法(user-based collaboratIve filtering) 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分。根据不同用户对相同商品或内容的态度和偏好程度计算用户之间的关系。在有相同喜好的用户间进行商品推荐。简单的说就是如果A,B两个用户都购买了x,y,z三本图书,并且给出了5星的好评。那么A和B就属于同一类用户。可以将A看过的图书w也推荐给用户B。 1.1寻找偏好相似的用户  我们模拟了5个用户对两件商品的评分,来说明如何通过用户对不同商品的态度和偏好寻找相似的用户。在示例中,5个用户分别对两件商品进行了评分