人工智能学习记录_电影推荐系统设计及实现(二)

举报
李国有 发表于 2019/04/10 22:39:57 2019/04/10
【摘要】 第二章 相关技术推荐系统概念推荐系统(Recommender System, RS)是互联网中的服务提供商为了提高企业的品牌效应、增加客户数量、提升服务质量、创建更多企业效益。利用大数据技术和机器学习的相关技术、所创造的为完成上述目标而使用一系列工具的统称、随着这系列工具不断开发优化、所使用的技术的手段也称为“推荐系统”。推荐系统的起源和发展来源人类自身的思绪模式、人类是一个群体、人类最成功...

第二章 相关技术

推荐系统概念

推荐系统(Recommender System, RS)是互联网中的服务提供商为了提高企业的品牌效应、增加客户数量、提升服务质量、创建更多企业效益。利用大数据技术和机器学习的相关技术、所创造的为完成上述目标而使用一系列工具的统称、随着这系列工具不断开发优化、所使用的技术的手段也称为“推荐系统”。

推荐系统的起源和发展来源人类自身的思绪模式、人类是一个群体、人类最成功的地方就是可以使用文字和语言相互沟通和交流。所以我们在日常生活工作中遇到需要一个未知的问题需要进行决策时、我们就需要依赖于其它人所提供的建议。去医院看病会听从旁边的人建议、找某一个特定的专家。去吃饭或者旅游会查看别人对餐馆或者景点的评价、最终选择一个大家都认为不错的餐馆。正是因为这种特定的思绪方式、才促进了推荐系统的产生。随着互联网等新技术的高速发展、网络世界中的数据量越来越大、互联网用户在互联网查找有效信息的更加困难。推荐系统作为一个工具帮助完成企业和互联网用户完成精准的对接、推荐系统也成为生活中不可缺少的一部分。

推荐系统是一种技术、一系列的工具、在查找信息时可以帮助进行过滤大量无效信息。可以在复杂的物品(商品、文字等统称)中做出恰当的选择。

推荐系统分类

推荐系统在很多行业中使用、推荐的物品也大不一样、网络商店可以给你推荐一件商品(书、饮料等等)、门户网站可以给你推荐一条资讯等。

Burke, R  2007 年的”Hybrid web recommender system” 的论文中提出了推荐系统的几种分类

Ø  Content-based(基于内容):

所谓的基于内容是指对于所需要推荐物品的属性(内容)、推荐系统根据物品的属性进行特征提取、把几类物品的特征信息进行提取、通过数学方式进行物品之间的相似性计算,根据计算的相似度、把相似度高的物品推荐给用户、例如有一个用户在JD购买了一个游戏专用机械键盘、JD就会给购买机械键盘的用户推荐游戏专用鼠标。上述示例说明的就是推荐系统以基于内容推荐的一个案例。

Ø  Collaborative filtering(协同过滤):

协助过滤是指通过一个集体的共同特征来推演集体中单个个体的喜好。基本依据是有一个兴趣相似度很高的集体、集体中有N个体对一件物品M已经有了评价、那么就可以根据现在有N个评价来预测集体中Y成员对应物品M的评价。目前对于协同过滤比比较成功的案例是网络书店、当你在网络书店选中一本书的时候、在下面会显示出购买了这本书的其它人还选择了那几本书。

Ø  Demographic(基于人口统计)

基于人口统计的推荐系统就是以人为单位体、根据人的属性(年龄大小、性别、学历、生活条件、爱好、等等)作为特征来进行划分为不同的小的集群体、然后针对每一个小的集体进行物品的推荐、这个推荐并不是单独个体的一个推荐而是一个小集群体共同推荐。2011年在ACM会议中‘王元元‘等人发表了“基于人口统计的推荐系统在旅游景区的适用性”、基于人口统计的推荐方法可以很好的克服旅游景区收集数据的稀疏性、在结合协同过滤方法、最终的测试结果有很好的改善。

Ø  Knowledge-based(基于知识)

