【机器学习:推荐系统】什么是推荐系统?

在这里插入图片描述

推荐系统(或称推荐器系统)是一种软件引擎,旨在根据用户以往的好恶、产品参与度和互动情况等向用户推荐商品。推荐系统能让用户对网站持续推荐的内容保持兴趣。

推荐引擎通过帮助每一位消费者识别和发现他们喜爱的电影、电视节目、数字产品、书籍、文章、服务等,提供个性化的用户体验。这些系统帮助企业提高销售额,让消费者受益。亚马逊网站上列出了数以百万计的产品,用户在浏览和查找要购买的产品时很可能会遇到问题。有了推荐系统,消费者可以轻松找到产品,提高易用性,迫使消费者继续使用网站而不是离开。

推荐系统如何工作?

推荐系统是一种数据过滤引擎,它使用深度学习概念和算法,根据以往的偏好或二次过滤,推荐潜在的产品。

这类算法背后的概念是发现消费者或类似消费者对服务或产品的行为模式。

收集数据的方法因销售的产品或服务类型不同而大相径庭。例如,电子商务网站收集的数据是评论等级,而 Youtube 会保存喜欢和不喜欢的视频。

推荐系统生命周期

有些推荐系统比其他系统复杂得多,但许多系统都遵循七步路径来开发成功的推荐模型:

  1. 收集数据:识别并收集与推荐系统相关的数据。例如,亚马逊可以收集评论和产品评级(5 星级评级系统),而 Netflix 商店则可以观看、点赞和添加书签的节目和电影。
  2. 存储收集的数据:将数据存储在专有数据仓库中。或者利用亚马逊、谷歌、MongoDB等第三方云服务提供商来提高效率和数据检索速度。
  3. 过滤数据:过滤数据集中有问题的值(空值、无限值或误导性值)以提高模型准确性。
  4. 分析数据:就推荐系统而言,分析数据意味着将其输入机器学习或深度学习算法,这些算法可以检测隐藏的见解和模式。
  5. 评估和测试我们的模型:检查推荐系统模型的性能。如果模型表现不佳,请将超参数调整到所需的性能。
  6. 部署我们的模型:您的模型已准备好部署到实际实践中。继续监控和调整系统。
  7. 在线机器学习:部署后的在线机器学习可以通过学习新获取的数据来不断改进和调整模型,保持长寿。

推荐系统算法

矩阵和深度学习是构建推荐系统的方法。其中矩阵是基于逻辑的系统

  • 聚类:一种无监督机器学习算法,可以返回良好的预测结果。在大多数情况下,仅靠聚类不足以构建高级推荐引擎。
  • 深度学习:一种更复杂的分析方法,将消费者的行为模式作为输入,并过滤出与每个用户最相关的建议。

在这里插入图片描述

使用推荐系统的好处

  • 增加销售额:公司投资此类系统的首要原因是为了创收。通过推荐系统增加销量还可以提高消费者在其网站上的参与度并获得更长的会话时间。
  • 降低系统负载:由于系统确实为每个给定用户过滤了最匹配的项目,因此推荐系统可以提高销售额,同时保持较低的系统负载并从长远来看降低成本。
  • 提高参与度和满意度:通过不断为消费者提供无穷无尽的个性化产品,消费者将继续与应用程序/网站互动。推荐系统优化体验,减少浪费的页面空间,从而提高对相关内容的满意度。

推荐系统的类型

根据企业提供的产品或服务,可能会采用不同的推荐系统。不同系统的一些示例是:

协同过滤

协同过滤方法关注不同用户和项目之间的相似性。具有相似兴趣的消费者很可能会对其他类似产品感兴趣。这些相似之处可以改善对数据集中所有用户的推荐,并随着新产品进入市场而继续学习。

例如,如果亚历克斯喜欢足球并买了一双球鞋,而梅格喜欢足球,那么梅格很可能也会对这些球鞋感兴趣。

协同过滤有多种类型:

  • 用户到产品过滤是所有过滤方法中最简单的,其中算法将查找消费者之前购买或喜欢的类似商品。类型、价格、商品类别等都是影响过滤的类别。
  • 用户到用户过滤的工作原理是找到具有相似兴趣的消费者,并根据相似用户的选择推荐产品和服务。这种算法需要高计算能力和资源,因为该算法需要实时比较所有用户。

在这里插入图片描述

基于内容的过滤

基于内容的过滤推荐算法评估产品的相似度。推荐系统会向之前互动过的用户推荐类似分类的产品。

例如,如果最近观看的三部电影包括喜剧类型,系统将推荐其他类似的喜剧电影或节目。对于使用图像处理或自然语言处理来匹配外观、标题或描述相似的商品的产品图像,此类推荐也是必不可少的。

请注意,基于相似性的推荐将受到冷启动问题的影响。当没有足够的偏好数据时,就会出现冷启动问题。当最初在平台上实施时,推荐系统无法准确地推荐好的选项,因为它需要时间来收集和训练。

混合过滤

混合过滤同时利用协作过滤和基于内容的过滤,利用彼此的优势。

几项将混合过滤系统与单独的协作和内容系统的性能进行比较的研究表明,混合系统具有更好的准确性。

结合这两种算法可以消除冷启动问题等多个问题,并有助于快速收集数据。我们最喜欢的许多网站(例如 Google、Youtube 和 Netflix)在其推荐系统中都使用了混合过滤。

