首页 > 编程知识 正文

cb是什么(算法复杂度)

时间:2023-05-04 03:26:14 阅读:77903 作者:4891

推荐系统可以帮助用户快速发现兴趣和高质量的信息,增加用户使用产品的时间。 推荐系统越准确,用户体验就越好,产品越容易留住用户。 近年来,当今头条、嘀嗒等产品的诞生,也带动了基于内容的推荐算法这一老算法的兴起。 本文是基于内容的推荐算法的基本原理,enjoy~

基于内容的推荐算法是众多推荐算法之一,是机器学习算法。 可以说推荐系统算法是机器学习算法在我们生活中最普及的算法。 基于内容的推荐算法(基于内容的推荐算法CB ),以下简称CB。

CB的思想非常简单。 根据用户过去喜欢的内容,向用户推荐与过去喜欢的内容相似的内容。 关键是这里内容相似性的度量,这才是算法运行过程中的核心。

CB的过程一般包括以下三个步骤:

内容表示(Item Representation )对于各个item,提取表示该item特征; 特征学习(Profile Learning )利用一个用户过去喜欢(和讨厌)的item的特征数据,学习该用户喜欢的特征(profile )。 生成推荐列表(Recommendation Generation )通过将在上一步骤中获得的用户配置文件(profile )与候选item的配置文件进行比较,为此用户推荐一组最相关的item。 举个例子,简单体验一下CB的过程吧。 以今天的标题为例。 今天的标题使用了基于内容的文本推荐算法。 在今天的标题中,item是文章。

1. 内容表征

首先要从文章的内容中提取表示它们的属性。 常见的方法是使用一篇文章中出现的单词来表示这篇文章,但每个单词的权重经常使用加权技术算法来计算。 该方法可以用具体向量表示抽象文章。

在APP应用程序中,item具有说明它的属性。 这些属性通常可以分为两类:结构化属性和非结构化属性。

结构化属性的含义比较明确,其可能的值限定在一定的范围内; 另一方面,非结构化的属性,其意义不太明确,取值也没有限制,很多时候就这样很难使用。

例如在社交网站上,item是人,一个item有身高、学历、籍贯等结构化属性,以及item写的个人签名、公开的内容等非结构化属性。 关于结构化数据,拿来就可以马上使用; 但是,对于非结构化数据(如文章),在用于模型之前必须将其转换为结构化数据。

实际场景中遇到最多的非结构化数据可能是文章。 那么,如何将非结构化的文章结构化呢?

我们所表征的所有文章的集合都是D={d1,d2,…,dN},而所有文章中出现的词的集合都是T={t1,t2,…,tn}。 也就是说,有n篇文章需要处理,这些文章包含了n个不同的词语。

最终使用一个向量表示文章。 例如,第j个文章被表示为dj={w1j,w2j,…,wnj}。 在这里,wij表示文章j中第I个词的权重,值越大表示越重要。

因此,为了表示第j篇文章,现在重要的是如何计算dj的各个分量的值。 可以通过TF-IDF计算所有I词在文章j中的对应权重,TF-IDF是用于信息检索和数据挖掘的通用加权技术。

通过以上方法,得到了每个item特征的表现(每篇文章,所有词的权重向量模型)。

假设

2. 特征学习

用户已经对一些item做出了偏好的判断,喜欢其中的一部分item,不喜欢其中的另一部分。 那么,这一步是通过用户过去对这些喜好的判断,为他形成模型。

该模型可以确定用户是否喜欢新的item。 因此,我们需要解决的是有监督的分类问题,这里可以采用一些机器学习的分类算法。

2.1 K近邻(KNN)算法

对于新item,KNN算法将首先查找用户评估的与此新item最相似的k个item。

然后,根据该用户对这k个item的喜好程度,判断对该新item的喜好程度。

在这种方法中,如何根据item的属性向量计算item之间的相似度很重要。 对于结构化数据,相似度计算可以使用欧式距离,如果使用向量空间模型表示item,则相似度计算可以使用余弦相似度(cosine )。

2.2 决策树算法

决策树适用于item属性较少且为结构化属性的情况。

在这种情况下,决策树可以生成简单直观易懂的决策结果。 但是,item的属性很多,来源于文章等非结构化数据时,决策树的效果可能不太好。

2.3 朴素贝叶斯算法

朴素贝叶斯算法常用于文本分类,假设给定文章的类别后,各个词出现的概率是相互独立的。

朴素贝叶斯算法的代码实现相对简单,因此往往是众多分类问题中的第一个尝试。

我们现在的问题包括两个类别:用户喜欢的item和他不喜欢的item。 给定item的类,每个属性的可能值的概率是相互独立的。 我们可以利用该用户的历史偏好数据进行训练,然后使用训练

好的贝叶斯分类器对给定的item做分类。

3. 生成推荐列表

如果特征学习中我们使用了分类模型,那么只要把模型预测的用户最可能感兴趣的n个item作为推荐返回给用户即可。

4. CB的缺点

4.1 无法挖掘出用户的潜在兴趣

CB的推荐只依赖于用户过去对某些item的喜好,它产生的推荐也都会和用户过去喜欢的item相似。如果一个用户以前只看与科技有关的文章,那CB只会给他推荐更多与科技相关的文章,它不会知道用户可能还喜欢政治类的文章。

4.2 无法为新用户产生推荐

新用户没有喜好历史,自然无法获得他的特征,所以也就无法为他产生推荐内容了。

5. 总结

由于CB算法的一些缺点,目前大部分的推荐系统都是以其他算法为主(如协同过滤算法),而辅助使用CB来解决主算法在某些情况下的不精确性(如解决新item问题)。

但CB的作用是不可否认的,只要具体应用中有可用的属性,那么基本都能在系统里看到CB的影子。组合CB和其他推荐算法的方式有很多,最常用的可能是就用CB来过滤其他算法的候选集,把一些不太合适的候选去掉。

我们也可以看到,机器学习算法是推荐系统的基石与核心,未来,随着机器学习、深度学习算法的普及,相信也会出现更加优秀的组合推荐算法。

#专栏作家#

流年,人人都是产品经理专栏作家。互联网产品设计师,4年互联网产品设计经验。擅长用户体验设计,喜欢钻研需求功能背后的技术实现方式;在成为综合型产品设计师的道路上不断努力前进!

本文原创发布于人人都是产品经理。未经许可,禁止转载

题图来自 Pexels,基于 CC0 协议

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。