07_推荐系统算法详解

?人口统计推荐和用户画像,基于内容的推荐,基于协同过滤的推荐。

1基于人口统计的推荐机制是最容易实现的推荐方法之一。它只是根据系统用户的基本信息发现用户的相关性,然后将相似用户喜欢的其他物品推荐给当前用户。

2.对于没有明确含义的用户信息(如登录时间、地域等上下文信息),可以通过聚类等方式对用户进行标注。

3.对于有特定标签的用户,可以根据预设的规则(知识)或模型推荐相应的物品。

4.标记用户信息的过程通常称为用户简档。

(1)用户概要(User Profile)是企业应用大数据技术,通过收集和分析消费者的社会属性、生活习惯、消费行为等主要信息的数据,进而完美抽象出一个用户的商业全景图的基本方式。

(2)用户画像为企业提供了充足的信息库,可以帮助企业快速找到精准的用户群体、用户需求等更广泛的反馈信息。

(3)作为大数据的基础,它完美地抽象出了一个用户信息的全貌,为进一步准确、快速地分析用户的行为习惯、消费习惯等重要信息提供了充足的数据基础。

1,基于内容的推荐(CB)根据推荐项目或内容的元数据,找到项目的相关性,然后根据用户过去的偏好记录向用户推荐相似的项目。

2.通过提取项目的内在或外在特征值来计算相似度。比如一部电影,有导演、演员、用户标签UGC、用户评论、时长、风格等。都可以算是特色。

3.将用户个人信息的特征(基于偏好记录或者预置的兴趣标签)与物品的特征进行匹配,就可以得到用户对物品的兴趣。它已经成功应用于一些电影、音乐和书籍的社交网站,一些网站还邀请专业人士对物品进行基因编码/标记(PGC)。

4.相似性计算:

5.文章标注的特征提取。

-专家标签(PGC)

-用户定义的标签(UGC)

-降维分析数据,提取隐藏语义标签(LFM)

?文本信息的特征提取——关键词

-分词、语义处理和情感分析(NLP)

-潜在语义分析(LSA)

6.基于内容推荐系统的高层结构

7、特色工程

(1)特征:从数据中提取的对结果预测有用的信息。

?特征的数量就是数据的观察维度。

?特征工程是利用专业背景知识和技能对数据进行处理的过程,使特征在机器学习算法中发挥更好的作用。

?特征工程一般包括特征清洗(采样和清洗异常样本)、特征处理和特征选择。

?特征是根据不同的数据类型进行分类的,有不同的特征处理方法:数值的、分类的、时间的和统计的。

(2)数字特征处理

?当用连续的数值来表示当前的维度特征时,通常对数值特征进行数学处理,主要的方法是归一化和离散化。

?*振幅调整的标准化:

特征应该是对等的,差异应该体现在特征上。

比如房价和住房面积的范围不一样。房价可能在300万~ 65,438+0,500,000(万)之间,而房屋面积在40-300(平方米)之间。很明显,这两个特性是相等的,输入到同一个模型后,由于幅度不同,效果也不同,这是不合理的。

*数值特征处理-离散化

两种离散化方式:等步长——简单但不一定有效;等频率-最小-> 25%-& gt;75%-& gt;最大

两种方法的比较:

?等频离散化方法非常精确,但每次都需要重新计算数据分布。因为用户昨天在淘宝上买的东西价格分布不一定和今天一样,所以昨天等频的细分点不一定适用,但是网上最要避免的是不固定的,需要现场计算,所以昨天训练的模型今天不一定能得到。

等频不是固定的,但是非常精确,等步长是固定的,非常简单,所以两者在工业上都有应用。

(3)类别特征处理

?类别数据本身没有大小关系,需要编码成数字,但是它们之间不能有预设的大小关系。所以要公平,要区分,所以要直接开辟多个空间。

一热编码/哑变量:一热编码/哑变量做的是并行扩展类别数据,也就是经过一热编码哑变量后,这个特性的空间会扩展。

(4)时间特征加工

基于时间的特征可以被视为连续值和离散值。

连续值:持续时间(网页浏览时间);时间间隔(自上次购买/点击以来的时间间隔)。

离散值:一天中的哪个时段;星期几;一年中的哪个月/周;工作日/周末。

(5)统计特征处理

?平均加减:商品价格高于平均价格多少,用户在某一品类下消费多少。

分割线:商品属于所售商品价格的分割线。

订单:热门商品中的商品在哪里?

比例类:商品在电商中的好/中/差评比例。

8.推荐系统的常用反馈数据:

9.基于UGC的推荐

?用户使用标签来描述他们对项目的看法,因此用户生成标签(UGC)是用户和项目之间的纽带,也是反映用户兴趣的重要数据源。

用户标签行为的数据集通常由一组三元组(用户、项目和标签)表示,其中记录(u,I,b)指示用户u标记了项目b..

最简单的算法之一:

-统计每个用户最常用的标签。