基于知识的系统是根据了特定领域所形成的知识图谱、计算此物品是否能满足用户的需要和偏好进而进行推荐、基于的处理方法是、先根据知识图谱训练出物品的特征向量、推荐系统会估计物品的特征向量和用户需求问题的特征相向的匹配度、根据匹配决策是给用户推荐的物品。

Ø  Community-Based(基于社区)

这种推荐是依赖于用户朋友的偏好、在社交网络中使用的比较多、目前大家经常遇到是支付宝中的好友推荐、QQ的好友推荐、微博的共同关注。显示而以见相对于陌生人我们更愿意相信朋友的推荐信息、而且朋友之间的熟悉度更高、所以对于信息的推荐、精确度也会高一些。

深度神经网络与推荐系统

深度学习是人工智能技术中的一种、当Google 宣布基于深度学习的AlphaGo在与人的围棋对战中获得胜利的时候、大部人可能才意识到人工智能已经不只是存在科学家的实验室里了、而是已经走入到了大众视野中来。AlphaGo击败人类是AI历史上的一大突破。也是见证了神经网络发展的一个巅峰。其实深度学习技术在许多方面已经融入到我们生活中来了、小米手机中的AI拍照、科大讯飞的语音识别等等。与传统的人工智能技术相比、深度学习是一种无监督的模式来进行的、所以不需要花费更多的精力来处理数据的特征。深度学习技术本身具有学习抽象能力的数据表示。

深度学习的爆发使用得人工智能得以发展、目前互联网企业大多数已经成立了独立的AI部门、深度学习在图像和语音方面获得的成果、已经得到大家的认可。从2015年开始已经有很多人开始尝试让深度学习和推荐系统进行结合、以实现更高效、更精确的个性化推荐服务。目前有30多篇不同类型的相关论文发布在KDD或者WWW上,目前众多专家对此课题进行深入研究,国为深度学习有以下几个特征是之前传统的人工智能技术中没有、而且以于推荐引擎技术又十分重要的。

Ø  可以直接从内容中提取特征、不需要专属的行业人员参加进行特征的提取评估、在对于在线的推荐提高影响时间

Ø  深度学习是基于神经网络技术的、对于数据的处理、可以通过多层模型、多种函数反复处理、对于数据中的异常或者噪声、以给以很好的处理。

Ø  神经网络支持对时间序列的建模处理

推荐系统的基础

推荐系统是一个交叉的学科、它需要使用很多其它方面的技术、目前是一个大数据的时代、推荐系统无论架构如何 都脱离不了一个核心的问题数据、如果没有一个完善的数据为基础、推荐系统的其它都是无根之萍、从这方面来看推荐系统可以理解是一个数据挖掘的扩展和升华。大数据的精细化营销就可以理解是为一种线下的推荐系统。想要完成一个好的推荐系统必须要优先处理好数据的问题、

数据收集预处理

数据就是推荐系统中推荐物品属性的集合、一个统称它包含了非常多的东西、可以是文字、数字、图像等等。数据在预处理完成后会得到一个可以进行使用的数据集合、后续的操作步骤全部是在这个数据集合上进行的、为了保证后续系统的操作准确性、我们在此阶段最重要的目的是提供一个有质量保障的数据集。

数据质量在数据预处理过程核心目标。一般情况下影响数据质量的因素有以下几种

Ø  数据源:上游数据源不完善或不规范、导致下游系统受到影响、出现质量问题。

Ø  统一标准:KPC、报表等指标口径中存在的数据质量问题、包括指标准确性、一致性及完整性问题

Ø  系统自身:是指系统在开发建设、日常运营和维护过程中引发的数据质量问题、数据模型质量问题、系统升级数据信息丢失问题、ETL清洗不够彻底。

数据异常类型:

Ø  错误值 :由于字段类型与实际存放数据差异、或录入信息出错而导致的数据错误,例如时间字段存放成了字符类型

Ø  重复值:数据记录中存在完全一样的重复记录、业务上理解不可能存在的关键信息的出现重复记录。

Ø  数据不一致:数据的记录是否符合规范、是否与前后及其它数据集合保持统一、数据的一致性主要包括数据记录的规范和数据逻辑的一致性

