推荐系统实践 0x0c FM系列】的更多相关文章

逻辑回归(LR) 在介绍FM系列之前,我想首先简单介绍一下逻辑回归.通常来说,逻辑回归模型能够综合利用更多的信息,如用户.物品.上下文等多种不同的特征,生成更为全面的结果.另外,逻辑回归将推荐问题看成一个分类问题.通过预测正样本的概率对物品进行排序,这里的正样本可以是用户观看了某个视频,也可以是用户点击了某个商品,或者用户播放了某个音乐等等.逻辑回归模型将推荐问题转换成了CTR(click throught rate)预估的问题. 步骤 一般来说,逻辑回归模型的推荐过程分成以下几步: 将用户年龄…
在计算广告中,CTR是非常重要的一环.对于特征组合来说,业界通用的做法主要有两大类:FM系列和Tree系列.这里我们来介绍一下FM系列. 在传统的线性模型中,每个特征都是独立的,如果需要考虑特征与特征之间的相互作用,可能需要人工对特征进行交叉组合.非线性SVM可以对特征进行核变换,但是在特征高度稀疏的情况下,并不能很好的进行学习.现在有很多分解模型可以学习到特征之间的交互隐藏关系,基本上每个模型都只适用于特定的输入和场景.推荐系统是一个高度稀疏的数据场景,由此产生了FM系列算法. 本文主要涉及四…
前一篇文章我们介绍了LR->FM->FFM的整个演化过程,我们也知道,效果最好的FFM,它的计算复杂度已经达到了令人发指的\(n^2k\).其实就是这样,希望提高特征交叉的维度来弥补稀疏特征,不可避免的带来组合爆炸和计算复杂度过高的问题.这一篇,我们介绍一下Facebook提出的GBDT+LR的组合来解决特征组合和筛选的问题. 结构 整体的思路就是用GBDT构建特征工程,使用LR预估CTR这两步.由于这两步是独立的,所以不存在将LR的梯度回传到GBDT这类复杂问题.关于GBDT,就需要另外开一…
利用用户行为数据 简介: 用户在网站上最简单存在形式就是日志. 原始日志(raw log)------>会话日志(session log)-->展示日志或点击日志 用户行一般分为两种: 1显性反馈:包括用户明确表示对物品喜好的行为(数据量小) 2隐形反馈:网页浏览等(数据量大) 用户行为的统一标准如下: 协同滤波与实验设计: 本文参考<推荐系统实践>这本书,但细节和书中略有不同,因为个人把书中代码组合到一起有些小问题,所以自己小修改了一番,可以运行,与大家分享. 实验数据集: 采用…
挺实在 今天为大家分享下京东电商推荐系统实践方面的经验,主要包括: 简介 排序模块 实时更新 召回和首轮排序 实验平台 简介 说到推荐系统,最经典的就是协同过滤,上图是一个协同过滤的例子.协同过滤主要分为俩种:user-based 基于用户的协同过滤和 item-based 基于商品的协调过滤. 但是,现在绝大多数推荐系统都不会直接使用协同过滤来做推荐.目前主要用的是 learningtorank 框架. 这里,是推荐系统的框架,整个推荐系统可以分为两部分,在线部分和离线部分. 在线部分主要负责…
因子分解机(Factorization Machine,简称FM)算法用于解决大规模稀疏数据下的特征组合问题.FM可以看做带特征交叉的LR. 理论部分可参考FM系列,通过将FM的二次项化简,其复杂度可优化到\(O(kn)\).即: \[ \hat y(x) = w_0+\sum_{i=1}^n w_i x_i +\sum_{i=1}^n \sum_{j=i+1}^n ⟨vi,vj⟩ x_i x_j \\ =w_0+\sum_{i=1}^n w_i x_i + \frac{1}{2} \sum_{…
基于邻域的算法(2) 上一篇我们讲了基于用户的协同过滤算法,基本流程就是寻找与目标用户兴趣相似的用户,按照他们对物品喜好的对目标用户进行推荐,其中哪些相似用户的评分要带上目标用户与相似用户的相似度作为权重来计算.但是,基于用户的协同过滤算法存在一些弊端,如计算用户兴趣相似度矩阵将越来越困难,其运算时间复杂度和空间复杂度的增长和用户数的增长近似于平方关系,另外也很难对推荐结果进行解释.那么,这一篇我们继续来了解一下基于物品的协同过滤算法. 基于物品的协同过滤算法(ItemCF) 基于物品的协同过滤…
前言 推荐系统实践那本书基本上就更新到上一篇了,之后的内容会把各个算法拿来当专题进行讲解.在这一篇,我们将会介绍矩阵分解这一方法.一般来说,协同过滤算法(基于用户.基于物品)会有一个比较严重的问题,那就是头部效应.热门的物品容易跟大量的物品产生相似性,而尾部的物品由于特征向量系数很少产生与其他物品的相似性,也就很少被推荐. 矩阵分解算法 为了解决这个问题,矩阵分解算法在协同过滤算法中共现矩阵的基础上加入了隐向量的概念,也是为了增强模型处理稀疏矩阵的能力.物品和用户的隐向量是通过分解协同过滤的共现…
用户行为数据的二分图表示 用户的购买行为很容易可以用二分图(二部图)来表示.并且利用图的算法进行推荐.基于邻域的模型也可以成为基于图的模型,因为基于邻域的模型都是基于图的模型的简单情况.我们可以用二元组\((u,i)\)来表示用户\(u\)对物品\(i\)有过购买行为,这样的话数据集可以用一个二分图来表示.我这里尝试画一个二分图(有点丑,不要介意哈): graph LR A(A) -->a[a] A(A) -->b[b] A(A) -->d[d] B(B) -->b[b] B(B)…
本系列文章从Extjs的实际运用出发,结合系统开发的实践经验,详细解释Extjs的基本控件及控件扩展的用法,和在平时的学习运用中一步一步查阅的资料.积累经验的集锦.标题及链接奉上,用一个小程序,开启了我的Extjs之旅,下面2-8写的是具体的系统内部使用Extjs各种控件及控件扩展的功能介绍. 1.Extjs-初学者在.NET环境下的学习extjs拼写代码的心得 2.Extjs-从最初的textfield控件学起 3.Extjs的ComboBox控件 4.Extjs的DataField.Chec…