-对于每个标签,计算被贴标签次数最多的项目。

-对于一个用户来说,先找到他平时的标签,再找到有这些标签的最火的商品推荐给他。

因此,用户U对项目I感兴趣的公式是,用户U被标记为标签B的次数是项目I被标记为标签B的次数..

在简单算法中,用户对物品某个特征的兴趣可以简单地用用户键入标签的次数和物品获得标签的次数直接相乘来表示。

这种方法倾向于给流行标签(任何人都会给的标签,如“大片”和“搞笑”)和流行项目(标签数量最多)更多的权重。如果一个热门商品同时对应热门标签,就会“称霸榜单”,推荐的个性化和新奇性就会降低。

类似的问题也出现在新闻内容的关键词提取上。例如,在下面的新闻中,哪个关键词应该获得更高的权重?

10,TF-IDF: $ TERM频率-逆文档频率(TF-DF)是信息检索和文本挖掘常用的加权技术。

TFDF是一种统计方法,用于评估单词对文档集或语料库中的某个文档的重要性。单词的重要性与它在文档中出现的次数成正比,但同时与它在语料库中出现的频率成反比。

TFIDF=TF IDF

TF-IDF的主要思想是,如果一个词或短语在一篇文章中频繁出现,而在其他文章中很少出现,则认为该词或短语具有良好的分类能力,适合进行分类。

搜索引擎经常使用各种形式的TF-DF加权作为文档和用户查询之间相关程度的度量或评级。

?$ TERM频率(TF):指给定单词在文档中出现的频率。这个数字是字数的标准化,以防止偏向较长的文件。同一个单词在长文件中可能比在短文件中有更多的单词,不管这个单词是否重要。),它指示单词I在文档J中出现的频率、I在文档J中出现的次数以及文档J中的总单词数..

逆文档频率(IDF):它是一个词的普遍重要性的度量。特定单词的IDF可以通过将文档总数除以包含该单词的文档数,然后取所得商的对数来获得,其中n表示单词I在文档集中的逆文档频率,n表示文档集中的文档总数,表示文档集中包含单词I的文档的数量。

(11) TF-IDF对基于UGC的推荐的改进:为了避免热门标签和热门商品获得更多权重,我们需要惩罚“热”。

?基于TF-IDF的思想,将一个项目的所有标签都视为“文档”,将标签视为“单词”,从而计算出“词频”(一个项目的所有标签之间的频率)和“逆文档频率”(其他项目的标签中普遍出现的频率)。

由于“物品I的所有标签”应该对标签重量没有影响,并且“所有标签的总数”n对于所有标签是确定的,所以这两项可以省略。在simple算法的基础上,直接增加了热标签和热物品的惩罚项:,其中记录了有多少不同的用户使用了标签B,有多少不同的用户标记了物品I。

(A)协同过滤,参见)

1.基于协同过滤(CF)的推荐:基于内容(CB)主要利用用户评价的项目的内容特征,而CF方法也可以利用其他用户评价的项目内容。

CF可以解决CB的一些限制:

?-当物品内容不完整或难以获取时,仍然可以通过其他用户的反馈给出推荐。

-CF基于用户之间对文章质量的评价,避免了CB仅仅依靠内容对文章质量判断可能造成的干扰。

-CF推荐不受内容限制。只要其他同类用户对不同的物品表现出兴趣,CF就可以向用户推荐内容差异很大的物品(但有一定的内在联系)。

分为基于邻居和基于模型两类。

2.基于最近邻的推荐系统:基于相同的“口碑”准则。我该不该向卡里推荐《泰坦尼克号》?

(B)基于最近邻的协同过滤

1,User-CF:基于用户的协同过滤推荐的基本原理是根据所有用户对物品的偏好,找到与当前用户口味和偏好相似的“邻居”用户群,推荐邻居偏好的物品。

?在一般应用中,采用计算“K-最近邻”的算法。基于这k个邻居的历史偏好信息,为当前用户进行推荐。

基于人口统计学的用户体验和推荐机制:

-既计算用户的相似度,又根据相似的“邻居”用户组计算推荐。

两者的区别在于如何计算用户的相似度:基于人口学的机制只考虑用户的特征,而基于用户的协同过滤机制可以在用户历史偏好的数据上计算用户的相似度。其基本假设是,喜欢类似物品的用户可能有相同或相似的品味和偏好。

2.Item-CF:基于项目的协同过滤推荐的基本原理与基于用户的相似,只是利用用户对项目的所有偏好来寻找项目之间的相似性,然后根据用户的历史偏好信息向用户推荐相似的项目。

项目-CF和基于内容的(CB)推荐

-其实都是基于物品相似度预测和推荐,只是相似度计算方法不同。前者是从用户的历史偏好推断出来的,后者是基于物品本身的属性特征信息。

同样是协同过滤。基于用户的策略和基于项目的策略应该如何选择?

-电商,电影,音乐网站,用户比物品多。

