推荐系统

协同过滤推荐算法

时光总嘲笑我的痴心妄想 提交于 2019-12-02 11:50:38
一、推荐算法 当你在电商网站购物时,天猫会弹出“和你买了同样物品的人还买了XXX”的信息;当你在SNS社交网站闲逛时,也会看到“你可能认识XXX“的信息;当你在微博添加关注人时,也会看到“你可能对XXX也感兴趣”等等。所有这一切,都是背后的推荐算法运作的结果。 推荐算法,不是某一个也不是某一类算法,凡是能实现推荐功能的算法(比如关联算法、分类算法、聚类算法),都可称之为推荐算法。 推荐功能就是为用户(User)推荐商品(Item)。 依据不同的角度,推荐大致分为以下几种: 1)基于内容的推荐:这一类一般依赖于自然语言处理NLP的一些知识,通过挖掘文本的TF-IDF特征向量,来得到用户的偏好,进而做推荐。这类推荐算法可以找到用户独特的小众喜好,而且还有较好的解释性。 2)基于流行度的推荐:常见的比如基于最多用户点击、最多用户浏览等,属于大众型的推荐方法,在目前的大数据时代并不主流。 3)基于人口统计信息的推荐:这一类是最简单的,它只是简单的根据用户的基本信息发现用户的相关程度,然后进行推荐,目前在大型系统中已经较少使用。 4)混合推荐:这个类似机器学习中的集成学习,博采众长,通过多个推荐算法的结合得到一个更好的。 5)协同过滤推荐:目前最主流的,花样繁多,在工业界已经有了很广泛的应用。它的优点是不需要太多特定领域的知识,可以通过基于统计的机器学习算法得到较好的推荐效果。工程上容易实现

推荐系统简介

允我心安 提交于 2019-12-02 03:34:59
推荐系统简介 概述 用户有明确需求的情况下,通过搜索引擎找到自己需要的东西。用户没有明确的需求呢?比如说,某个周日的下午,你想看一部电影,但打开视频网站后,面对各种类型的电影,不知如何挑选。推荐系统为了解决这个问题就应运而生; 无论是在互联网上,还是在现实生活中,这两种方式都大量并存,为互补关系。以在商场买东西为例,如果我们清楚地知道自己想要买什么、什么型号、什么款式、什么颜色的话,直接去店里买就好了,这就是“搜索”;如果我们不太清楚自己需要的东西的大小、型号、款式、价格等,那就需要导购来告诉我们哪一款商品符合我们的需求,这就是“推荐”。 从用户的角度来看,搜索引擎和推荐系统是用户获取信息的两种不同手段。搜索引擎满足了用户有明确目的时的主动查找需求,而推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容。 马太效应 & 长尾效应 马太效应(Matthew Effect),指强者越强、弱者越弱的现象。这一理论出自圣经《新约·马太福音》一则寓言: “凡有的,还要加倍给他叫他多余;没有的,连他所有的也要夺过来”,这与“二八法则”相似,通俗来说,就叫“赢家通吃”。百度的搜索点击为例,越是排名靠前的搜索结果,用户越有可能点击,排名靠后的结果以及翻页后的结果被点击的可能性大大减少。 长尾效应。美国《连线》杂志主编Chris Anderson在2004年发表了"The Long

推荐系统

懵懂的女人 提交于 2019-12-01 19:16:26
<div id="cnblogs_post_body" class="blogpost-body "> <blockquote> <p>58同城作为中国最大的分类信息网站,向用户提供找房子、找工作、二手车和黄页等多种生活信息。在这样的场景下,推荐系统能够帮助用户发现对自己有价值的信息,提升用户体验,本文将介绍58同城智能推荐系统的技术演进和实践。</p> </blockquote> <p>58同城智能推荐系统大约诞生于2014年(C++实现),该套系统先后经历了招聘、房产、二手车、黄页和二手物品等产品线的推荐业务迭代,但该系统耦合性高,难以适应推荐策略的快速迭代。58同城APP猜你喜欢推荐和推送项目在2016年快速迭代,产出了一套基于微服务架构的推荐系统(Java实现),该系统稳定、高性能且耦合性低,支持推荐策略的快速迭代,大大提高了推荐业务的迭代效率。此后,我们对旧的推荐系统进行了重构,将所有业务接入至新的推荐系统,最终成功打造了统一的58同城智能推荐系统。下面我们将对58同城智能推荐系统展开介绍,首先会概览整体架构,然后从算法、系统和数据三方面做详细介绍。</p> <p>整体架构首先看一下58同城推荐系统整体架构,一共分数据层、策略层和应用层三层,基于58平台产生的各类业务数据和用户积累的丰富的行为数据,我们采用各类策略对数据进行挖掘分析,最终将结果应用于各类推荐场景。</p>

