推荐系统实战

标签: 推荐系统 | 发表时间:2012-09-26 12:02 | 作者:zhenjing
出处:http://www.cnblogs.com/

推荐算法:基于特征的推荐算法

推荐算法准确度度量公式:

其中,R(u)表示对用户推荐的N个物品,T(u)表示用户u在测试集上喜欢的物品集合。

集合相似度度量公式(N维向量的距离度量公式):

Jaccard公式:

其中,N(u)表示用户u有过正反馈的物品集合。

余弦相似度公式:

UserCF公式:

其中,S(u,k)表示和用户u兴趣最接近的K个用户集合;N(i)表示对物品i有过正反馈的用户集合;w(u,v)表示用户u和用户v的兴趣相似度;r(v,i)表示用户v对物品i的兴趣。默认取r(v,i)=1或0。

 

视角:用户即是特征。完全的个性化,每个用户都是唯一的,每个用户表示一维的特征。用户数量即是特征空间的维度,用户特征表示成TU(u)={0,0,0, ... , 1, ..., },t(u, u)=1, 其余为0。 对于物品的特征向量TI(j)={0, 1, 1, 1, 0, ... , ...}, 凡购买物品i的用户维度特征均为1。 进一步,物品的特征空间可用用户购买的次数表示。相似度w(u,v)看成相应维度特征的加权值。

ItemCF公式:

其中,S(i,k)表示和物品i最相似的K个物品集合;N(u)表示用户喜欢的物品集合;w(i,j)表示物品i和物品j的相似度;r(u,i)表示用户u对i物品的兴趣。默认取r(u,i)=1或0。

 

视角:物品即是特征。每个物品都是唯一的,每个物品表示一维的特征。物品数量即是特征空间的维度,物品特征表示成TU(u)={0,0,0, ... , 1, ..., },t(u, u)=1, 其余为0。 对于用户的特征空间TI(j)={0, 1, 1, 1, 0, ... , ...}, 凡购买物品i的维度特征均为1。 进一步,物品的特征空间可用用户购买的次数表示。相似度w(i,j)看成相应维度特征的加权值。

LFM公式:

其中,F表示隐类数量;p(u,k)表示用户u对第k个隐类的兴趣度;q(i,k)表示第k个隐类和物品i的相似度。Alpha表示学习速率;lamda表示正则化参数。

 

视角:LFM的公式就是典型的特征向量空间和特征加权矩阵的泛化表示形式。

TagCF公式:

n(u,b)表示用户u打过标签b的次数;n(b,j)表示物品i被打过标签的次数。

 

视角:标签即是特征。

关系链推荐公式:

其中,F(u)表示用户u的好友集合;w(u,v)可表示用户u和v的熟悉程度(共同好友数),也可表示用户u和v兴趣的相似度(UserCF定义),也可是二者的综合度量;r(v,i)表示用户v对物品i的兴趣。默认取r(v,i)=1或0。

 

视角:好友是特征,或者好友兴趣是特征。

信息流推荐公式:

其中,信息流i的边e表示其他用户对信息流i产生行为;E(e)表示和信息流i边的集合;v(e)表示用户v和当前用户u的相似度(熟悉度);w(e)表示边类型的权重;d(e)表示边e的时间衰减参数。

推荐算法小结

所有的推荐算法都可看成是基于特征向量空间和特征加权矩阵的推荐算法。

 

当特征向量的维度很大时,基于特征向量空间和特征加权矩阵的推荐算法计算复杂度将很大。常见的做法是采用降维技术,比如使用minhash(simhash)。另一种做法是先聚类,将N维的特征空间,转变成M维的特征空间(M<N)。比如在ItemCF算法中,可对物品聚类,然后采用M类的物品作为特征。当然降维后需要计算权值矩阵。

 

另一种极致做法:抛弃权值矩阵,在分类的基础上,直接根据类别推荐。即基于特征向量的匹配。

基于特征匹配的算法框架(用户或物品均可):

1) 特征选取

a) 已知用户特征:直接根据特征分类

b) 未知用户特征:聚类,如LFM

2) 利用购买用户特征,计算物品的特征。比如简单选取TopN个用户特征作为物品的特征;

3) 根据用户特征和物品特征实现推荐,如果特征空间有限(类别不多),可采用类别推荐;如果特征空间巨大,可通过计算特征距离实现推荐。

3种关联用户和物品的推荐系统

 

基于特征的推荐算法

说明:当用户喜欢多个特征,物品具有多个特征时,即是典型的特征向量空间和特征加权矩阵的推荐算法;当用户只喜欢1个特征,物品只具有单个特征时,即基于特征分类的推荐算法。

在实际应用中,常常采用多个推荐算法,分别实现不同的推荐引擎,最后根据不同的推荐引擎的结果做融合,即算法融合,常见的就是加权融合。

推荐系统架构

 

实际推荐系统通常采用多种推荐算法,并根据用户的实时行为反馈调整用户的特征向量(特征的加权系数),进而融合各个推荐算法的推荐结果,在此基础上过滤不要的推荐项,最后结合用户使用场景调整推荐结果排名,给出最终推荐结果。

基于不同特征的推荐算法经常采用定期计算、定期更新特征物品推荐表,比如基于Item的相似度特征,可保存每个item最相关的K个Item;基于用户,保留每个用户最近的N个item;基于基于tag特征,保存每个tag最多次数的M个item;基于用户年龄特征,保存每个年龄段最热门的N个Item;基于用户like,保存各个用户最近喜欢的N个item,或最喜欢的M个类别……

用户的实时行为反馈和用户当前场景都将实时影响最终的推荐结果,用户的实时反馈可直接影响推荐结果融合,而用户的场景将决定推荐结果的排序和展示。同时用户的反馈也将影响离线计算的物品推荐数据。