-新闻网站,条目数(新闻正文)可能大于用户数。

3.用户CF和项目CF的比较

?也是协同过滤。在User-CF和LTE-CF之间应该如何选择?

?Item-CF应用场景

-?Item-CF推荐机制是亚马逊在基于用户的机制上改进的一种策略。在大多数网站中,条目的数量远远小于用户的数量,条目的数量和相似度相对稳定。同时,Item-CF推荐机制优于基于用户的实时性能,因此Item-CF成为推荐策略的主流。

?用户-CF应用场景

-试想一下,在一些新闻推荐系统中,条目数也就是新闻可能大于用户数,而且新闻更新快,所以其相似度还是不稳定的。这时候用User-cf可能更好。

所以推荐策略的选择其实和具体的应用场景有很大的关系。

4.基于协同过滤推荐的优缺点。

?(1)基于协同过滤的推荐机制的优势:

它不需要对对象或用户进行严格的建模,也不要求对对象特征的描述是机器可理解的,因此该方法也是领域无关的。

这种方法计算出的推荐是开放的,可以利用别人的经验来支持用户发现潜在的兴趣偏好。

(2)存在的问题

该方法的核心是基于历史数据,因此对于新项目和新用户都存在“冷启动”问题。

推荐的效果取决于用户良好历史数据的数量和准确性。

在大多数实现中,用户的历史偏好存储在稀疏矩阵中,稀疏矩阵上的计算存在一些明显的问题,包括少数人的错误偏好可能会对推荐的准确性产生很大影响。

对于一些口味特殊的用户,无法给出好的推荐。

(C)基于模型的协同过滤

1,基本思路

(1)用户有一定的特征,这些特征决定了用户的偏好。

(2)物品具有一定的特性,影响用户是否需要选择它。

(3)用户之所以选择某种商品,是因为用户和商品的特性相互匹配。

基于这种思想,模型的建立相当于从行为数据中提取特征,同时对用户和物品进行标注;这和基于人口统计的用户标签和基于内容方法的物品标签本质上是一样的,都是特征提取和匹配。

当有明显特征(如用户标签、物品分类标签)时,我们可以直接匹配并进行推荐;如果没有,我们可以根据已有的偏好数据发出隐藏特征,这就需要使用隐藏语义模型(LFM)。

2.基于模型的协同过滤推荐是基于样本的用户偏好信息训练一个推荐模型,然后根据实时的用户偏好信息预测新项目的评分并计算推荐。

基于邻居的推荐和基于模型的推荐。

基于邻居的推荐是直接在预测中使用已有的用户偏好数据,通过邻居数据预测对新物品的偏好(相似分类)。

-基于模型的方法就是利用这些偏好数据来训练模型,找到内在规律,然后利用模型进行预测(类似于回归)。

训练模型时,可以根据标签内容提取物品的特征,也可以让模型发出物品的潜在特征。这样的模型被称为潜在因素模型,LFM)。

(1)隐语义模型(LFM):隐语义模型协同过滤的目标;

-揭示可以解释为什么给出相应预测分数的隐藏特征。

——这种特征可能无法用语言直接解释和描述。其实我们也不需要知道,类似于“玄学”

矩阵分解降维分析

-协同过滤算法严重依赖历史数据,而在一般推荐系统中,偏好数据往往是稀疏的;这就需要对原始数据进行降维。

-分解的矩阵表示用户和项目的隐藏特征。

隐藏语义模型的例子:基于概率的隐藏语义分析(pLSA),隐藏狄利克雷分布模型(LDA),矩阵分解模型(SVD)。

(2)LFM降维方法——矩阵分解

(3)对LFM的进一步了解

我们可以认为,用户给电影这样的评分是有内在原因的。我们可以挖掘出影响用户评分的隐藏因素,然后根据未分级电影与这些隐藏因素的相关性来决定未分级电影的预测评分。

应该有一些影响用户评分的隐性因素,比如电影:演员、题材、年代……甚至是人们可以直接理解的隐性因素。

如果找到了隐藏的因素,就可以把用户和Iiem联系起来(找出是什么让用户喜欢/不喜欢这个物品,是什么会决定用户喜欢/不喜欢这个物品),然后就可以猜测用户是否会喜欢一部没看过的电影。

(4)矩阵分解

(5)求解模型损失函数

(6) ALS,求解模型的算法。

?现在,矩阵分解的问题已经转化为一个标准的优化问题,需要求解P和Q,使目标损失函数最小。

通常,随机梯度下降算法或交替最小二乘法(ALS)用于解决最小化过程。

ALS的思路是,由于P和Q两个矩阵是未知的,通过矩阵乘法耦合在一起,为了解耦,我们可以先固定Q,以P为变量,通过最小化损失函数得到P,这是一个经典的最小二乘问题。然后依次固定得到的p,以q为变量,求解q:如此交替进行,直至误差满足读数条件或达到迭代上限。

(7)梯度下降算法