Ø  缺失值:数据的缺失主要有记录的缺失 和记录中某个字段信息的缺失、两者都会造成统计结果的不准确、完整是数据质量的基础

Ø  异常值:数据记录中出现明显的数据偏差或者数据错误的记录、例如年龄记录为200岁

                                               image.png

如上图(一)所示、我们可以看出来,这个数据集中的”ID”信息应该记录为数字类型而不是现在的字符类型、而这个“ID”信息中有31个缺失值、这些都属于数据的质量问题、在推荐系统的设计的过程、需要根据推荐系统的设计规则进行数据集的预处理。

相似度度量方法

       推荐系统里相似度的计算是一个很重要的指标、无论那种算法我都需要根据相似度的结果来进行推荐的产生。常见的相似度计算方法有以下几种:

       欧几里得距离

image.png

       闵可夫斯基距离是欧几里得距离的扩展

image.png

       马氏距离

       image.png

       余弦相似度

       image.png

       皮尔逊相关性

       image.png

       推荐系统一般会使用余弦相似度或者皮尔逊相关性或者使用它们的变异算法


数据特征提取方法

特征定义

数据集特征:一个数据集中有很多的数据信息、每个数据信息所代表的含义是不一样的,而推荐系统最终所要产生是一个信息的结果、例如在本次课题中的电影数据集信息中有['Adult', 'belongs_to_collection', 'budget', 'genres', 'homepage', 'id','imdb_id', 'original_language', 'original_title','overview','popularity', 'poster_path', 'production_companies','production_countries', 'release_date', 'revenue', 'runtime','spoken_languages', 'status', 'tagline', 'title', 'video','vote_average', 'vote_count']  24个信息,这个24个信息都可以理解为是特征信息、推荐引擎在计算最佳结果的时候、并不需要对这24个特征信息、全部进行计算、只需要找到相关或者最有代表的几个特征信息进行计算就可以了。

文本信息特征:文本信息特征是指如果一个数据集的特征是文本类的、例如电影集中的”Overview”信息“Led by Woody, Andy's toys live happily in his room until Andy's birthday brings Buzz Lightyear onto the scene. Afraid of losing his place in Andy's heart, Woody plots against Buzz. But when circumstances separate Buzz and Woody from their owner, the duo eventually learns to put aside their differences.”

这个信息在使用协同过滤推荐算法时、是非常重要的一个信息、只是这个是人类可以理解的信息、计算机是无法理解这段话的意思、所在数据处理的过程时就需要把这段信息转换为计算机可以进行计算的信息、数据的过程就是找出这段话中、最具有代表的几个词、这几个词就是这个文本中的特征信息。

在很的情况下、一些特征信息是离散或者格式不一样的、需要使用一些方法把这个特征信息进行一些转换、有时也需要把这几个特征信息合并计算一个特征信息。

特征值处理方法

标准化和归一化:数据集中的特征信息(整数型或者浮点型)值会有很大的差别、如果对这个值不做进一步的处理、那么最后计算出来的结果、可能会存在一些影响。常见的做法是使用Z-Score标准化、使用原始数据减去均值再除以标准差。也称为标准差标准化、计算公式如下:

image.png

离散化处理:有时数值型特征根据业务以及其代表的含义需要进行离散化,离散化拥有以下好处:离散化后的特征对异常数据有很强的过滤性,比如一个特征是年龄> 30 为1 ,否则为0 。如果特征没有经过离散化,一个异常数据“年龄100 岁”会给模型造成很大的干扰;特征离散化后可以进行特征交叉,特征内积乘法运算速度快,进一步引入非线性,提升表达能力,计算结果方便存储,容易扩展;特征离散化后,模型会更稳定,比如如果对用户年龄离散化, 20~30 作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。但是处于区间相邻处的样本会刚好相反,所以如何划分区间也非常重要,通常按照是否使用标签信息可以分为无监督离散化和有监督离散化