推荐系统系列(二):FFM理论与实践

可紊 提交于 2019-12-01 18:29:48
背景 在CTR/CVR预估任务中,除了FM模型[2] 之外,后起之秀FFM(Field-aware Factorization Machine)模型同样表现亮眼。FFM可以看作是FM的升级版,Yuchi Juan于2016年提出该模型,但其诞生是受启于Rendle在2010年发表的另一个模型PITF [3](FM也是Rendle在2010年发表的),其论文原文 [1] 中写道: The idea of FFM originates from PITF proposed for recommender systems with personalized tags. 在各种深度推荐模型出来之前,FM/FFM模型在各大推荐相关的竞赛中大放异彩。今天,我们就来好好梳理一下FFM的原理以及如何将理论转化为实践。 分析 1. FFM公式定义 相较于FM模型,FFM模型引入了域(Field)的概念(该想法来源于PITF [3]),可看做是对特征进行分组。例如,对于性别特征而言,通常有两种取值 \(female\) 、 \(male\) 。对值进行one-hot编码之后性别特征会拆分为两个独立的特征 \(x_{female}\) 和 \(x_{male}\) 。显然,这两个特征具有共同的性质:都属于性别。所以可以将这两个特征归在同一个Field下,即有相同的Field编号。不同域的特征之间

思考:推荐系统中对照实验的基准一定要有?

怎甘沉沦 提交于 2019-12-01 18:28:07
思考:推荐系统中对照实验的基准一定要有? 新增一个模型,这个模型的对照就是之前的模型(第一个上线的模型可以作为对照模型或者最好的那个模型作为对照)作为基准; 如果要优化一个模型(V1),可以把普通模型当做基准;如果想对模型的数据(包括特征个数的不同)进行对照,那么就再开发一个V2即可,后续 相同性质(比如新增或者减少一些特征等)的对照就在V2上面修改即可(V2和V1对照,V2也可以和普通(基准)模型对照); 来源: https://www.cnblogs.com/big1987/p/11712041.html

程序员转型架构师,推荐你读这几本书

随声附和 提交于 2019-12-01 15:24:41
从CRUD的程序员,到系统的架构师,进阶推荐读这几本书。架构师书单分为两部分,第一部分是关于系统架构的方法论,包括领域驱动设计,微服务,整洁架构,第二部分介绍各大互联网大公司是如何做系统架构落地实践。 程序员书单会做成一个系列,会推荐面试,职业规划,软技能等不同主题的书单,同时我会在博客和公众号「架构进化论」中,对书单中推荐的好书做解读,欢迎持续关注。 一、方法论 《领域驱动设计》 这本书可以帮助我们理解用代码呈现真实世界的重要性,并且告诉我们如何更好地进行建模。 简而言之,这本书提供了深入的架构洞察力,并帮助你在不断变化的环境中创建强大的系统,最重要的是,Eric Evans用开发人员可以理解的语言来描述,非常难得。 书中给出了领域驱动设计的系统化方法,并将人们普遍接受的一些实践综合到一起,融入了作者的见解和经验,展现了一些可扩展的设计新实践、已验证过的技术以及便于应对复杂领域的软件项目开发的基本原则。 《架构整洁之道》 来自传奇人物Robert C. Martin的实用软件架构解决方案,作者还有另外一本非常经典的书《代码整洁之道》。 干净的架构对于每一个软件架构师、系统分析师、系统设计师和软件管理人员来说都是必不可少的,想要成为软件架构师,这本书一定是必不可少的。 《微服务设计》 这是一本了解现代分布式软件设计和体系结构的好书,特别是微服务,如Uber,Facebook

推荐系统| 概述

