推荐系统

推荐系统相关算法(1):SVD

一世执手 提交于 2020-02-01 06:41:30
http://www.cnblogs.com/FengYan/archive/2012/05/06/2480664.html 1. SVD简介 假如要预测Zero君对一部电影M的评分,而手上只有Zero君对若干部电影的评分和风炎君对若干部电影的评分(包含M的评分)。那么能预测出Zero君对M的评分吗?答案显然是能。最简单的方法就是直接将预测分定为平均分。不过这时的准确度就难说了。本文将介绍一种比这个最简单的方法要准上许多,并且也不算复杂的算法。 SVD(Singular Value Decomposition)的想法是 根据已有的评分情况,分析出评分者对各个因子的喜好程度以及电影包含各个因子的程度,最后再反过来根据分析结果预测评分 。电影中的因子可以理解成这些东西:电影的搞笑程度,电影的爱情爱得死去活来的程度,电影的恐怖程度。。。。。。SVD的想法抽象点来看就是将一个N行M列的评分矩阵R(R[u][i]代表第u个用户对第i个物品的评分),分解成一个N行F列的用户因子矩阵P(P[u][k]表示用户u对因子k的喜好程度)和一个M行F列的物品因子矩阵Q(Q[i][k]表示第i个物品的因子k的程度)。用公式来表示就是 R = P * T(Q) //T(Q)表示Q矩阵的转置 下面是将评分矩阵R分解成用户因子矩阵P与物品因子矩阵Q的一个例子。R的元素数值越大,表示用户越喜欢这部电影

推荐系统相关算法(1):SVD

十年热恋 提交于 2020-02-01 06:40:52
假如要预测Zero君对一部电影M的评分,而手上只有Zero君对若干部电影的评分和风炎君对若干部电影的评分(包含M的评分)。那么能预测出Zero君对M的评分吗?答案显然是能。最简单的方法就是直接将预测分定为平均分。不过这时的准确度就难说了。本文将介绍一种比这个最简单的方法要准上许多,并且也不算复杂的算法。 SVD(Singular Value Decomposition)的想法是 根据已有的评分情况,分析出评分者对各个因子的喜好程度以及电影包含各个因子的程度,最后再反过来根据分析结果预测评分 。电影中的因子可以理解成这些东西:电影的搞笑程度,电影的爱情爱得死去活来的程度,电影的恐怖程度。。。。。。SVD的想法抽象点来看就是将一个N行M列的评分矩阵R(R[u][i]代表第u个用户对第i个物品的评分),分解成一个N行F列的用户因子矩阵P(P[u][k]表示用户u对因子k的喜好程度)和一个M行F列的物品因子矩阵Q(Q[i][k]表示第i个物品的因子k的程度)。用公式来表示就是 R = P * T(Q) //T(Q)表示Q矩阵的转置 下面是将评分矩阵R分解成用户因子矩阵P与物品因子矩阵Q的一个例子。R的元素数值越大,表示用户越喜欢这部电影。P的元素数值越大,表示用户越喜欢对应的因子。Q的元素数值越大,表示物品对应的因子程度越高。分解完后,就能利用P,Q来预测Zero君对《七夜》的评分了

推荐系统顶会 RecSys2019 最佳论文!《Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Rec

荒凉一梦 提交于 2020-01-31 02:06:47
推荐系统顶会 RecSys2019 最佳论文!《Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches》 作者: 纪厚业 北京邮电大学 知乎专栏对公式支持较好 , 见 https://zhuanlan.zhihu.com/c_1158788280744173568 个人公众号 图与推荐 本文发表在推荐系统顶会RecSys2019并获得了Best Paper。作者梳理实现了大量顶会推荐论文的代码(https://github.com/MaurizioFD/RecSys2019_DeepLearning_Evaluation)方便大家入门推荐系统。 1.引言. 推荐系统尤其是深度推荐系统在工业界得到的广泛的应用,相关论文也在各大顶会层出不穷。各种State-of-the-art的模型不断的刷新着记录。但是,这些模型的有效性并没有真正的得到验证。本文复现了近些年顶会的Top-N推荐的论文并进行了系统的分析。遗憾的是,顶会上的18种推荐算法只有7个可以合理的复现。一些算法甚至无法超过基于KNN的方法。这不禁使作者发出疑问:我们真的取得了大量的进步吗? 2.相关的论文、模型评价标准及基线算法 这里作者收集了18篇各大顶会论文,见Table 1. 3

推荐系统(三)Graph Embedding之LINE

