推荐系统

推荐系统:MovieLens上的SAR单节点(SAR Single Node on MovieLens)

丶灬走出姿态 提交于 2020-01-04 00:18:51
步骤 1.计算物品相似度矩阵S(Item-Item Similarity matrix) 2.计算用户与物品的关系矩阵A(User_Item affinity matrix) 3.计算得分,得到分数矩阵A*S,推荐分数最高的几件商品(Top-k recommendations) 4.可以通过时间衰退与删除浏览过的商品来增加准确度 计算项目共现和项目相似度(计算S) SAR基于项目之间的共性数据(两个项目对于给定用户一起出现的次数)定义相似性。 构建了m*m的矩阵C, c i , j c_{i,j} c i , j ​ 代表的是项目i与项目j一起出行的次数,m是项目的总和 对称, c i , j = c j , i c_{i,j} = c_{j,i} c i , j ​ = c j , i ​ 非负 c i , j ≥ 0 c_{i,j} \geq 0 c i , j ​ ≥ 0 项目单独出现的次数肯定比两个项目同时出现的次数少 c i , i , c j , j ≥ c i , j c_{i,i} , c_{j,j} \geq c_{i,j} c i , i ​ , c j , j ​ ≥ c i , j ​ 计算相似度 Jaccard : s i j = c i j ( c i i + c j j − c i j ) s_{ij}=\frac{c_{ij}}{(c_{ii}+c_

推荐系统技术演进趋势:从召回到排序再到重排

戏子无情 提交于 2020-01-02 20:20:36
推荐系统技术,总体而言,与NLP和图像领域比,发展速度不算太快。不过最近两年,由于深度学习等一些新技术的引入,总体还是表现出了一些比较明显的技术发展趋势。这篇文章试图从推荐系统几个环节,以及不同的技术角度,来对目前推荐技术的比较彰显的技术趋势做个归纳。个人判断较多,偏颇难免,所以还请谨慎参考。 在写技术趋势前,照例还是对推荐系统的宏观架构做个简单说明,以免读者迷失在技术细节中。 实际的工业推荐系统,如果粗分的化,经常讲的有两个阶段。首先是召回,主要根据用户部分特征,从海量的物品库里,快速找回一小部分用户潜在感兴趣的物品,然后交给排序环节,排序环节可以融入较多特征,使用复杂模型,来精准地做个性化推荐。召回强调快,排序强调准。当然,这是传统角度看推荐这个事情。 但是,如果我们更细致地看实用的推荐系统,一般会有四个环节,如下图所示: 四个环节分别是:召回、粗排、精排和重排。召回目的如上所述;有时候因为每个用户召回环节返回的物品 来源: CSDN 作者: weekingqi 链接: https://blog.csdn.net/jxq0816/article/details/103810241

推荐算法之基于物品的协同过滤

旧城冷巷雨未停 提交于 2020-01-01 12:25:21
基于物品的协同过滤( item-based collaborative filtering )算法是此前业界应用较多的算法。无论是亚马逊网,还是 Netflix 、 Hulu 、 YouTube ,其推荐算法的基础都是该算法。为行文方便,下文以英文简称 ItemCF 表示。本文将从其基础算法讲起,一步步进行改进并基于 MovieLens 数据集给出代码实现,带你领略这一经典算法的美。 1.基本原理 前面我们简单讲解了一下基于用户的协同过滤推荐(UserCF),并且给出了实现代码。还不了解的朋友可以转到链接---- 推荐算法之基于用户的协同过滤 。但是我们也讲到该算法存在一些缺点,首先,随着网站的用户数目越来越大,计算用户兴趣相似度矩阵将越来越困难,其运算时间复杂度和空间复杂度的增长和用户数的增长近似于平方关系。其次,基于用户的协同过滤很难对推荐结果作出解释。因此,著名的电子商务公司亚马逊提出了另一个算法——ItemCF 。 ItemCF 给用户推荐那些和他们之前喜欢的物品相似的物品。比如,该算法会因为你购买过《统计学习方法》而给你推荐《机器学习》。不过,ItemCF算法并 不利用物品的内容属性计算物品之间的相似度 ,它 主要通过分析用户的行为记录计算物品之间的相似度 。 该算法认为,物品 A 和物品 B 具有很大的相似度是因为喜欢物品 A 的用户大都也喜欢物品B 。

推荐系统数据生成

て烟熏妆下的殇ゞ 提交于 2019-12-31 21:36:53
利用Python代码生成测试数据 最近一直着手在做的推荐系统项目几近结题。对于学生而言,刚接手这个项目的时候确实迷茫。班导师刚联系我的时候,顿时素质三连:推荐系统是啥?这有啥用?我做这个东西干啥? 以上三个问题,后期寒假会补上。 这篇文章更多的是介绍如何利用python语言,便利的生成一些测试数据。 这里有人可能会发问:测试数据用公测数据集不就行了?确实,当熟练掌握了推荐算法和推荐系统原理过后,直接使用一些公测数据集是完全ok且省时的。但是对于学生,尤其是我们这些初学者而言,测试数据越复杂,越会造成自己知识的混淆。所以不如按自己的想法,生成符合自己现阶段知识储备的数据。 下面附上源代码和说明,如果代码阅读存在问题就跑一下。 import random file = open ( "/Users/a/Desktop/1.txt" , 'w' ) #这里需要在桌面建立一个txt文件,用来储存生成日志。 year = { "2017" , "2018" , "2019" } #存放年份,这里用list和set都行,用set防止元素重复 month = { "01" , "03" , "04" , "05" , '06' , '07' , '08' , '09' , '10' , '11' , '12' } #同样的数据结构,存放月份 day = { '01' , '02' , '03'

推荐系统实例

烂漫一生 提交于 2019-12-28 23:00:56
1. Hulu:视频广告系统中的算法实践 ① 广告定向,涉及到: 预估模型:例如用户标签的补全,构建 lookalike 模型等等 主题模型:使用无监督方式挖掘用户属性 图像识别技术:识别视频内容中物体、场景、氛围等等,投放上下文相关视频广告 ② 库存预估,涉及到: 时序预测算法:库存预估一般被建模成时序预测问题 ③ 流量匹配,涉及到: 凸优化:使用凸优化进行离线流量匹配 自动化控制理论 ( PID Controller ):使用自动化控制理论进行线上动态调整 ④ 转化率优化,涉及到: CVR 预估模型 Casual Inference ( 因果推断 ):使用因果推断,得到一个更加公正、有效的指标来评估转化是否有效。 Bandit/ 增强学习:使用 Bandit 以及增强学习的方式来解决广告冷启动的问题 ⑤ 程序化交易广告,涉及到: RTB ( Real time bidding ) 策略研究 流量预估 /CVR 预估 / 投放节奏控制 ⑥ 用户 / 广告体验分析,涉及到: 统计理论 Casual Inference ( 因果推断 ) ⑦ 价格机制设计,涉及到: 博弈问题 增强学习 参考: Hulu:视频广告系统中的算法实践 来源: CSDN 作者: rosefunR 链接: https://blog.csdn.net/rosefun96/article/details

推荐系统与知识图谱(1)

旧巷老猫 提交于 2019-12-28 05:02:16
Reference: 推荐算法不够精准?让知识图谱来解决 个性化推荐系统作为一种信息过滤的重要手段,是当前解决信息超载问题的最有效的方法之一,是面向用户的互联网产品的核心技术。 推荐系统的任务和难点 按照预测对象的不同,推荐系统一般可以分成两类:一类是 评分预测 (rating prediction),例如在电影类应用中,系统需要预测用户对电影的评分,并以此为根据推送其可能喜欢的电影。这种场景下的用户反馈信息表达了用户的喜好程度,因此这种信息也叫 显式反馈 (explicit feedback);另一类是 点击率预测 (click-through rateprediction),例如在新闻类应用中,系统需要预测用户点击某新闻的概率来优化推荐方案。这种场景下的用户反馈信息只能表达用户的行为特征(点击/未点击),而不能反映用户的喜爱程度,因此这种信息也叫 隐式反馈 (implicit feedback)。 传统的推荐系统只使用用户和物品的历史交互信息(显式或隐式反馈)作为输入,这会带来两个问题:一,在实际场景中, 用户和物品的交互信息往往是非常稀疏(sparse) 的。例如,一个电影类APP可能包含了上万部电影,然而一个用户打过分的电影可能平均只有几十部。使用如此少量的已观测数据来预测大量的未知信息,会极大地增加算法的 过拟合 (overfitting)风险;二,

手淘双11 GMV 暴涨的秘密

痞子三分冷 提交于 2019-12-27 14:31:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 简介: 信息流作为手淘的一大流量入口,对手淘的浏览效率转化和流量分发起到至关重要的作用。在探索如何给用户推荐其喜欢的商品这条路上,我们首次将端计算大规模应用在手淘客户端,通过端侧丰富的用户特征数据和触发点,利用机器学习和深度神经网络,在端侧持续感知用户意图,抓住用户转瞬即逝的兴趣点,并给予用户及时的结果反馈。通过大半年的不断改进,手淘信息流端上智能推荐在9月中旬全量,并在双十一当天对信息流的点击量和GMV都带来了大幅的提升。下文将给大家分享我们在探索过程中发现的问题,对其的思考和解决方案。 作者 | 莫凌、桑杨、明依 背景 现状与解决方案 手淘上以列表推荐形式为主的业务场景有不少,以手淘信息流为例,进入猜你喜欢场景的用户,兴趣点常常是不明确的,用户浏览时往往没有明确的商品需求,而是在逛的过程中逐渐去发现想买的商品。而推荐系统在用户逛到买的过程中,往往会下发并呈现不同类型商品让用户从中挑选,推荐系统这个过程中会去捕捉用户的兴趣变化,从而推荐出更符合用户兴趣的商品。然而推荐系统能不能做到用户兴趣变化时立刻给出响应呢? 推荐系统以往的做法都是通过客户端请求后触发云端商品排序,然后将排序好的商品下发给用户,端侧再依次做商品呈现。这样存在下面两个问题: 云端推荐系统对终端用户推荐内容调整机会少,往往都在分页请求时

电影推荐系统

旧城冷巷雨未停 提交于 2019-12-26 07:51:17
什么是推荐系统 推荐系统是在面对用户信息过载的情况下,或者在用户没有明确购买信息的情况下,通过程序或工具自动化实现物品或商品的自动推荐过程。(而不依赖外部专家) 为了能够给用户推荐感兴趣的新奇,我们首先分析该用户的兴趣,从海量信息中选择出用户兴趣相似的信息,并讲这些信息推荐给用户。 推荐系统的任务就是能够连接信息与用户,帮助用户找到其感兴趣的信息,同时让一些有价值的信息能够到达潜在的用户中。 推荐系统一般由哪几部分? 推荐系统一般有三个部分组成,前端的交互界面,日志系统以及推荐算法系统。 推荐系统的应用场景特点是什么? (1)、存在信息过载的情况,用户不能很容易从所有物品中找到喜欢的物品。 (2)、用户大部分时候没有特别明确的需求 推荐系统的应用举例? (1)、电子商务:亚马逊,京东,淘宝,天猫… (2)、电影视频网站:Netflix, YouTube… (3)、个性化音乐网络电台:豆瓣电台,喜马拉雅,网易音乐… (4)、个性化广告:百度搜索引擎… … 用到的推荐算法 一、简述或举例子说明基于内容的推荐算法 基于内容的推荐算法,原理使用户喜欢和自己关注item在内容上类似item,比如你看了哈利波特,基于内容的推荐算法发现哈利波特ll-VI,与你之前观看的在内容上面(共有很多关键词)有很大关联性,就把后者推荐给你。 二、简述或举例说明基于模型的推荐算法

协同过滤算法智能推荐原理与实践

时光总嘲笑我的痴心妄想 提交于 2019-12-19 09:02:47
数据挖掘的一个经典案例就是尿布与啤酒的例子。尿布与啤酒看似毫不相关的两种产品,但是当超市将两种产品放到相邻货架销售的时候,会大大提高两者销量。很多时候看似不相关的两种产品,却会存在这某种神秘的隐含关系,获取这种关系将会对提高销售额起到推动作用,然而有时这种关联是很难通过经验分析得到的。这时候我们需要借助数据挖掘中的常见算法-协同过滤来实现。这种算法可以帮助我们挖掘人与人以及商品与商品的关联关系。 协同过滤算法是一种基于关联规则的算法,以购物行为为例。假设有甲和乙两名用户,有a、b、c三款产品。如果甲和乙都购买了a和b这两种产品,我们可以假定甲和乙有近似的购物品味。当甲购买了产品c而乙还没有购买c的时候,我们就可以把c也推荐给乙。这是一种典型的user-based情况,就是以user的特性做为一种关联。 一、业务场景描述 通过一份7月份前的用户购物行为数据,获取商品的关联关系,对用户7月份之后的购买形成推荐,并评估结果。比如用户甲某在7月份之前买了商品A,商品A与B强相关,我们就在7月份之后推荐了商品B,并探查这次推荐是否命中。 本次实验选用的是PAI-Studio作为实验平台,仅通过拖拽组件就可以快速实现一套基于协同过滤的推荐系统。本实验的数据和完整业务流程已经内置在了PAI首页模板,开箱即用: 二、数据集介绍 数据源:本数据源为天池大赛提供数据,数据按时间分为两份

推荐系统的常用算法原理和实现

故事扮演 提交于 2019-12-17 03:50:34
推荐算法介绍 基于人口统计学的推荐 这是最为简单的一种推荐 算法 ,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。 系统首先会根据用户的属性建模,比如用户的年龄,性别,兴趣等信息。根据这些特征计算用户间的相似度。比如系统通过计算发现用户A和C比较相似。就会把A喜欢的物品推荐给C。 优缺点: 不需要历史数据,没有冷启动问题 不依赖于物品的属性,因此其他领域的问题都可无缝接入。 算法比较粗糙,效果很难令人满意,只适合简单的推荐 基于内容的推荐 与上面的方法相类似,只不过这次的中心转到了物品本身。使用物品本身的相似度而不是用户的相似度。 系统首先对物品(图中举电影的例子)的属性进行建模,图中用类型作为属性。在实际应用中,只根据类型显然过于粗糙, 还需要考虑演员,导演等更多信息。通过相似度计算,发现电影A和C相似度较高,因为他们都属于爱情类。系统还会发现用户A喜欢电影A,由此得出结论,用户 A很可能对电影C也感兴趣。于是将电影C推荐给A。 优缺点: 对用户兴趣可以很好的建模,并通过对物品属性维度的增加,获得更好的推荐精度 物品的属性有限,很难有效的得到更多数据 物品相似度的衡量标准只考虑到了物品本身,有一定的片面性 需要用户的物品的历史数据,有冷启动的问题 协同过滤 协同过滤是推荐算法中最经典最常用的