卡方检查:它的过程如下:首先将数值特征的每个不同值看作一个区间,对每对相邻区间计算卡方统计量,将其与由给定的置信水平确定的阔值进行比较,高于阔值则把相邻区间进行合井,因为高的卡方统计量表示这两个相邻区间具有相似的类分布,而具有相似类分布的区间应当进行合并成为一个区间。合井的过程递归地进行,直至计算得到的卡方统计量不再大于阔值。

朴素贝叶斯和概率方法:

            朴素贝叶斯是一个归纳式学习的概率方法、属于一般的贝叶斯分类器、这类方法基于之前的观察数据产生一个概率模型。计算公式

image.png

对文档d分类、选择概率最高的作为类别

 image.png

二个被普通使用的分类模型:多元伯努利事件模型和多项式时间模型二个模型都将文档看作一个词库表V上的向量值、微量中的每个实体表示它在这个文档中是否出现、因此模型都是损失了关于词顺的信息、多元伯努利事件模型将词编码为一个二元属性、记录一个词出现或者没有出现、而多项式时间模型计算一个词在一个文档中出现的次数。

      实现朴素贝叶斯的一个关键步骤是估计司的概率P(tk|C),为了使估计对少出现的词更有健壮性、需要采用一个简单的事件计数和的平滑方法修正这个概率、一个很重要的平滑作用就是它避免了在训练数据的某一个类中、一个没有出现过的词的概率为0的情况 。

 

特征选择

正如前所说的、特征值有很多个、推荐系统需要从N个特征值选择取一个或者多个特征值用来进行计算、这个过程称为特征选择、常用的特征值选择方法如下:

皮尔森相关系数

皮尔森相关系数是一种最简单的、能帮助理解特征和响应变量之间关系的方法,该方法衡量的是变量之间的线性相关性,结果的取值区间为[- 1, 1], -1 表示完全的负相关( 这个变量下降,那个变量就会上升) ' +1 表示完全的正相关。0 表示没有线性相关。皮尔森相关系数表示两个变量之间的协方差与标准差的商.

距离相关系数

距离相关系数是为了克服皮尔森相关系数的弱点而产生的。它是基于距离协方差进行变量间相关性度量, 它的一个优点为变量的大小不是必须一致的,其计算方法如式( 5-4 ) 所示,注意通常使用的值为其平方根。

特征选择测试

下面是基于数据集一个测试、目的是找到电影ID的相关特征的、相关度。

数据集是经过了处理的共有93389行,9列(vote_count:表示一部电影的评价人数、vote_average:表示电影的一个平均评分)

image.png

 

在vote_count 和vote_average保持不变的情况下使用“皮尔森相关系数”方法进行相关性的预测。

image.png

可以看出结果是结果不是很好、现在对vote_count,vote_average进行特征的处理

 image.pngimage.png



 

从处理的结果来看、vote_count和vote_average  电影ID的相关性提高了很多。

此处只是一个示例、在后面的系统设计和部署中、会根据不同的特征类型和采用的计算方式不同、选择不同的处理方式、最后选择不同特征。

推荐系统的类型

     基于内容的推荐系统

基于内容的推荐系统是以用户以前的爱好来挖掘用户新的喜欢、利用的是用户目前喜欢的物品的属性与需要推荐物品的属性进行相似度的计算、预测需要推荐物品在用户层面的喜好度、来进行排序后推荐。基于内容推荐的一个是基础是现在有已经有了客户对一些商品的喜欢的评价、也可以理解是用户的个人属性已经构筑。系统知到了用户的所需要的一切信息。

推荐过程有三个阶段、每个都是独立进行的

内容分析器:就是数据集预处理的一个过程、收集的用户数据一般是一个离散的、非结构化的数据、推荐系统需要针对这个数据进行分析处理、形成一个具有特征的、结构化的数据集、才能够在后面的推荐系统中进行使用。

信息学习器:是收集了用户偏好的数据特征信息、并泛化这些数据、从而构造用户特征信息、一般是通过机器学习技术进行特征提取、特征组合、根据用户过住信息中的正面信息的反面信息形成一个用户的模型、引模型可以进行用户正负喜欢信息的预测及反馈。

