推荐系统综述与代码
By Joey周琦
引言与符号介绍
一般来说,推荐系统可以归纳为,预测user对某item的评分或者点击率。问题描述如下
user对item的互动,主要可以分为下面三个方面:
- scalar. (numerical(rating),ordinal). 标量的
- binary. (like,dislike) 二项的,0 or 1, 点or不点等
- unary. (purchase,online access,etc) 。一元的,如购买,在线等
为了表述清晰,我们做一下符号说明
- item:商品,user:用户 (后面可能会混合叫)
- U : 用户集合
-
I : 商品集合 - R : 用户对商品的评分集合(或点击率等)
-
S : 评分集合的可能值域 (e,g, S=[1,...,5]orlike,dislike ) - rui : 用户u给item i 的评分
- Ui : 评价过商品i的用户集合
- Iu : 用户u评价过的item集合
- Iuv=Iu∩Iv , Uij=Ui∩Uj
- N(u) : 用户u的KNN(K个最近邻)
- Ni(u) :评价过item i的用户u的KNN最近邻
- Nu(i) : 被用户u评价过的商品i的最近邻
若用效用函数 f 衡量用户u对商品i的兴趣, i.e,
用户空间 U 的每个用户可以由一个profile(用户资料,画像)来代表,这个profile可以包含 用户基础属性(性别,年龄,地域,学历),历史行为(用户ID)等。
商品空间
用户的explicit feedback (显性反馈)行为可以分为下面三种,这类信息比较少,但比较准确。
* like/dislike
* ratings
* text comments
用户的implicit feedback (隐形反馈)行为可以为下面这些:保存,点击,放弃,打印,标签。这些行为不需要用户直接性的参与。这类信息比较多,但没有显性那么准确。
一般来说推荐系统可以分为两类
- 基于内容的推荐系统 (Content-based recommendations,CB). 根据用户的浏览历史item的内容,给用户推荐相似内容的item
- 协同滤波推荐系统 (Collaborative filtering recommendations, CF). 给用户推荐与其相似用户看过的商品user-CF,或给用户推荐其看过的商品的相似商品item-CF. 这里的相似不是从内容分析,而是看过相同内容越多的用户则越相似,被相同用户看过越多则越相似。
- 混合上述方法
基于内容的推荐系统Content based
基于内容的推荐系统(CB)通过分析user过去的评分、点击等行为,为每一个user建立一个画像(profile)或模型(model). 画像可以结构化代表user的兴趣等,可以用来给用户带来新的推荐。基于内容的信息过滤需要一些技术(自然语言处理,信息提取,如tf-idf等)来代表每个物品item和用户画像,并且需要策略对比用户画像与item的相似度。
基于内容的效用函数可以定义为 f(u,i) :
- Content(i) 是item的画像. ContentBasedProfile(u) is the用户u的画像。
- Content(i) and ContentBasedProfile(u) 可以用tf-idf向量(或其他技术)代表。
很多机器学习的方法,如朴素贝叶斯、神经网络、决策树等算法可以应用于基于内容的推荐中。(个人理解是利用向量代表作为特征,点击或平分作为label,来训练分类算法?)
基于内容的推荐框架如下图
CB有如下优势:
- USER INDEPENDENCE - Content-based recommenders exploit solely ratings provided by the active user to build her own profile
- 用户独立性:只根据用户自己的历史行为构建用户画像
- 可解释性强
- CB可以推荐没有任何行为的item,因为可以通过内容分析
CB的一些限制:
- 有限的内容分析:对于声音、图像的内容分析技术有限
- 推荐过细:系统只会推荐和用户历史行为内容相关的item,缺乏新颖性
- 对新用户推荐有难度(因为没有历史行为)
代表item(Item Representation)
在大部分cb系统中,item的描述是从网页,文章,评论,内容等重提取的文字特征。由于语言的多义性(language ambiguity),对于文字特征,一些复杂的问题需要处理:
- POLYSEMY, the presence of multiple meanings for one word;
- POLYSEMY, 一词多义
- SYNONYMY, 多词同义
基于关键词的向量空间模型
大部分基于内容的推荐系统都是比较简单的检索模型,如关键字匹配或向量空间模型(基于td-idf权重)。 假设
Most content-based recommender systems use relatively simple retrieval models, such as keyword matching or the Vector Space Model (VSM) with basic TF-IDF weighting. Let D=d1,d2,⋯,dN denote a set of documents or corpus, and T=t1,t2,⋯,TN be the dictionary, that is to say the set of words in the corpus. T is obtained by applying
some standard natural language processing operations, such as tokenization, stopwords
removal, and stemming. Each item