在这里插入图片描述

现实生活中的推荐系统示例

亚马逊

亚马逊上有数以百万计的产品,消费者可能会被他们想买的东西分散注意力;产品种类的增加将导致消费者决策时间的增加。

亚马逊推荐系统过滤可能的商品,以帮助消费者找到满意的产品。

Spotify

Spotify 会评估用户喜欢听哪些歌曲,并相应地推荐新音乐。他们还策划了一个每周发现播放列表,供用户发现新的但熟悉的音乐。

Spotify 的混合过滤算法可帮助听众通过了解他们的喜好、厌恶和细微差别来发现新音乐。

脸书/元数据

Facebook 还在其应用程序中使用了多种推荐系统。这些引擎根据喜欢、不喜欢、共同的朋友等推荐下一篇文章、朋友建议和广告位置。

与前面提到的公司一样,Facebook 的收入与其推荐系统的有效性直接相关。

Netflix

Netflix 因其广泛使用推荐系统而闻名。 Netflix 上超过 80% 的观看内容来自算法建议,他们的推荐系统每年估计会产生 10 亿美元的收入。

此外,新的 Netflix 帐户将对热门节目和电影进行评分,以帮助推荐算法预测新节目,以避免冷启动问题。

谷歌和 YouTube

作为最受欢迎的搜索引擎和浏览器之一,谷歌花费巨资尽可能更新其推荐系统的效率和准确性。

在搜索引擎中,谷歌会根据最近的搜索生成自动填充结果,帮助用户找到他们正在寻找的内容,提高用户满意度。

Google 还在 Youtube 上部署推荐系统,通过使用视图、点赞、共享视频、订阅、流派等过滤器实施个人建议和评级系统。 YouTube 还利用流行度建议来生成热门视频的观看次数。

谷歌广告产生了很大一部分收入。 Google 存储行为数据,例如购买、观看的 Youtube 视频和搜索,以便向用户提供和推荐与产品和服务相匹配的广告。

在这里插入图片描述

关于推荐系统的最终想法

协作过滤、基于内容的过滤和混合模型推荐引擎是任何人都可以开始使用这个出色工具的高级基础方法。通过对系统的总体概述,构建推荐系统时需要记住的因素包括:

  • 如何跟踪建议的有效性
  • 在消费者停止与产品互动后何时停止向其推荐产品
  • 如何衡量具有较高评论或观看次数的产品
  • 推荐会动态变化吗?系统会回溯多远?
  • 推荐系统可能会无意中将消费者分为一个小类别。您的算法如何向消费者推荐不同但有效的内容?

许多企业每天都在利用和改进推荐系统。这些算法将继续开发并用于越来越多的应用。此类系统为消费者和组织都带来好处;如果有效使用,它们可以成为任何想要向消费者提供满意的产品和建议的公司必不可少的销售工具。

  • 26
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要开发一个机器学习电影推荐系统,你需要完成以下步骤: 1. 数据收集:你需要从 IMDB、豆瓣电影等网站爬取电影数据,并创建一个数据集。 2. 数据预处理:数据预处理是一个重要的步骤,它包括数据清洗、数据集划分、特征提取等操作。 3. 特征工程:在这一步中,你需要从数据集中提取出有用的特征,例如演员、导演、电影类型、评分等。 4. 模型选择:选择一个适合你数据集的机器学习模型,例如基于内容的推荐、协同过滤、深度学习等。 5. 模型训练:使用训练数据集对选择的模型进行训练。 6. 模型评估:使用测试数据集对模型进行评估。 7. 部署模型:将训练好的模型部署到生产环境中,以便用户可以使用。 在 Python 中,你可以使用 Pandas、Scikit-learn、Keras 等库来完成上述步骤。以下是一个使用 Scikit-learn 和 Pandas 开发电影推荐系统的示例代码: ```python import pandas as pd from sklearn.feature_extraction.text import CountVectorizer from sklearn.metrics.pairwise import cosine_similarity df = pd.read_csv('movies.csv') # 特征工程 features = ['actors', 'director', 'genres'] for feature in features: df[feature] = df[feature].fillna('') def combine_features(row): return row['actors'] + ' ' + row['director'] + ' ' + row['genres'] df['combined_features'] = df.apply(combine_features, axis=1) # 特征向量化 cv = CountVectorizer() count_matrix = cv.fit_transform(df['combined_features']) # 计算相似度矩阵 cosine_sim = cosine_similarity(count_matrix) # 电影推荐函数 def get_recommendations(movie_title): idx = df.loc[df['title'] == movie_title].index[0] sim_scores = list(enumerate(cosine_sim[idx])) sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)[1:6] movie_indices = [i[0] for i in sim_scores] return df['title'].iloc[movie_indices] ``` 在上面的示例代码中,我们使用了 Pandas 来读取和处理电影数据,使用 Scikit-learn 中的 CountVectorizer 和 cosine_similarity 函数来进行特征向量化和相似度计算。最后,我们定义了一个 get_recommendations 函数来获取与输入电影最相似的前 5 部电影。 当然,这只是一个简单的示例代码。如何选择特征、如何选择模型等都需要根据你的数据集和需求来进行选择和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jcfszxc

赏我点铜板买喵粮吃吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值