参考文献:

推荐系统实践  -- 项亮 2012

Hulu’s Recommendation System

本文链接

相关 [推荐系统] 推荐:

Min-Hash和推荐系统

- - xlvector - Recommender System
前几年看Google News Recommendation的那篇Paper,对里面提到的MinHash的算法基本没有注意,因为之前的习惯都是只注意论文的模型那块,至于怎么优化模型一般都只是扫一眼. 不过最近看了大量的Google Paper,发现Google在实现一个算法方面确实有很多独到之处. 其实,Min-Hash是LSH(Locality Sensitive Hash)的一种,我之前对LSH的了解仅仅限于知道它能把两个相似的东西Hash成两个汉明距离接近的2进制数.

推荐系统实战

- - 博客园_首页
推荐算法:基于特征的推荐算法. 推荐算法准确度度量公式:. 其中,R(u)表示对用户推荐的N个物品,T(u)表示用户u在测试集上喜欢的物品集合. 集合相似度度量公式(N维向量的距离度量公式):. 其中,N(u)表示用户u有过正反馈的物品集合. 其中,S(u,k)表示和用户u兴趣最接近的K个用户集合;N(i)表示对物品i有过正反馈的用户集合;w(u,v)表示用户u和用户v的兴趣相似度;r(v,i)表示用户v对物品i的兴趣.

推荐系统杂谈

- - 后端技术杂谈 | 飒然Hang
推荐系统是近些年非常火的技术,不管是电商类软件还是新闻类app,都号称有精准的推荐系统能给你推送你最感兴趣的内容. 现象级的资讯类app“今日头条”就得益于此成为了势头非常猛的一款产品. 本文就针对推荐系统讲述一些相关概念和实践经验. 首先需要明确的就是推荐系统的目标,一般来说不外乎以下几个:. 用户满意性:首当其冲的,推荐系统主要就是为了满足用户的需求,因此准确率是评判一个推荐系统好坏的最关键指标.

个性化推荐系统综述

- Tony - 所有文章 - UCD大社区
上个月写过一篇产品推荐的文章,详情请见《我所了解的产品推荐》,内容很泛,多为工作心得. 本周读了几篇相关的论文,收获颇多,分享点干货. 以下内容摘自《个性化推荐系统的研究进展》,该文发表于2009年1月的《自然科学进展》专题评述,作者是刘建国、周涛、汪秉宏. 我略去了具体的算法和许多公式,重点看原理、思路和比较.

推荐系统开源工具 – SVDFeature

- Roger - Resys China
SVDFeature是我们(上海交大Apex实验室)在参加KDDCUP 2011期间开发的. 通过这个工具,我们和港科大(HKUST)的联合小组InnerPeace在KDDCUP 2011中获得Track 1第三名,并创造单模型最好成绩. 在此分享给大家,并希望和大家有更多的交流. (1)基于feature的可扩展性 —— SVDFeature实现了我们的基础模型feature-based matrix factorization.

Reculike : 开源论文推荐系统

- votis - Resys China
今天这篇博文主要总结一下reculike的系统架构. 两周前我们宣布发布了reculike的alpha版. 本着分享的原则,今天在这儿介绍一下我们的各个模块的设计方法. 我们这个项目一开始叫paperlens,这是因为我们想学习业界的前辈movielens,开发一个源代码和数据都开源的系统. 关于数据的开源,我想当用户数达到一定程度后,每个月会dump一次我们所有的数据库(密码等隐私信息除外),放到网络上供大家下载.

推荐系统那些事儿1

- - 冰火岛
知识库:用户知识库,Item知识库,用户评分数据(显性和隐性)等.不同的业务背景不一样,譬如电商,社交网络,视频,app应用等. 协同过滤引擎:根据用户评分数据集,通过collaborative filtering方法,计算用户喜欢的top N item. 数据格式: userid, itemid,score.

下一代个性化推荐系统

- - 技术改变世界 创新驱动中国 - 《程序员》官网
本文结合技术及社会需求发展的大背景,讲述了当前推荐系统的价值及所面临的挑战,并指出了下一代个性化推荐系统的设计思路及需要注意的问题. 作为个性化推荐系统核心的协同过滤(Collabora-tive Filtering)算法,是Goldberg等人在1992年的一篇学术论文中最早提出的. 他们在这篇文章中提出一种方法,在一个新闻组中,根据 用户下载的新闻计算他们之间在口味上的相似程度,并利用这种相似程度为他们进一步推荐相关的新闻.

淘宝推荐系统的学习

- - 标点符
维基百科:推荐系统属于资讯过滤的一种应用. 推荐系统能够将可能受喜好的资讯或实物(例如:电影、电视节目、音乐、书籍、新闻、图片、网页)推荐给使用者. 推荐系统大体可分为两类,即个性化推荐和非个性化推荐. 好的推荐系统更像一个有经验的网站导购员. 不同点:搜索是通过用户主动输入的关键字进行查询. 推荐则是用户在浏览网站的过程中,不一定需要用户输入,根据当前网页的上下文进行个性化的信息输出.

推荐系统那些事儿2

- - 冰火岛
学名:co –occurrence. 隐性数据:视频,社交网络,电子商务中的共同浏览,共同购买,互粉等等,对于一些隐性数据,计算共同行为,这也是最简单的. 一般的方式是,写个sql 自连接. 部分人定义为协同过滤思想,姑且看做狭义定义. 实际处理中,需要经过数据预处理,包括业务上的和技术上的. 这里,可以采用LoglikelihoodSimilarity作为相似性度量方式.