推荐算法-简介

【自取】最近整理的,有需要可以领取学习:

1. 什么是推荐算法

推荐算法最早是在1992年提出的,但实际上近年来很流行,因为互联网的爆发,随着我们可以使用的数据量更大,推荐算法有很大的机会展示自己的能力。

[En]

The recommendation algorithm was first proposed in 1992, but it is actually popular in recent years, because of the outbreak of the Internet, with a larger amount of data available for us to use, the recommendation algorithm has a great opportunity to show its ability.

一开始,当我们在互联网上寻找信息时,我们都会进入雅虎,然后按类别点击,找到你想要的。这是一个手动过程。后来,我们使用谷歌直接搜索我们需要的东西。这些可以更准确地找到你想要的,但如果我不知道我要找的是什么怎么办?最典型的例子是,如果我打开豆瓣找到一部电影,或者如果我去购买它并说,我真的不知道我想买什么或看什么,那么推荐系统就可以派上用场。

[En]

At the beginning, when we look for information on the Internet, we all go into yahoo, and then click in by category to find what you want. This is a manual process. Later, we use google to directly search for what we need. These can find what you want more accurately, but what if I don’t know what I’m looking for? The most typical example is that if I open Douban to find a movie, or if I go to buy it and say, I don’t really know what I want to buy or watch, then the recommendation system can come in handy.

2. 推荐算法的条件

目前有各种各样的推荐算法,但无论如何,有几个条件,这是推荐的基本条件。

[En]

At present, there are all kinds of recommendation algorithms, but in any case, there are several conditions, which are the basic conditions of recommendation.

1.根据和你共同喜好的人来给你推荐
2.根据你喜欢的物品找出和它相似的来给你推荐
3.根据你给出的关键字来给你推荐,这实际上就退化成搜索算法了
4.根据上面的几种条件组合起来给你推荐

3. 推荐算法分类

3.1 基于流行度的推荐算法

基于流行度的推荐算法比较简单粗暴,主要是对热点商品或者信息的推荐。它主要是根据PV、UV、日均PV或分享率等数据来按某种热度排序来推荐给用户。

推荐算法-简介

该算法既有优点,也有缺点。优点简单,适合刚刚注册的新用户,可以解决推荐新用户的冷启动问题。缺点也很明显,它不能为用户提供个性化的推荐。基于该算法,还可以进行一些优化,比如增加用户群体的人气排名,比如将热榜上的体育内容推荐给体育迷,将政要的热门文章推送给热爱议政的用户。

[En]

This algorithm has both advantages and disadvantages. The advantage is simple, suitable for new users who have just registered, and can solve the cold start problem of recommending new users. The disadvantage is also obvious that it cannot provide personalized recommendations for users. Based on this algorithm, some optimizations can also be made, such as adding the popularity ranking of user groups, such as recommending sports content on the hot list to sports fans and pushing hot articles from dignitaries to users who love to talk about politics.

3.2 基于内容的推荐算法

基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。比如你看了哈利波特I,基于内容的推荐算法发现哈利波特II-VI,与你以前观看的在内容上面(共有很多关键词)有很大关联性,就把后者推荐给你。

这种推荐系统主要应用于一些信息应用中,对于文章本身(电影、音乐),提取一些标签作为关键词,然后用这些标签来评价两篇文章的相似度。

[En]

This kind of recommendation system is mostly used in some information applications, for the article (movie music) itself to extract some tag as its keywords, and then these tag can be used to evaluate the similarity of the two articles.

该推荐系统具有以下优点:1、易于实现,不需要用户数据,不存在稀疏冷启动问题。2.基于项目本身的特点,不存在过度推荐的热点问题。但不足之处在于:1.提取的特征不仅要保证准确率,而且要有一定的实际意义,否则很难保证推荐结果的相关性。豆瓣采用人工维护标签的策略,依靠用户维护内容标签的准确性。2.推荐项目可以重复,通常是新闻推荐。如果你读了一条关于MH370的新闻,推荐的新闻很可能与你浏览过的新闻相同。

[En]

The advantages of this recommendation system are as follows: 1. It is easy to implement and does not need user data, so there are no sparse and cold start problems. 2. Based on the characteristics of the item itself, there is no hot problem of over-recommendation. However, the disadvantages are as follows: 1. The extracted features should not only ensure accuracy but also have certain practical significance, otherwise it is difficult to ensure the relevance of the recommendation results. Douban uses the strategy of manual maintenance of tag, relying on users to maintain the accuracy of the tag of content. 2. The recommended Item may be repeated, typically the news recommendation. If you read a piece of news about MH370, the recommended news is likely to be the same as the one you have browsed.

3.3 基于关联规则的推荐算法

