1 概述
个性化推荐系统 作为一种信息过滤系统,个性化推荐系统在近几年得到了学术界和工业界的广泛关注。这与互联网的信息爆炸是分不开的,只有信息量超过了用户的处理能力,推荐系统才能发挥重要作用。
个性化推荐算法都来自于传统的机器学习和数据挖掘的算法,并没有什么特殊的地方。个性化推荐系统的特殊之处在于对用户行为和用户心理的研究。
推荐系统的架构基本上可以划分为:用户特征提取模块,相关物品检索模块,推荐结果排序模块。
2 用户特征提取
为了方便机器处理高效,首先需要对于用户特征降维。例如根据用户的历史兴趣将用户分成不同的类别,诸如历史爱好者、科技爱好者等等。
降维的第一种方法是聚类。机器学习中的聚类算法大体分为硬聚类(hard clustering)和软聚类(soft clustering)。
硬聚类的代表算法是K-Means 和层次聚类,硬聚类的缺陷是结果只属于一种类别,现实中用户的特征属于多种类别。
推荐中的常用软聚类算法是主题模型。。在主题模型中,每个类被称为隐类(latent class),而每个文档在不同的隐类上都有一个概率分布来表示文档属于该类的概率。
3 相关物品检索模块
在获得用户兴趣特征后,系统需要根据特征找到和用户相关的物品。即计算相关度。
有两种算法可以用来计算物
品的相关度:
● 基于内容的物品相关度算法;
● 基于用户行为的物品相关度算
法(collaborative filtering)。
我们可以从多种角度建立相关度。但是需要用户/专家反馈来融合多种相关度,从而得到用户认可的相关度。
4 推荐结果排序
虽然相关物品检索会得到物品--用户的相关度,但是却不能简单的按照相关度排序。因为不同的特征得到的相关度不同,彼此之间不能比较。需要有统一的指标来表明用户对物品的兴趣,进行排序。
常用的排序指标是点击率,点击率预估模块的任务就是计算用户对每个候选物品的点击率,然后将物品按照点击率排序并输出。
点击率预估问题可以转化为传统的两类分类问题(这是因为可以分为“会不会点击”其实是一个分类问题)。通过分类得到特征权重,然后排序。
两类分类问题首先要生成数据集。数据集由样本组成,样本有特征和类标组成。
例如,用户A 在2013 年1 月1 日在首页看到了书b,但没有点击。根据日志, 发现用户A 在2013 年1 月1 日之前购买过图书a、c,给图书e 评过5 分。图书b 的作者是x。从用户行为出发,可以得到如下用户特征:
{uid_A, buy_a, buy_c, vote_e_5}
从图书出发,可以得到如下的特征:
{book_b, author_x}
然后得到联合特征,如表1所示:
{ u i d _A- b o o k _ b , u i d _A-author_x, buy_a-book_b, buy_a-author_x, buy_c-book_b, buy_cauthor_x, vote_e_5-book_b, vote_e_5-author_x}
最终可以从这条日志得到一个样本,该样本的类标是0(负样本),特征是:
{uid_A, buy_a, buy_c, vote_e_5, book_b, author_x, uid_Abook_b, uid_A-author_x, buy_a-book_b, buy_a-author_x, buy_cbook_b, buy_c-author_x, vote_e_5-book_b, vote_e_5-author_x}
扫描日志得到数据集。假设用线性分类器,可以得到特征的权重:如果分类器学习到buy_a-book_b 这个特征有比较大的权重,这就代表购买过图书a 的用户倾向于点击图书b
用于点击率预估的分类算法主要是逻辑回归LR。
附注:
(1)主题模型包含了一类模型,其中著名的模型有基于概率的主题模型, 其中有pLSA、LDA,也有基于矩阵分解的主题模型,包括传统的奇异值分解(singular value decomposition,SVD)、非负矩阵分解等等。
(2)机器学习算法中的两类分类器,比如:逻辑回归(LogisticRegression)、支持向量机(SVM)、决策树/ 促进树(Decision Tree /Boosting Tree)和神经网络(NeuralNetwork)。
摘要自《机器学习,数据挖掘在个性化推荐系统中的应用》--项亮