过滤组件:是用户个人信息和物品进行匹配、利用个人信息来过滤筛选出物品信息、使用相应的相似度计算来生成一个排名清单、此清单一般是根据用户的正面反馈信息来生成的。

      基于内容推荐的系统的优势:

      数据结构简单:推荐系统只需要根据单个用户矩阵信息进行相似度的计算、不需要考虑其它的因素、只有一个用户的信息就可以生成一个对应的模型(有可能生成的模型效果并不是很好)。

      物品信息透明:在推荐系统最终的成果物中可以清楚的显示物品信息的特征和描述、能很好的推荐物品和用户之前的依赖性是基于那个特征进行推荐的、也可以针对目前现在的物品特征进行明确过滤、增加人为权限的筛选过滤。例如用户购买了儿童食品面包、推荐系统根据用户目前现在有的信息进行推荐儿童的奶粉、但是目前有一个款奶粉有可能存在质量的问题、那推荐系统可以在最终的推荐信息过把此款奶粉进行移除不推荐给用户。

      新物品增加:基于内容的推荐系统不依赖物品的评价特征信息、一个网络商城目前上线了一个新的产品、这个商品本身的评价特征信息很少、但是推荐系统可以依赖于商品的其它特征信息进行推荐。

      可分析的内容有限、随着网络安全法的不断健全、推荐系统只能采用显示的信息数据收集、一部分用户并不会很在或者说乐意提供一些物品的显示评价、为了保护用户的隐私权、推荐系统并不能随意采集用户的一个隐式信息、这对用户模型的生成是一个很大的难题。对于物品来讲、物品的特征信息无论是系统采集还是手动增加标签都由专业领域的能力才能完成。对于目前的成千上万人物品来讲是需要一个很大的人力成本才能完成、而且物品是不断增加的、这个一个持续消耗的过程。

基于内容推荐的系统的问题

      新鲜感弱:基内容的推荐系统、所推荐给用户都是一些类似的物品、对于使用此推荐的用户所接收到都是一个类型的物品、如一直持续下则会对用户形成审美疲劳。最终会导致用户放弃这个推荐系统的使用、因为没有想要生活是一层不变的。

      新用户的冷启动问题:基内容的推荐系统的前提是取有一定的用户对物品的评价信息、如果一个网络商城、新注册了一个用户、此时没有用户对任何物品的评价信息、基于内容的推荐系统是没有办法正常工作的。

      物品特征

      真实推荐系统中待推荐的物品往往都会有一些可以描述它的特征。这些特征通常可以分为两种:结构化的特征与非结构化的特征。所谓结构化特征就是特征的取值限定在某个区间范围内,并且可以按照定长的格式来表示。非结构化的特征往往无法按固定格式表示,最常见的非结构化数据就是文章。例如对推荐评价内容

结构化特征信息

 

           image.png

      非结构化特征信息

image.png

     基于近邻的推荐系统

基于近邻的推荐算法是广泛用于协同推荐方法中、原因在于该算法简单、有效、且能够提供准确的个性化的推荐、在线商城的出现和发展给客户的购买方式产生了重要的影响 、这种方式的购物能让用户 接触到大量的商品和相关的信息、同时也使用得客户越来越难选择到适合自己的商品、推荐系统是对这种信息过载问题的一种重要解决方案。可以以提供 给客户个性化的商品建议、推荐系统已经用于很多的领域中、书籍、音乐、电影、新闻、网页等。

      基于近邻的推荐系统的工作方法就是计算一个用户(或者物品)和其它用户(物品)的相似度、找到最志同道合的几个伙伴、然后把伙伴们认为好的东西推荐给用户。在推荐引擎工作的时候是分为了二个部分、判断用户的爱好相同、判断爱好相同用户对物品的喜好程度、最后把物品喜好程度进行排序推荐。

基于近邻的推荐系统是根据相同的“口碑”的准则、根据和用户兴趣相同的人或者根据其他可信源来评价一个物品、

用户名

天下第一