基于关联规则的推荐更常见于电子商务系统中,并且也被证明行之有效。其实际的意义为购买了一些物品的用户更倾向于购买另一些物品。基于关联规则的推荐系统的首要目标是挖掘出关联规则,也就是那些同时被很多用户购买的物品集合,这些集合内的物品可以相互进行推荐。目前关联规则挖掘算法主要从Apriori和FP-Growth两个算法发展演变而来。 基于关联规则的推荐系统一般转化率较高,因为当用户已经购买了频繁集合中的若干项目后,购买该频繁集合中其他项目的可能性更高。

该机制的不足之处在于:1、计算量大,但可以离线计算,影响小。二.由于用户数据的使用,难免会出现冷启动、稀疏的问题。3.存在热门单品容易被过度推荐的问题。

[En]

The shortcomings of this mechanism are as follows: 1. The amount of calculation is large, but it can be calculated offline, so the impact is small. two。 Due to the use of user data, there are inevitable problems of cold start and sparsity. 3. There is a problem that hot items are easily overrecommended.

3.4 基于协同过滤的推荐算法

协同过滤是推荐系统中广泛使用的一种推荐方法。该算法基于“物以类聚”的假设。喜欢相同物品的用户更有可能有相同的兴趣。在有用户评分的系统中,一般采用基于协同过滤的推荐系统,用评分来描述用户对商品的偏好。协同过滤被视为一种集思广益的使用模式,它不需要对项目进行特殊处理,而是通过用户建立对象之间的关系。目前,协同过滤推荐系统分为两种:基于用户(User-Based)的推荐和基于项目(Item-Based)的推荐。

[En]

Collaborative filtering is a recommendation method widely used in recommendation system. This algorithm is based on the assumption that “birds of a feather flock together”. Users who like the same items are more likely to have the same interests. The recommendation system based on collaborative filtering is generally used in the system with user rating, and the score is used to describe users’ preferences for items. Collaborative filtering is seen as a model for the use of collective wisdom, which does not require special treatment of the project, but through the user to establish the relationship between objects. At present, collaborative filtering recommendation system is divided into two types: user (User-based)-based recommendation and item-based (Item-based) recommendation.

3.4.1 基于用户(User-based)的推荐

基于用户的协同过滤推荐的基本原理是,根据所有用户对物品或者信息偏好(评分),发现与当前用户口味和偏好相似的”邻居”用户群,在一般应用中是采用计算K近邻的算法;基于这 K个邻居的历史偏好信息,为当前用户进行推荐。 这种推荐系统的优点在于推荐物品之间在内容上可能完全不相关,因此可以发现用户的潜在兴趣,并且针对每个用户生成其个性化的推荐结果。缺点在于一般的Web系统中,用户的增长速度都远远大于物品的增长速度,因此其计算量的增长巨大,系统性能容易成为瓶颈。因此在业界中单纯的使用基于用户的协同过滤系统较少。

推荐算法-简介

3.4.2 基于物品(Item-based)的推荐

基于物品的协同过滤和基于用户的协同过滤相似,它使用所有用户对物品或者信息的偏好(评分),发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。基于物品的协同过滤可以看作是关联规则推荐的一种退化,但由于协同过滤更多考虑了用户的实际评分,并且只是计算相似度而非寻找频繁集,因此可以认为基于物品的协同过滤准确率较高并且覆盖率更高。 同基于用户的推荐相比,基于物品的推荐应用更为广泛,扩展性和算法性能更好。由于项目的增长速度一般较为平缓,因此性能变化不大。缺点就是无法提供个性化的推荐结果。

推荐算法-简介

3.4.3 协同过滤算法总结

两种协同过滤:基于用户和基于物品两个策略中应该如何选择呢?其实基于物品的协同过滤推荐机制是Amazon 在基于用户的机制上改良的一种策略,因为在大部分的Web 站点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定;同时基于物品的机制比基于用户的实时性更好。但也不是所有的场景都是这样的情况,在一些新闻推荐系统中,也许物品,也就是新闻的个数可能大于用户的个数,而且新闻的更新程度也有很快,所以它的相似度依然不稳定。所以,推荐策略的选择其实也和具体的应用场景有很大的关系。

基于协同过滤的推荐机制是目前应用最广泛的推荐机制,它具有以下显著优势:

[En]

The recommendation mechanism based on collaborative filtering is the most widely used recommendation mechanism nowadays, and it has the following significant advantages:

  1. 它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可以理解的,所以这种方法也是领域无关的。
  2. 这种方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好。

那么它也有以下缺点:

[En]

Then it also has the following shortcomings:

  1. 方法的核心是基于历史数据,所以对新物品和新用户都有”冷启动”的问题。
  2. 推荐的效果依赖于用户历史偏好数据的多少和准确性。
  3. 在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。
  4. 对于一些特殊品味的用户不能给予很好的推荐。
  5. 由于以历史数据为基础,抓取和建模用户的偏好后,很难利用获取的用户偏好演变,从而导致这个方法不够灵活。