你离开我真会死。 提交于 2020-01-29 21:46:17
上一篇博客 推荐系统(二)Graph Embedding之DeepWalk 中讲到Graph Embedding的开山之作DeepWalk,该博客讲述了在图结构上进行RandomWalk获取训练样本,并通过Word2Vec模型来训练得到图中每个节点的Embedding向量。 但DeepWalk有两个比较大的问题: DeepWalk将问题抽象成无权图,这意味着高频次user behavior路径和低频次user behavior路径在模型看来是等价的。 所处环境相似但不直连的两个节点没有进行特殊的处理,这类节点的Embedding向量本应比较相似, 而这类信息是没有办法通过深度优先遍历的方式来获取的,只能通过宽度优先遍历的方式来获取 ,使得这类节点的Embedding向量相去甚远。 上述两点缺陷正是本篇博客提到的LINE算法所关注的。本篇博客着重讲述LINE算法的模型构建和模型优化两个过程。在模型构建阶段,在图结构中随机提取指定条数的边作为训练样本集合,之后对于训练集合中的每条边,采用First/Second-order Proximity作为模型的两种构建手段,并利用相对熵作为损失函数。在模型优化阶段,采用负采样变更损失函数+alias边采样的方式进行加速运算。 关键字 : First-order Proximity,Second-order Proximity,相对熵,Edge

推荐 C/C++ 人工智能 框架和库

自作多情 提交于 2020-01-28 23:49:54
2018年10月22日 22:59:58 yangminggg 阅读数:2217 值得推荐的C/C++框架和库 C++资源大全 关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 标准库 C++标准库 ,包括了STL容器,算法和函数等。 C++ Standard Library :是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。 Standard Template Library :标准模板库 C POSIX library : POSIX系统的C标准库规范 ISO C++ Standards Committe e :C++标准委员会 C++通用框架和库 Apache C++ Standard Library :是一系列算法,容器,迭代器和其他基本组件的集合 ASL :Adobe源代码库提供了同行的评审和可移植的C++源代码库。 Boost :大量通用C++库的集合。 BDE :来自于彭博资讯实验室的开发环境。 Cinder :提供专业品质创造性编码的开源开发社区。 Cxxomfort :轻量级的,只包含头文件的库,将C++ 11的一些新特性移植到C++03中。 Dlib :使用契约式编程和现代C++科技设计的通用的跨平台的C++库。 EASTL :EA-STL公共部分

计算广告、推荐系统论文以及DSP综述

雨燕双飞 提交于 2020-01-28 02:23:04
http://www.huxmarket.com/detail/2966 DSP场景假定前提 : 以CTR预估为例,向广告主以CPC(OCPC)方式收费,向ADX以CPM方式付费。投放计划受预算限制,在这种情况下,一般含有约束目标(如最小化eCPC,最小化转化成本等)。 DSP如何赚钱 : 成本:从ADX手中购买impression的支出(主要技术:bid optimization) 收入:从广告主手中得到的点击事件收费(主要技术:CTR/CVR prediction) paper: https://github.com/wnzhang/rtb-papers 计算广告论文及资料列表github repo: https://github.com/wzhe06/Ad-papers 推荐系统论文及资料列表github repo: https://github.com/wzhe06/Reco-papers https://buaawht.github.io/2019/03/23/%E5%B9%BF%E5%91%8A%E7%AE%97%E6%B3%95%E8%B5%84%E6%96%99%E5%90%88%E9%9B%86/ https://github.com/hongleizhang/RSPapers 2019年上半年工业界深度推荐系统与CTR预估上值得精读的论文: https:/

推荐系统干货总结

为君一笑 提交于 2020-01-25 14:57:35
前言 推荐系统是一个相当火热的研究方向,在工业界和学术界都得到了大家的广泛关注。希望通过此文,总结一些关于推荐系统领域相关的会议、知名学者,以及做科研常用的数据集、代码库等,一来算是对自己涉猎推荐系统领域的整理和总结,二来希望能够帮助想入门推荐系统的童鞋们提供一个参考,希望能够尽快上手推荐系统,进而更好更快的深入科研也好、工程也罢。 一、 相关会议 对于推荐系统领域,直接相关的会议不多,但由于推荐系统会涉及到数据挖掘、机器学习等方面的知识,并且推荐系统作为数据挖掘和机器学习的重要应用之一,同时推荐系统往更大的领域靠拢的话也属于人工智能的范畴,因此很多做推荐的学者把目光也瞄向了数据挖掘、机器学习和人工智能方面的会议。所以,如果想关注推荐系统的前沿,我们需要不仅关注推荐系统年会,还需要关注其他与推荐挂钩的会议。 1、与推荐系统直接相关的会议 RecSys -The ACM Conference Series on Recommender Systems. 2、数据挖掘相关的会议 SIGKDD - The ACM SIGKDD Conference on Knowledge Discovery and Data Mining. WSDM - The International Conference on Web Search and Data Mining. ICDM - The