人间第二

武道第一

文学第二

地狱十八

张三

5

1

1

2

1

李四

1

5

2

5

3

王五

2


3

5

3

马六

4

3

5

3

1

如上图所示:当王五影“人间第二“是推荐系统可以根据对矩阵中的对比、来确认张三和马六兴趣相同、那么就可以看出来系统预测的评分是不错的,就会推荐给用户。

基于用户的评价

      基于近邻用户 推荐方法预测用户 U对新物品I的评分、利用和用户U兴趣相近且对物品I作了评分的用户、这些和用户U兴趣的用户称为近邻。假设W表示用户U和V的兴趣相同的程度、用户U的K按住、表示为K个与用户 U相似度W表示的最高的用户 。

基于用户的分类

      前面把描述的预测方法是通过对按住用户评分进行加权平均的计算方法、本质上是在解决回归问题,别一个方面 基于近邻分的分类 则是通过用户的最近邻对于评分的投票、找到用户 对物品最可能的评分、用户的N个邻居对物品评分的平均值就可以计做用户对物品的评分。

回归与分类

      选择基于近邻回归或者分类方法很大程度上取决于系统的评分刻度类型。如果一个评分刻度是连续的、那么回归方法更加适合、相反如果评分刻度仅仅是一个离散的值、则使用分类方面更加合适。因为标准化方法会使评分映射到连续类型、这就导致分类方法很难处理此类问题

基于物品推荐

      基于用户的推荐方法依赖于和自己兴趣相同的用户来预测一个评分 、而基于物品的推荐方面是通过评分相近的物品来预测的可以理解为是一种基于内容的推荐方法

推荐系统的准度度很大程度上依赖于系统中用户数和物品数之间的比例 、对于用户数量大于物品数据的环境、基于物品的推荐方面更加准确(Amazon),同样用户数小于物品数的系统、则采用基于用户的近邻方法效果则更加精确。

推荐系统的内存和计算效率也依赖用户数量和物品数量的比例。用户数量远远大于物品数量时、训练阶段计算相似度权重方面所需要的内存和时间要远远小于基于用户的方法、但是在线推荐阶段的时间复杂度因为只依赖有效物品数和近邻数的最大值、对于基于用户还是基于物品都是一样的

近邻方法的要素

      选择回归或者分类、以及选择基于用户还是基于物品的方法、都会对推荐系统的准确性、效率和整体质量产生重要的影响、除此之外还需要考虑以下权重信息的影响

      当一个用户对一个物品给以评分时、每个用户 都有自己的评价准则、有时我们所表达出来并不是自己真实的意思、例如你在购买商品时会告诉你当你给最好的评价时会有一个商品赠送给你、用户为了得到这个赠送的商品可能会在本身感觉的情况下提高评分。均值中心化和Z-score这两种通用的标准化机制可以将个人评分标准转换到更一般的整体评分标准中

      均值中心化意思是通一个平均分的比较来决定一个评分为正或者为负、用户对物品喜好倾向可以直接观察标准化后的评分值的正负情况、同时评分可以表示用户对该物品喜好或者厌恶的程度。此时就可以使用前面介绍的Z-Score 标准化方法对数据进行处理。

      

 

 

相似度权重计算

      相似度权重在基于近邻的推荐方法中扮演双重角色

      可以用于选择可信的近邻用于预测评分

      给予不同近邻在预测中的权重 、计算相似度权重是基于近邻推荐系统中重要一部分、它可以直接影响准确性的性能

     基于协同过滤的推荐系统

基于内容的推荐方法用户易于理解,简单有效,但是它的缺点也十分明显。它要求内容必须能够抽取出有意义的特征,且要求这些特征内容有良好的结构性,推荐精度较低,相同内容特征的物品差异性不大。因为以上这些原因,在推荐系统中基于内容的推荐往往会和其他方法混合使用。

协同过滤推荐算法可以分为两大类

一类是基于用户的协同过滤;

一类是基于物品的协同过滤。