3.5 基于模型的推荐算法

基于模型的方法有很多,主要是使用常用的机器学习算法对目标用户建立推荐算法模型,然后对用户的爱好进行预测推荐以及对推荐的结果打分排序等。 常用的模型包括Aspect Model,pLSA,LDA,聚类,SVD,Matrix Factorization,LR,GBDT等,这种方法训练过程比较长,但是训练完成后,推荐过程比较快且准确。因此它比较适用于实时性比较高的业务如新闻、广告等。当然,而若是需要这种算法达到更好的效果,则需要人工干预反复的进行属性的组合和筛选,也就是我们常说的 特征工程。而由于新闻的时效性,系统也需要反复更新线上的数学模型,以适应变化。

简单地以LR为例,谈谈推荐系统是如何工作的。通过分析用户在系统中的行为和购买记录,得到如下表格:

[En]

Simply take LR as an example to talk about how the recommendation system works. By analyzing the user’s behavior and purchase records in the system, we get the following table:

推荐算法-简介

表格中的行是商品,x1~xn是影响用户行为的各种特征属性,比如用户的年龄、性别、地区、价格、品类等;y是用户对商品的偏好,可以是购买历史、浏览、收藏等。通过大量这样的数据,我们可以回归和拟合一个函数,并计算出相应的系数x1~xn,这是每个特征属性的相应权重。权重值越大,该属性对用户选择商品越重要。在对函数进行拟合时,我们会认为单个属性和另一个属性之间可能没有很强的相关性。例如,年龄和购买护肤品之间没有很强的相关性,性别和购买护肤品之间也没有很强的相关性,但当我们把年龄和性别放在一起考虑时,它们与购买行为有很强的关联。例如(我只是举例),20多岁和30多岁的女性用户更倾向于购买护肤品,这被称为跨属性。通过反复的测试和经验,我们可以调整特征属性的组合,以拟合最准确的回归函数。最终属性权重如下:

[En]

The row in the table is an item, and x1~xn is a variety of characteristic attributes that affect the user’s behavior, such as the user’s age, gender, region, price, category, etc., while y is the user’s preference for the item, which can be purchase history, browsing, collection, and so on. Through a large number of such data, we can regress and fit a function and calculate the corresponding coefficient of x1~xn, which is the corresponding weight of each feature attribute. The larger the weight value is, the more important the attribute is for users to choose goods. When fitting the function, we will think that there may not be a strong correlation between a single attribute and another attribute. For example, there is not a strong correlation between age and the purchase of skincare products, nor is there a strong correlation between gender and buying skincare products, but when we consider age and gender together, they are strongly associated with purchasing behavior. For example (I’m just for example), female users in their 20s and 30s are more likely to buy skin care products, which is called cross-attribute. Through repeated testing and experience, we can adjust the combination of feature attributes to fit the most accurate regression function. The final attribute weights are as follows:

推荐算法-简介

基于模型的算法速度快、精度高,适用于新闻、广告等实时服务,但如果需要这种算法达到更好的效果,则需要人工干预,反复组合和过滤属性,即所谓的特征工程。由于新闻的及时性,系统还需要反复更新在线数学模型以适应变化。

[En]

Because of its high speed and accuracy, the model-based algorithm is suitable for real-time services such as news and advertising, but if this algorithm is needed to achieve better results, it needs manual intervention to combine and filter attributes repeatedly, that is, the so-called Feature Engineering. Because of the timeliness of the news, the system also needs to update the online mathematical model repeatedly to adapt to the changes.

3.6 混合推荐算法

真正的现实应用中,其实基本上很少会使用单一的推荐算法去实现推荐任务。因此,大型成熟网站的推荐系统都是基于各种推荐算法的优缺点以及适合场景分析的情况下的组合使用的”混合算法”。当然,混合策略也会是十分丰富的,例如不同策略的算法加权、不同场景和阶段使用不同的算法等等。具体的怎么混合需要结合实际的应用场景进行分析与应用。

由此可见,推荐算法的种类仍然很多,尤其是当应用场景发生变化时,推荐算法往往需要做出很大的改变。接下来,我们将对上述许多算法进行适当的详细讲解和实战。

[En]

Thus it can be seen that there are still many types of recommendation algorithms, especially when the application scene changes, recommendation algorithms often need to make great changes. Next, we will make appropriate detailed explanation and actual combat for many of the above algorithms.

参考文章:

[En]

Reference article:

[机器学习]推荐系统之协同过滤算法

协同过滤推荐算法的原理及实现

系列学习——推荐算法综述

5类系统推荐算法,非常好使,非常全

Original: https://blog.csdn.net/qq_36535820/article/details/109221260
Author: Snowgrass
Title: 推荐算法-简介

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/6450/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部