基于矩阵分解的推荐算法,简单入门

假装没事ソ 提交于 2020-01-25 10:14:15
基于矩阵分解的推荐算法,简单入门 转自:http://www.cnblogs.com/kobedeshow/p/3651833.html 本文将要讨论基于矩阵分解的推荐算法,这一类型的算法通常会有很高的预测精度,也活跃于各大推荐系统竞赛上面,前段时间的百度电影推荐最终结果的前10名貌似都是把矩阵分解作为一个单模型,最后各种ensemble,不知道正在进行的阿里推荐比赛( http://102.alibaba.com/competition/addDiscovery/index.htm ),会不会惊喜出现。。。。好了,闲话不扯了,本文打算写一篇该类型推荐算法的入门篇 目录 一,基于矩阵分解的推荐算法相关理论介绍 二,C++代码实现 三,总结跟展望一下 四,后续计划 一,基于矩阵分解的推荐算法相关理论介绍 我们知道,要做推荐系统,最基本的一个数据就是,用户-物品的评分矩阵,如下图1所示 图1 矩阵中,描述了5个用户(U1,U2,U3,U4 ,U5)对4个物品(D1,D2,D3,D4)的评分(1-5分),- 表示没有评分,现在目的是把没有评分的 给预测出来,然后按预测的分数高低,给用户进行推荐。 如何预测缺失的评分呢?对于缺失的评分,可以转化为基于机器学习的回归问题,也就是连续值的预测,对于矩阵分解有如下式子,R是类似图1的评分矩阵,假设N*M维(N表示行数,M表示列数)

转推荐算法——基于矩阵分解的推荐算法

北战南征 提交于 2020-01-25 10:13:39
推荐算法概述 对于推荐系统(Recommend System, RS),从广义上的理解为:为用户(User)推荐相关的商品(Items)。常用的推荐算法主要有: 基于内容的推荐(Content-Based Recommendation) 协同过滤的推荐(Collaborative Filtering Recommendation) 基于关联规则的推荐(Association Rule-Based Recommendation) 基于效用的推荐(Utility-Based Recommendation) 基于知识的推荐(Knowledge-Based Recommendation) 组合推荐(Hybrid Recommendation) 在推荐系统中,最重要的数据是用户对商品的打分数据,数据形式如下所示: 其中, U 1 ⋯ U 5 表示的是 5 个不同的用户, D 1 ⋯ D 4 表示的是 4 个不同的商品,这样便构成了用户-商品矩阵,在该矩阵中,有用户对每一件商品的打分,其中“-”表示的是用户未对该商品进行打分。 在推荐系统中有一类问题是对未打分的商品进行评分的预测。 目前推荐系统中用的最多的就是矩阵分解方法,在Netflix Prize推荐系统大赛中取得突出效果。以用户-项目评分矩阵为例,矩阵分解就是预测出评分矩阵中的缺失值,然后根据预测值以某种方式向用户推荐

推荐系统之协同过滤的原理及C++实现

我怕爱的太早我们不能终老 提交于 2020-01-24 06:42:13
1.引言 假如你经营着一家网店,里面卖各种商品(Items),有很多用户在你的店里面买过东西,并对买过的Items进行了评分,我们称之为历史信息,现在为了提高销售量,必须主动向用户推销产品,所以关键是要判断出用户除了已经买过的商品之外还会喜欢哪些商品,这就需要利用用户购买商品过程产生的历史信息。协同过滤通常分为基于用户的协同过滤和基于商品的协同过滤。 基于用户的协同过滤 :利用用户之间的相似度进行推荐 基于物品的协同过滤 :利用物品之间的相似度进行推荐 2.原理 关于协同过滤的原理网上到处都有,思想很简单,这里就不赘述,下面举一个简单的实例来说明基于用户的协同过滤: 上面每一行代表一个用户,每一列代表一个商品,比如第2行第一列的3表示用户2对商品1的评分为3,0代表对应的用户还没有购买过该商品,现在想预测用户2对商品4的评分: 找出对商品4评过分的用户:用户1,3,5,8,9,10,评分分别为:4, 2, 1, 3, 3, 1 分别计算用户2与用户1,3,5,8,9,10之间的相似度,相似度的计算方法有很多,常用的分为3类:欧氏距离,余弦相似度,皮尔逊相关系数,网上很容易查到,这里以常用的余弦相关系数说明:      要计算用户2与用户1之间的相似度,首先找到二者都评过分的商品为:商品1, 2, 9, 10,用户1对这4个商品的评分向量为r1=[5 3 4 4]