尿布和啤酒的故事在数据挖掘领域十分著名。这个故事的真实性有待考究,但是它切切实实说明了物品相关性在推荐时的重要性。该故事是说,在美国沃尔玛连锁店超市,尿布和啤酒总是摆在一起出售,但是这个奇怪的举措却使尿布和啤酒的销量双双增加了。原来,美国的妇女们经常会嘱咐她们的丈夫下班以后要为孩子买尿布。而丈夫在买完尿布之后又要顺手买回自己爱喝的啤酒,因此啤酒和尿布在-起购买的机会还是很多的。是什么让沃尔玛发现了尿布和啤酒之间的关系呢?正是商家通过对超市一年多的原始交易数据进行详细的分析,才发现了这对神奇的组合。

协同过滤算法能得到一个高速发展、并占有大量的市场、主要是协同过滤算法能满足推荐系统在应用上二个特性:

      快速的反应:在用户打开站点的几秒内能给出一个推荐物品、不存在冷启动问题。

      准确的反应:高准确度、协助过滤可以基于用户、物品、混合多种方式、相对于其它的推荐引擎来讲效果更好。

基于物品的协同算法

基于物品的协同过滤算法的核心思想,给用户推荐那些和他们之前喜欢的物品相似的物品、不同于基于内容的推荐,基于物品的协同过滤中的相似主要是利用了用户行为的集体智慧。

基于物品的协同算法首先计算物品之间的相似度, 计算相似度的方法有以下几种。

基于共同喜欢物品的用户列表计算:

image.png

N(i):表示购买物品i的用户数

N(j):表示购买物品j的用户数

分子表示:同时购买物品i和物品j的用户数

此时会存在一个、当出一个热门商品的时候、会导致计算公式中的分子增加速度过快、会和很多商品的相似度都高、所以我们需要给热门的商品增加惩罚性

image.png

在计算出物品间的相似度后则可以进行第二步、计算用户U对物品i的预测分数

     
image.png

基于余弦(Cosine-based)的相似度计算:前面一种方法直接使用购买物品人的数进行了计算、但也是存在一种情况是我购买了但不喜欢、也如果结果也包含在数据集、则会影响最张的效果。所以我们可以把用户的评价引入到此公式 中进行计算

image.png

 

 

基于用户的协同算法

基于用户的协同过滤(User CF)的原理其实是和基于物品的协同过滤类似的。所不同的是,基于物品的协同过滤的原理是用户U 购买了A 物品,推荐给用户U 和A 相似的物品B 、C 、D 。而基于用户的协同过滤,是先计算用户U 与其他的用户的相似度,然后取和U 最相似的几个用户,把他们购买过的物品推荐给用户U

在计算之前要先对物品进行排序、排序完成后就可以根据公式进行用户之间相似度的计算

image.png

公式和之前的一样、只是参数换成了、用户购买物品的数量、而当是商品购买的用户数、包括后面的相似度的计算则是一样的、同样存在一个问题、目前网络商城存在一个很严重的刷单行为、我们要考虑一下怎么去把这个信息给筛选下去。

     混合推荐系统

介绍了几种主流的推荐方法,它们在推荐时利用的信息和采用的框架各不相同,在各自的领域表现出来的效果也各有千秋。基于内容的推荐方法依赖Item 的特征描述,协同过滤会利用User 和Item 的特定类型的信息转化生成推荐结果,而社交网络的推荐算法则根据User 的相互影响关系进行推荐。每种方法各有利弊,没有一种方法利用了数据的所有信息,因此,我们希望构建一种混合( Hybrid ) 推荐系统,来结合不同算法的优点,并克服前面提到的缺陷,以提高推荐系统可用性。

加权型混合推荐

加权混合推荐即利用不同的推荐算法生成的候选结果, 进行进一步的加权组合( Ensemble ) ,生成最终的推荐排序、混合推荐系统的好处是可以利用简单的方式对不同的推荐结果进行组合,提高推荐精度,也可以根据用户的反馈进行方便的调整。但是在数据稀疏的情况下,相关的推荐方法无法获得较好的结果,该系统往往不能取得较高的提升。同时,由于进行多个方法的计算,系统复杂度和运算负载都较高