混江龙づ霸主 提交于 2019-12-01 13:54:06
推荐系统的目的 信息过载 推荐系统 推荐系统是信息过载所采用的措施,面对海量的数据信息,从中快速推荐出符合用户特点的物品。解决一些人的“选择恐惧症”;面向没有明确需求的人。 解决如何从大量信息中找到自己感兴趣的信息。 解决如何让自己生产的信息脱颖而出,受到大众的喜爱。 目的: 让用户更快更好的获取到自己需要的内容 让内容更快更好的推送到喜欢它的用户手中 让网站(平台)更有效的保留用户资源 推荐系统的基本思想 利用用户和物品的特征信息,给用户推荐那些具有用户喜欢的特征的物品。 利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品。 利用和用户相似的其他用户,给用户推荐那些和他们兴趣爱好相似的其他用户喜欢的物品。 知你所想,精准推送 利用用户和物品的特征信息,给用户推荐那些具有用户喜欢的特征的物品。 物以类聚 利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品。 人以群分 利用和用户相似的其他用户,给用户推荐那些和他们兴趣爱好相似的其他用户喜欢的物品。 推荐系统的数据分析 要推荐物品或内容的元数据,例如关键字,分类标签,基因描述等; 系统用户的基本信息,例如性别,年龄,兴趣标签等 用户的行为数据,可以转化为对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等。这些用户的偏好信息可以分为两类:       ①显式的用户反馈

网易云音乐歌单的推荐算法

。_饼干妹妹 提交于 2019-12-01 13:27:01
这里我想给大家介绍另外一种推荐系统,这种算法叫做潜在因子(Latent Factor)算法。这种算法是在NetFlix(没错,就是用大数据捧火《纸牌屋》的那家公司)的推荐算法竞赛中获奖的算法,最早被应用于电影推荐中。这种算法在实际应用中比现在排名第一的算法误差(RMSE)会小不少,效率更高。我下面仅利用基础的矩阵知识来介绍下这种算法。 这种算法的思想是这样:每个用户(user)都有自己的偏好,比如A喜欢带有小清新的、吉他伴奏的、王菲等元素(latent factor),如果一首歌(item)带有这些元素,那么就将这首歌推荐给该用户,也就是用元素去连接用户和音乐。每个人对不同的元素偏好不同,而每首歌包含的元素也不一样。我们希望能找到这样两个矩阵: 一,用户-潜在因子矩阵Q, 表示不同的用户对于不用元素的偏好程度,1代表很喜欢,0代表不喜欢。比如下面这样: 二, 潜在因子-音乐矩阵P ,表示每种音乐含有各种元素的成分,比如下表中,音乐A是一个偏小清新的音乐,含有小清新这个Latent Factor的成分是0.9,重口味的成分是0.1,优雅的成分是0.2…… 利用这两个矩阵,我们能得出张三对音乐A的喜欢程度是:张三对 小清新 的偏好*音乐A含有 小清新 的成分+对 重口味 的偏好*音乐A含有 重口味 的成分+对 优雅 的偏好*音乐A含有 优雅 的成分+…… 即:0.6*0.9+0.8*0

网易云音乐推荐系统简单实现系列(1)

六月ゝ 毕业季﹏ 提交于 2019-12-01 13:26:27
笔者最近面试到了网易新闻推荐部门,考了一点推荐系统的知识,算是被虐惨了。于是乎自己怒补了一些知识。记录一点关于推荐系统的知识和实现。 音乐推荐系统,这里的简单指的是数据量级才2万条,之后会详细解释。 1. 推荐系统工程师人才成长RoadMap 2. 1. 数据的获取 任何的机器学习算法解决问题,首先就是要考虑的是数据,数据从何而来? 对于网易云音乐这样的企业而言,用户的收藏和播放数据是可以直接获得的,我们找一个取巧的方式,包含用户音乐兴趣信息,同时又可以获取的数据是什么? 对的,是热门歌单信息,以及歌单内歌曲的详细信息。 3. 数据爬虫脚本 代码说明: 1. 网易云音乐网络爬虫由于加了数据包传动态参数的反爬措施。拿到歌单数据包的难度很大。一大神破解了传参动态密码,代码中AES算法。 2. 但是不知道为什么这个python2.7版下脚本只能爬取每个歌单里面的10首歌,由于这个原因,导致我们的推荐系统原始数据量级骤然降低。笔者试了很久,也没有办法。望大家给点建议。不管怎样,数据量小,那咱们就简单实现就好。 3. 一共1921个歌单(json文件),每个歌单里面包含10首歌,所以咱们后面建模的数据量实际只有2W左右的实例。 # -*- coding:utf-8 -*- """ 爬虫爬取网易云音乐歌单的数据包保存成json文件 python2.7环境 """ import requests