交又型混合推荐

交叉型推荐技术的主要动机是保证最终推荐结果的多样性。因为不同用户对同一件物品的着眼点往往各不相同,而不同的推荐算法,生成的结果往往代表了一类不同的观察角度所生成的结果。交叉型推荐技术将不同推荐算法的生成结果,按照一定的配比组合在一起,打包后集中呈现给用户。

特征组合型混合推荐

特征组合是将来自不同推荐数据源的特征组合,由一种单一的推荐技术使用。数据是推荐系统的基础,一个完善的推荐系统,其数据来源也是多种多样的。从这些数据来源中我们可以抽取出不同的基础特征不同的基础特征可以预先进行组合或合井,为后续的推荐算法所使用。

特征递增型混合推荐

特征递增型混合技术, 即将前一个推荐方法的输出作为后一个推荐方法的输入。这种方法上一级产生的并不是直接的推荐结果,而是为下一级的推荐提供某些特征。一个典型的例子是将聚类分析环节作为关联规则挖掘环节的预处理:聚类所提供的类别特征,被用于关联规则挖掘中,比如对每个聚类分别进行关联规则挖掘。

推荐系统的评估

推荐系统的评估从二方面来理解:

一、        因推荐系统有多种的实践方面、多种的算法、多种架构 、被推荐的物品也是多种多样、没有那一样架构、算法是可以完成所有物品的推荐的、所以针对于不同的物品可以选择的实践方面也不同的、针对于同一个物品在不同场景下、不同的算法和架构达成的效果也是有很大区别的、当我们在设计系统时一般会选择多种架构、多种算法、混合使用。在设计阶段我们需要评估每个架构和算法的效果、选择混合效果最好的组合。

二、        推荐系统的生命周期是一个迭代过程、因为推荐系统所服务的对象是人、是一个不确定的因素、我们每个人的想法、爱好、会随着时间、生活改变而发生改变。所以推荐系统不是一个固定不变的、在系统运行的过程、我们要接收推荐用户的显示反馈和隐式的反馈、针对于反馈结果来评估转换率、进而发现需要改进的方案及措施。

推荐系统可以定义为评估用户对新物品的反馈、管中评估是基于该系统中历史数据信息、同时推荐那些预测反馈兴趣高的物品给客户、这种基于物品的反馈类在每个系统中表现不一样分为三种、分级反馈、一元反馈、二元反馈 、分级反馈就是我们最熟悉的评分制、二元反馈是获取用户 与物品互动行为、评价信息、好坏的评价信息。一元反馈是指是不是购买了或都浏览物品

准确性是通常用来评估推荐系统效果的主要方法、一般来说、评分集合可以分为用于训练函数的训练集和测试集、测试预测准确性的方法

平均值绝对误差

image.png

均方根误差

 image.png

公有云AI平台

随着云计算的不断发现、很多业务已经本地机房搬迁到了各种云环境、之前很多需要自己本地构筑的服务、现在已经有很多的SaaS服务。最经典的是Office365的服务、之前很多企业都是自己构筑本地的Exchange服务器。现在更多的选择是使用Office365在线的邮箱服务。机器学习作为新一代技术的代表当然也有很多在线的平台可以使用

XX云就提供了机器学习和深度学习的平台PAI

Ø  为传统机器学习提供上百种算法和大规模分布式计算的服务:

支持100余种算法组件,覆盖回归、分类、聚类、文本分析等算法。提供企业分布式计算能力,轻松实现大规模数据处理

Ø  为深度学习客户提供单机多卡、多机多卡的高性价比资源服务:

提供GPU单机多卡和多机多卡的计算能力,

Ø  支持最新的深度学习开源框架:

支持开源任意版本的深度学习框架,并提供阿里云深度优化的Tensorflow,性能与速度更佳

Ø  帮助开发者和企业客户弹性扩缩计算资源,轻松实现在线预测服务:

AutoML引擎提供模型训练参数调优服务,在最大限度上减少机器学习业务搭建成本


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。