导航:首页 > 净水问答 > 基于项目的协同过滤推荐算法

基于项目的协同过滤推荐算法

发布时间:2022-09-29 17:07:45

1. 矩阵分解在协同过滤推荐算法中的应用

矩阵分解在协同过滤推荐算法中的应用
推荐系统是当下越来越热的一个研究问题,无论在学术界还是在工业界都有很多优秀的人才参与其中。近几年举办的推荐系统比赛更是一次又一次地把推荐系统的研究推向了高潮,比如几年前的Neflix百万大奖赛,KDD CUP 2011的音乐推荐比赛,去年的网络电影推荐竞赛,还有最近的阿里巴巴大数据竞赛。这些比赛对推荐系统的发展都起到了很大的推动作用,使我们有机会接触到真实的工业界数据。我们利用这些数据可以更好地学习掌握推荐系统,这些数据网上很多,大家可以到网上下载。
推荐系统在工业领域中取得了巨大的成功,尤其是在电子商务中。很多电子商务网站利用推荐系统来提高销售收入,推荐系统为Amazon网站每年带来30%的销售收入。推荐系统在不同网站上应用的方式不同,这个不是本文的重点,如果感兴趣可以阅读《推荐系统实践》(人民邮电出版社,项亮)第一章内容。下面进入主题。
为了方便介绍,假设推荐系统中有用户集合有6个用户,即U={u1,u2,u3,u4,u5,u6},项目(物品)集合有7个项目,即V={v1,v2,v3,v4,v5,v6,v7},用户对项目的评分结合为R,用户对项目的评分范围是[0, 5]。R具体表示如下:

推荐系统的目标就是预测出符号“?”对应位置的分值。推荐系统基于这样一个假设:用户对项目的打分越高,表明用户越喜欢。因此,预测出用户对未评分项目的评分后,根据分值大小排序,把分值高的项目推荐给用户。怎么预测这些评分呢,方法大体上可以分为基于内容的推荐、协同过滤推荐和混合推荐三类,协同过滤算法进一步划分又可分为基于基于内存的推荐(memory-based)和基于模型的推荐(model-based),本文介绍的矩阵分解算法属于基于模型的推荐。
矩阵分解算法的数学理论基础是矩阵的行列变换。在《线性代数》中,我们知道矩阵A进行行变换相当于A左乘一个矩阵,矩阵A进行列变换等价于矩阵A右乘一个矩阵,因此矩阵A可以表示为A=PEQ=PQ(E是标准阵)。
矩阵分解目标就是把用户-项目评分矩阵R分解成用户因子矩阵和项目因子矩阵乘的形式,即R=UV,这里R是n×m, n =6, m =7,U是n×k,V是k×m。直观地表示如下:

高维的用户-项目评分矩阵分解成为两个低维的用户因子矩阵和项目因子矩阵,因此矩阵分解和PCA不同,不是为了降维。用户i对项目j的评分r_ij =innerproct(u_i, v_j),更一般的情况是r_ij =f(U_i, V_j),这里为了介绍方便就是用u_i和v_j内积的形式。下面介绍评估低维矩阵乘积拟合评分矩阵的方法。
首先假设,用户对项目的真实评分和预测评分之间的差服从高斯分布,基于这一假设,可推导出目标函数如下:

最后得到矩阵分解的目标函数如下:

从最终得到得目标函数可以直观地理解,预测的分值就是尽量逼近真实的已知评分值。有了目标函数之后,下面就开始谈优化方法了,通常的优化方法分为两种:交叉最小二乘法(alternative least squares)和随机梯度下降法(stochastic gradient descent)。
首先介绍交叉最小二乘法,之所以交叉最小二乘法能够应用到这个目标函数主要是因为L对U和V都是凸函数。首先分别对用户因子向量和项目因子向量求偏导,令偏导等于0求驻点,具体解法如下:

上面就是用户因子向量和项目因子向量的更新公式,迭代更新公式即可找到可接受的局部最优解。迭代终止的条件下面会讲到。
接下来讲解随机梯度下降法,这个方法应用的最多。大致思想是让变量沿着目标函数负梯度的方向移动,直到移动到极小值点。直观的表示如下:

其实负梯度的负方向,当函数是凸函数时是函数值减小的方向走;当函数是凹函数时是往函数值增大的方向移动。而矩阵分解的目标函数L是凸函数,因此,通过梯度下降法我们能够得到目标函数L的极小值(理想情况是最小值)。
言归正传,通过上面的讲解,我们可以获取梯度下降算法的因子矩阵更新公式,具体如下:

(3)和(4)中的γ指的是步长,也即是学习速率,它是一个超参数,需要调参确定。对于梯度见(1)和(2)。
下面说下迭代终止的条件。迭代终止的条件有很多种,就目前我了解的主要有
1) 设置一个阈值,当L函数值小于阈值时就停止迭代,不常用
2) 设置一个阈值,当前后两次函数值变化绝对值小于阈值时,停止迭代
3) 设置固定迭代次数
另外还有一个问题,当用户-项目评分矩阵R非常稀疏时,就会出现过拟合(overfitting)的问题,过拟合问题的解决方法就是正则化(regularization)。正则化其实就是在目标函数中加上用户因子向量和项目因子向量的二范数,当然也可以加上一范数。至于加上一范数还是二范数要看具体情况,一范数会使很多因子为0,从而减小模型大小,而二范数则不会它只能使因子接近于0,而不能使其为0,关于这个的介绍可参考论文Regression Shrinkage and Selection via the Lasso。引入正则化项后目标函数变为:

(5)中λ_1和λ_2是指正则项的权重,这两个值可以取一样,具体取值也需要根据数据集调参得到。优化方法和前面一样,只是梯度公式需要更新一下。
矩阵分解算法目前在推荐系统中应用非常广泛,对于使用RMSE作为评价指标的系统尤为明显,因为矩阵分解的目标就是使RMSE取值最小。但矩阵分解有其弱点,就是解释性差,不能很好为推荐结果做出解释。
后面会继续介绍矩阵分解算法的扩展性问题,就是如何加入隐反馈信息,加入时间信息等。

2. 07_推荐系统算法详解

     基于人口统计学的推荐与用户画像、基于内容的推荐、基于协同过滤的推荐。

1、基于人口统计学的推荐机制( Demographic-based Recommendation)是一种最易于实现的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。

2、对于没有明确含义的用户信息(比如登录时间、地域等上下文信息),可以通过聚类等手段,给用户打上分类标签。

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

4、用户信息标签化的过程一般又称为 用户画像 ( User Profiling)。

(1)用户画像( User Profile)就是企业通过收集与分析消费者社会属性、生活习惯、消费行为等主要信息的数据之后,完美地抽象出一个用户的商业全貌作是企业应用大数据技术的基本方式。

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

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

1、 Content- based Recommendations(CB)根据推荐物品或内容的元数据,发现物品的相关性,再基于用户过去的喜好记录,为用户推荐相似的物品。

2、通过抽取物品内在或者外在的特征值,实现相似度计算。比如一个电影,有导演、演员、用户标签UGC、用户评论、时长、风格等等,都可以算是特征。

3、将用户(user)个人信息的特征(基于喜好记录或是预设兴趣标签),和物品(item)的特征相匹配,就能得到用户对物品感兴趣的程度。在一些电影、音乐、图书的社交网站有很成功的应用,有些网站还请专业的人员对物品进行基因编码/打标签(PGC)。

4、 相似度计算:

5、对于物品的特征提取——打标签(tag)

        - 专家标签(PGC)

        - 用户自定义标签(UGC)

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

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

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

        - 潜在语义分析(LSA)

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

7、 特征工程

(1)特征( feature):数据中抽取出来的对结果预测有用的信息。

         特征的个数就是数据的观测维度。

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

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

         特征按照不同的数据类型分类,有不同的特征处理方法:数值型、类别型、时间型、统计型。

(2)数值型特征处理

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

        * 幅度调整归一化:

            特征与特征之间应该是平等的,区别应该体现在 特征内部 。

            例如房屋价格和住房面积的幅度是不同的,房屋价格可能在3000000~15000000(万)之间,而住房面积在40-300(平方米)之间,那么明明是平等的两个特征,输入到相同的模型中后由于本身的幅值不同导致产生的效果不同,这是不合理的

                        

        * 数值型特征处理——离散化

        离散化的两种方式:等步长——简单但不一定有效;等频——min -> 25% -> 75% -> max

        两种方法对比:

            等频的离散化方法很精准,但需要每次都对数据分布进行一遍从新计算,因为昨天用户在淘宝上买东西的价格分布和今天不一定相同,因此昨天做等频的切分点可能并不适用,而线上最需要避免的就是不固定,需要现场计算,所以昨天训练出的模型今天不一定能使用。

            等频不固定,但很精准,等步长是固定的,非常简单,因此两者在工业上都有应用。

(3) 类别型特征处理

        类别型数据本身没有大小关系,需要将它们编码为数字,但它们之间不能有预先设定的大小关系,因此既要做到公平,又要区分开它们,那么直接开辟多个空间。

        One-Hot编码/哑变量:One-Hot编码/哑变量所做的就是将类别型数据平行地展开,也就是说,经过One-Hot编码哑变量后,这个特征的空间会膨胀。

(4) 时间型特征处理

        时间型特征既可以做连续值,又可以看做离散值。

        连续值:持续时间(网页浏览时长);间隔时间(上一次购买/点击离现在的时间间隔)。

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

(5) 统计型特征处理

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

        分位线:商品属于售出商品价格的分位线处。

        次序性:商品处于热门商品第几位。

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

8、 推荐系统常见反馈数据 :

9、 基于UGC的推荐

     用户用标签来描述对物品的看法,所以用户生成标签(UGC)是联系用户和物品的纽带,也是反应用户兴趣的重要数据源。

    一个用户标签行为的数据集一般由一个三元组(用户,物品,标签)的集合表示,其中一条记录(u,i,b)表示用户u给物品打上了标签b。

    一个最简单的算法:

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

        - 对于每个标签,统计被打过这个标签次数最多的物品

        - 对于一个用户,首先找到他常用的标签,然后找到具有这些标签的最热门的物品,推荐给他

        - 所以用户u对物品i的兴趣公式为 ,其中 使用户u打过标签b的次数, 是物品i被打过标签b的次数。

    简单算法中直接将用户打出标签的次数和物品得到的标签次数相乘,可以简单地表现出用户对物品某个特征的兴趣。

    这种方法倾向于给热门标签(谁都会给的标签,如“大片”、“搞笑”等)、热门物品(打标签人数最多)比较大的权重,如果一个热门物品同时对应着热门标签,那它就会“霸榜”,推荐的个性化、新颖度就会降低。

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

10、 TF-IDF:词频逆文档频率 ( Term Frequency- -Inverse Document Frequency,TF-DF)是一种用于资讯检索与文本挖掘的常用加权技术。

        TFDF是一种统计方法,用以评估一个字词对于一个文件集或一个语料库中的其中份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

                    TFIDF=TF IDF

         TF-IDF的主要思想是 :如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

        TF-DF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。

         词频( Term Frequency,TF) :指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数的归一化,以防止偏向更长的文件。(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否。) ,其中 表示词语 i 在文档 j 中出现的频率, 表示 i 在 j 中出现的次数, 表示文档 j 的总词数。

         逆向文件频率( Inverse Document Frequency,IDF) :是一个词语普遍重要性的度量,某一特定词语的IDF,可以由总文档数目除以包含该词语之文档的数目,再将得到的商取对数得到 ,其中 表示词语 i 在文档集中的逆文档频率,N表示文档集中的文档总数, 表示文档集中包含了词语 i 的文档数。

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

          借鉴TF-IDF的思想,以一个物品的所有标签作为“文档”,标签作为“词语”,从而计算标签的“词频”(在物品所有标签中的频率)和“逆文档频率”(在其它物品标签中普遍出现的频率)。

           由于“物品i的所有标签” 应该对标签权重没有影响,而 “所有标签总数” N 对于所有标签是一定的,所以这两项可以略去。在简单算法的基础上,直接加入对热门标签和热门物品的惩罚项: ,其中, 记录了标签 b 被多少个不同的用户使用过, 记录了物品 i 被多少个不同的用户打过标签。

(一)协同过滤(Collaborative Filtering, CF)

1、基于协同过滤(CF)的推荐:基于内容( Content based,CB)主要利用的是用户评价过的物品的内容特征,而CF方法还可以利用其他用户评分过的物品内容。

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

         - 物品内容不完全或者难以获得时,依然可以通过其他用户的反馈给出推荐。

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

        - CF推荐不受内容限制,只要其他类似用户给出了对不同物品的兴趣,CF就可以给用户推荐出内容差异很大的物品(但有某种内在联系)

    分为两类:基于近邻和基于模型。

2、基于近邻的推荐系统:根据的是相同“口碑”准则。是否应该给Cary推荐《泰坦尼克号》?

(二)基于近邻的协同过滤

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

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

    User-CF和基于人口统计学的推荐机制:

        - 两者都是计算用户的相似度,并基于相似的“邻居”用户群计算推荐。

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

2、基于物品(Item-CF):基于项目的协同过滤推荐的基本原理与基于用户的类似,只是使用所有用户对物品的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。

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

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

   同样是协同过滤,在基于用户和基于项目两个策略中应该如何选择呢?

        - 电商、电影、音乐网站,用户数量远大于物品数量。

        - 新闻网站,物品(新闻文本)数量可能大于用户数量。

3、 User-CF和Item-CF的比较

     同样是协同过滤,在User-CF和ltem-CF两个策略中应该如何选择呢?

     Item-CF应用场景

       -  基于物品的协同过滤( Item-CF ) 推荐机制是 Amazon在基于用户的机制上改良的一种策略因为在大部分的Web站点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定,同时基于物品的机制比基于用户的实时性更好一些,所以 Item-CF 成为了目前推荐策略的主流。

     User-CF应用场景

        - 设想一下在一些新闻推荐系统中,也许物品一一也就是新闻的个数可能大于用户的个数,而且新闻的更新程度也有很快,所以它的相似度依然不稳定,这时用 User-cf可能效果更好。

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

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

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

        它不需要对物品或者用户进行严格的建模,而且不要求对物品特征的描述是机器可理解的,所以这种方法也是领域无关的。

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

(2)存在的问题

        方法的核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题。

        推荐的效果依赖于用户历史好数据的多少和准确性。

        在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。

        对于一些特殊品味的用户不能给予很好的推荐。

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

1、基本思想

(1)用户具有一定的特征,决定着他的偏好选择

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

(3)用户之所以选择某一个商品,是因为用户特征与物品特征相互匹配。

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

    有显性特征时(比如用户标签、物品分类标签)我们可以直接匹配做出推荐;没有时,可以根据已有的偏好数据,去发据出隐藏的特征,这需要用到隐语义模型(LFM)。

2、基于模型的协同过滤推荐,就是基于样本的用户偏好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测新物品的得分,计算推荐

    基于近邻的推荐和基于模型的推荐

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

        - 而基于模型的方法,是要使用这些偏好数据来训练模型,找到内在规律,再用模型来做预测(类似回归)

    训练模型时,可以基于标签内容来提取物品特征,也可以让模型去发据物品的潜在特征;这样的模型被称为 隐语义模型 ( Latent Factor Model,LFM)。

(1)隐语义模型(LFM):用隐语义模型来进行协同过滤的目标:

            - 揭示隐藏的特征,这些特征能够解释为什么给出对应的预测评分

            - 这类特征可能是无法直接用语言解释描述的,事实上我们并不需要知道,类似“玄学”

        通过矩阵分解进行降维分析

            - 协同过滤算法非常依赖历史数据,而一般的推荐系统中,偏好数据又往往是稀疏的;这就需要对原始数据做降维处理。

            - 分解之后的矩阵,就代表了用户和物品的隐藏特征

        隐语义模型的实例:基于概率的隐语义分析(pLSA)、隐式迪利克雷分布模型(LDA)、矩阵因子分解模型(基于奇异值分解的模型,SVD)

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

(3)LFM的进一步理解

    我们可以认为,用户之所以给电影打出这样的分数,是有内在原因的,我们可以挖掘出影响用户打分的隐藏因素,进而根据未评分电影与这些隐藏因素的关联度,决定此未评分电影的预测评分。

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

    找到隐藏因子,可以对user和Iiem进行关联(找到是由于什么使得user喜欢/不喜欢此Item,什么会决定user喜欢/不喜欢此item),就可以推测用户是否会喜欢某一部未看过的电影。

(4)矩阵因子分解

(5)模型的求解——损失函数

(6)模型的求解算法——ALS

    现在,矩阵因子分解的问题已经转化成了一个标准的优化问题,需要求解P、Q,使目标损失函数取最小值。

    最小化过程的求解,一般采用随机梯度下降算法或者交替最小二乘法来实现交替最小二乘法( Alternating Least Squares,ALS)

    ALS的思想是,由于两个矩阵P和Q都未知,且通过矩阵乘法耦合在一起,为了使它们解耦,可以先固定Q,把P当作变量,通过损失函数最小化求出P,这就是一个经典的最小二乘问题;再反过来固定求得的P,把Q当作变量,求解出Q:如此交替执行,直到误差满足阅值条件,或者到达迭代上限。

(7)梯度下降算法

3. 协同过滤,基于内容推荐有什么区别

举个简单的小例子,我们已知道
用户u1喜欢的电影是A,B,C
用户u2喜欢的电影是A, C, E, F
用户u3喜欢的电影是B,D
我们需要解决的问题是:决定对u1是不是应该推荐F这部电影
基于内容的做法:要分析F的特征和u1所喜欢的A、B、C的特征,需要知道的信息是A(战争片),B(战争片),C(剧情片),如果F(战争片),那么F很大程度上可以推荐给u1,这是基于内容的做法,你需要对item进行特征建立和建模。
协同过滤的办法:那么你完全可以忽略item的建模,因为这种办法的决策是依赖user和item之间的关系,也就是这里的用户和电影之间的关系。我们不再需要知道ABCF哪些是战争片,哪些是剧情片,我们只需要知道用户u1和u2按照item向量表示,他们的相似度比较高,那么我们可以把u2所喜欢的F这部影片推荐给u1。
根据数据源的不同推荐引擎可以分为三类
1、基于人口的统计学推荐(Demographic-based Recommendation)
2、基于内容的推荐(Content-based Recommendation)
3、基于协同过滤的推荐(Collaborative Filtering-based Recommendation)
基于内容的推荐:
根据物品或内容的元数据,发现物品或内容的相关性,然后基于用户以前的喜好记录推荐给用户相似的物品
基于内容推荐的一个典型的例子,电影推荐系统,首先我们需要对电影的元数据有一个建模,这里只简单的描述了一下电影的类型;然后通过电影的元数据发现电影间的相似度,因为类型都是“爱情,浪漫”电影 A 和 C 被认为是相似的电影(当然,只根据类型是不够的,要得到更好的推荐,我们还可以考虑电影的导演,演员等等);最后实现推荐,对于用户 A,他喜欢看电影 A,那么系统就可以给他推荐类似的电影 C。

4. 信息流的那点事:3 推荐算法是如何实现的

讲完信息流流行的原因( 信息流的那点事:2 为什么信息流如此流行 ),这一篇,我们来从产品的视角,来看看推荐算法在技术上是如何实现的。

根据需要的技术和运营成本,可以将主流的推荐算法分为三类:基于内容元数据的推荐、基于用户画像的推荐、基于协同过滤算法的推荐。

基于元数据的推荐是比较基础的推荐算法,基本原理是给内容打标签,具体元数据的选取根据的内容有所不同,比较通用的角度有内容的关键词、类型、作者、来源等,打开一款头条类app,选择屏蔽一条内容,就可以看到一些该内容的元数据。

有了内容的元数据,就可以根据内容间的关联,可以进行相关内容的推荐,喜欢看奇葩说的用户,可能也会喜欢看同是米未传媒出品的饭局的诱惑。根据内容的元数据,也可以记录并逐渐明确用户的内容偏好,进行数据积累,便于结合用户的喜好进行对应的精准推荐,这也就是下面要说的基于用户画像的推荐的内容。

用户画像,类比一下就是给用户打标签,主要由三部分组成:用户的基础数据(年龄、性别等)、应用使用数据(应用使用频率、时长等)和内容偏好数据(喜好的内容分类、种类等)。

对于基础数据,不同年龄的用户的内容偏好有很大差异,年轻人可能更喜欢新歌热歌,而中年人可能更爱听怀旧一些的歌曲;根据应用使用数据,可以进行用户分层,活跃用户可以多推荐内容促进使用,快要流失用户可以推送一些打开率较高的内容来挽回,运营活动也可以更有针对性;基于内容偏好数据,可以记录并逐渐明确用户的内容偏好,从而进行更精准的推荐,从爱看娱乐新闻,到爱看国内明星,再到爱看某个小鲜肉,随着内容偏好数据的逐步积累,头条类产品的推荐也就越精确。

协同过滤算法,简单来说,就是寻找相近的用户或内容来进行推荐,主要有基于用户的协同过滤推荐和基于项目的协同过滤推荐两种。

(1)基于用户的协同过滤推荐

基于用户的协同过滤推荐算法,就是通过算法分析出与你内容偏好相近的用户,将他喜欢的内容推荐给你,这种推荐给你志同道合的人爱看的内容的思路,更相近于生活中的朋友作为同道中人的推荐。举例来说,如果你喜欢ABC,而其他用户在和你一样喜欢ABC的同时,还都喜欢D,那么就会把D推荐给你。

(2).基于内容的协同过滤推荐

基于内容的协同过滤推荐算法,就是通过算法分析出内容和内容之间的关联度,根据你喜欢的内容推荐最相关的内容,常见的看了这个内容的用户85%也喜欢xxx,就是这种思路。举例来说,如果你喜欢A,而喜欢A的用户都喜欢B,那么就会把B推荐给你。

相比于纯粹的基于内容元数据的推荐,基于内容的协同过滤推荐更能发现一些内容间深层次的联系,比如罗辑思维经常推荐各种内容,仅仅根据内容元数据来推荐,一集罗辑思维最相关的应该是另外一集,并不能推荐内容元数据相关性不太大的节目里推荐的内容;但由于可能很多用户看完后都会搜索查看节目里推荐的内容,基于内容的协同过滤推荐就会发现两者的相关性,进行推荐。

介绍推荐算法的思路时,我们一直谈到一个词“内容偏好”,这也就是实现推荐算法时一个核心的问题——需要通过怎样的数据,才能判定用户的内容偏好?主流的思路有一下三种:

让用户手动选择,显然是最简单的思路,然而由于选择的空间必然有限,只能让用户从几个大类中间挑选,无法涵盖全部内容的同时,粒度过大推荐也就很难精准。而且刚打开应用就让用户选择,或者是让用户使用一段时间后在去补充选择,这样的操作都太重可能造成用户流失。

既然手动选择很难实现,我们就需要从用户的使用数据中挖掘,主流的思路就是根据用户一些主动操作来判断,点击阅读了就说明喜欢,点了赞或者回复分享就是特别喜欢,如果跳过了内容就减少推荐,点击了不感兴趣,就不再推荐。

根据用户使用的操作来判断内容偏好,在不断地使用中积累与细化数据,对内容偏好的判断也就越来越准确,这就是头条系应用的主要策略,这样的策略对于下沉市场的不愿做出主动选择的沉默用户,是一个非常适合的策略,但这样只看点击与操作,不关注内容实际质量的策略也会造成标题党、内容低俗等问题,在后文会进一步介绍。

既然选择不能完全代表用户的内容偏好,如何使判断更加精准呢?就要从一些更加隐性的数据入手了,比如对于文章,除了点击,阅读时间,阅读完成度,是否查看文章的相关推荐内容,都是可以考虑的角度,相比纯粹的点击判断,可以一定程度上解决标题党的问题。再比如看视频,如果快进次数过多,虽然看完了,可能也不是特别感兴趣,而值得反复回看的内容,命中内容偏好的几率就相对较高。

介绍完了推荐算法的原理与数据来源,让我们来试着还原一下一条内容的完整分发流程。

首先,是内容的初始化与冷启动。可以通过算法对内容进行分析提取或者人工处理,提取内容的来源、分类、关键词等元数据,再根据用户画像计算内容兴趣匹配度,分发给有对应内容偏好的用户,,也可以通过内容原匹配度,向关系链分发,完成内容的冷启动。

然后,可以根据用户阅读时间,阅读完成度,互动数等数据,对该内容的质量进行分析,相应的增加或者减少推荐,实现内容动态分发调节。

最后,就是协同过滤算法发挥作用的时间,对于优质内容,可以通过基于用户的协同过滤推荐,推荐给与该内容受众有类似爱好的用户,也可以基于项目的协同过滤推荐,推荐给爱观看同类内容的用户,让优质内容的传播不在局限于关系链。

在真正的推荐算法实现过程中,除了基础的内容原匹配度,内容匹配度和内容质量,还有很多值得考虑的问题,比如新闻通知等时效性内容就要短时间加权,超时则不推荐;对于用户的内容偏好也不能永远维持,随着时间用户可能会喜欢新的内容,如果一定时间内用户对以前喜欢的内容不感兴趣,就要减少该种类推荐;还有为了不陷入越喜欢越推荐,最后全部是一种内容,让用户厌烦的境地,对于用户的偏好也要设定一个上限;为了保持新鲜度,需要帮助用户发现他可能喜欢的新内容.....

最后,通过数据可以了解我们如何阅读这篇文章,但任何数据都无法准确描述我们阅读后的感受与收获;再高级的算法也只是算法,它虽然可能比我们更了解我们实际的的内容偏好,但无法了解到我们对于内容的追求。

这可能也就是头条系产品虽然收获了巨大成功,但也收到了标题党、低俗化、回音室效应等指责的原因,下一篇,让我们来聊聊,信息流产品的面临的问题与可能的解决方法。

5. 基于用户、基于项目和SVD的协同过滤Python代码

目前主要有三种度量用户间相似性的方法,分别是:余弦相似性、相关相专似性以及修正的属余弦相似性。①余弦相似性(Cosine):用户一项目评分矩阵可以看作是n维空间上的向量,对于没有评分的项目将评分值设为0,余弦相似性度量方法是通过计算向量间的余弦夹角来度量用户间相似性的。设向量i和j分别表示用户i和用户j在n维空间上的评分,则用基于协同过滤的电子商务个性化推荐算法研究户i和用户j之间的相似性为:②修正的余弦相似性 (AdjustedCosine):余弦相似度未考虑到用户评分尺度问题,如在评分区间[1一5]的情况下,对用户甲来说评分3以上就是自己喜欢的,而对于用户乙,评分4以上才是自己喜欢的。通过减去用户对项的平均评分,修正的余弦相似性度量方法改善了以上问题。用几表示用户i和用户j共同评分过的项集合,Ii和寿分别表示用户i和用户j评分过的项集合,则用户i和用户j之间的相似性为:③相关相似性(Correlation)此方法是采用皮尔森(Pearson)相关系数来进行度量。设Iij表示用户i和用户j共同评分过的项目集合,则用户i和用户j之间相似性为:

6. 协同过滤算法

用户行为数据在网站上最简单的存在形式就是日志,比如用户在电子商务网站中的网页浏览、购买、点击、评分和评论等活动。 用户行为在个性化推荐系统中一般分两种——显性反馈行为(explicit feedback)和隐性反馈 行为(implicit feedback)。显性反馈行为包括用户明确表示对物品喜好的行为。网站中收集显性反馈的主要方式就是评分和喜欢/不喜欢。隐性反馈行为指的是那些不能明确反应用户喜好 的行为。最具代表性的隐性反馈行为就是页面浏览行为。 按照反馈的明确性分,用户行为数据可以分为显性反馈和隐性反馈,但按照反馈的方向分, 又可以分为正反馈和负反馈。正反馈指用户的行为倾向于指用户喜欢该物品,而负反馈指用户的 行为倾向于指用户不喜欢该物品。在显性反馈中,很容易区分一个用户行为是正反馈还是负反馈, 而在隐性反馈行为中,就相对比较难以确定。

在利用用户行为数据设计推荐算法之前,研究人员首先需要对用户行为数据进行分析,了解 数据中蕴含的一般规律,这样才能对算法的设计起到指导作用。

(1) 用户活跃度和物品流行度

(2) 用户活跃度和物品流行度的关系

一般认为,新用户倾向于浏览热门的物品,因为他 们对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品。如果用横坐标表示用户活跃度,纵坐标表示具有某个活跃度的所有用户评过分的物品的平均流行度。图中曲线呈明显下 降的趋势,这表明用户越活跃,越倾向于浏览冷门的物品。

仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法进行了深入研究,提出了很多方法,比如基于邻域的方法(neighborhood-based)、隐语义模型 (latent factor model)、基于图的随机游走算法(random walk on graph)等。在这些方法中, 最著名的、在业界得到最广泛应用的算法是基于邻域的方法,而基于邻域的方法主要包含下面两种算法。

基于用户的协同过滤算法 :这种算法给用户推荐和他兴趣相似的其他用户喜欢的物品

基于物品的协同过滤算法: 这种算法给用户推荐和他之前喜欢的物品相似的物品

基于邻域的算法是推荐系统中最基本的算法,该算法不仅在学术界得到了深入研究,而且在 业界得到了广泛应用。基于邻域的算法分为两大类,一类是基于用户的协同过滤算法,另一类是 基于物品的协同过滤算法。现在我们所说的协同过滤,基本上就就是指基于用户或者是基于物品的协同过滤算法,因此,我们可以说基于邻域的算法即是我们常说的协同过滤算法

(1) 基于用户的协同过滤算法(UserCF)

基于用户的协同过滤算法的基本思想是:在一个在线个性化推荐系统中,当一个用户A需要个性化推荐 时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。

Ø 从上面的描述中可以看到,基于用户的协同过滤算法主要包括两个步骤。 第一步:找到和目标用户兴趣相似的用户集合。 第二步: 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。

这里,步骤1的关键是计算两个用户的兴趣相似度,协同过滤算法主要利用行为的相似度计算兴趣的相似度。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v) 为用户v曾经有过正反馈的物品集合。那么我们可以通过以下方法计算用户的相似度:

基于余弦相似度

(2) 基于物品的协同过滤算法(itemCF)
与UserCF同理
(3) UserCF和itemCF的比

首先我们提出一个问题,为什么新闻网站一般使用UserCF,而图书、电商网站一般使用ItemCF呢? 首先回顾一下UserCF算法和ItemCF算法的推荐原理。UserCF给用户推荐那些和他有共同兴 趣爱好的用户喜欢的物品,而ItemCF给用户推荐那些和他之前喜欢的物品类似的物品。从这个算 法的原理可以看到,UserCF的推荐结果着重于反映和用户兴趣相似的小群体的热点,而ItemCF 的推荐结果着重于维系用户的历史兴趣。换句话说,UserCF的推荐更社会化,反映了用户所在的小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化,反映了用户自己的兴趣传承。 在新闻网站中,用户的兴趣不是特别细化,绝大多数用户都喜欢看热门的新闻。个性化新闻推荐更加强调抓住 新闻热点,热门程度和时效性是个性化新闻推荐的重点,而个性化相对于这两点略显次要。因 此,UserCF可以给用户推荐和他有相似爱好的一群其他用户今天都在看的新闻,这样在抓住热 点和时效性的同时,保证了一定程度的个性化。同时,在新闻网站中,物品的更新速度远远快于新用户的加入速度,而且 对于新用户,完全可以给他推荐最热门的新闻,因此UserCF显然是利大于弊。

但是,在图书、电子商务和电影网站,比如亚马逊、豆瓣、Netflix中,ItemCF则能极大地发 挥优势。首先,在这些网站中,用户的兴趣是比较固定和持久的。一个技术人员可能都是在购买 技术方面的书,而且他们对书的热门程度并不是那么敏感,事实上越是资深的技术人员,他们看 的书就越可能不热门。此外,这些系统中的用户大都不太需要流行度来辅助他们判断一个物品的 好坏,而是可以通过自己熟悉领域的知识自己判断物品的质量。因此,这些网站中个性化推荐的 任务是帮助用户发现和他研究领域相关的物品。因此,ItemCF算法成为了这些网站的首选算法。 此外,这些网站的物品更新速度不会特别快,一天一次更新物品相似度矩阵对它们来说不会造成 太大的损失,是可以接受的。同时,从技术上考虑,UserCF需要维护一个用户相似度的矩阵,而ItemCF需要维护一个物品 相似度矩阵。从存储的角度说,如果用户很多,那么维护用户兴趣相似度矩阵需要很大的空间, 同理,如果物品很多,那么维护物品相似度矩阵代价较大

下表是对二者的一个全面的表较:

7. 个性化推荐算法——协同过滤

有三种:协同过滤
用户历史行为
物品相似矩阵

8. 直通车冷启动期有多久

直通车冷启动期大概一个半小时。

直通车本意指从一个城市到另一个城市,车辆在行驶的过程中,如无意外情况发生的情况下原则上不停靠任何中途站点,直接到达车辆前往的目的地,这样便于旅客的出行以及更大限度地节约时间,类似于专车直达。

在现实生活中也有很多的寓意,主要是指节约时间,简洁,方便快捷,便民。协同过滤推荐基于这样的假设: 为用户找到他真正感兴趣的内容的方法是,首先找与他兴趣相似的用户,然后将这些用户感兴趣的东西推荐给该用户。

所以该推荐技术最大的优点是对推荐对象没有特殊的要求,能处理非结构化的复杂对象,如音乐、电影等,并能发现用户潜在的兴趣点。协同过滤推荐算法主要是利用用户对项目的评分数据,通过相似邻居查询,找出与当前用户兴趣最相似的用户群。

根据这些用户的兴趣偏好为当前用户提供最可能感兴趣的项目推荐列表。为更进一步地说明协同过滤推荐算法的推荐原理,本文以用户对电影的推荐为例进行阐述。

以上内容参考:网络-直通车

9. 简要智能阅读中智能推荐的技术原理

智能推荐算法总的来说分为两种:基于内容的推荐算法和协同过滤推荐算法。

基于内容的推荐算法:

根据内容的相似度(静态的东西)进行推荐,内容不好提取的可以采取贴标签的形式来区分计算内容的相似程度。然后根据用户的喜好设置,关注等进行相似内容推荐。

协同过滤推荐算法:

根据动态信息来进行推荐,即推荐的过程是自动的,推荐结果的产生是系统从用户的购买行为或浏览记录等隐式信息拿到的,无需用户通过填表格等方式来明确自己的喜好。因为这些数据都是要读到内存中进行运算的,所以又叫基于内存的协同过滤(Memory-based Collaborative Filtering),另一种协同过滤算法则是基于模型的协同过滤(Model-based Collaborative Filtering);m个物品,m个用户的数据,只有部分用户和部分数据之间是有评分数据的,其它部分评分是空白,此时我们要用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到最高评分的物品推荐给用户。对于这个问题,用机器学习的思想来建模解决,主流的方法可以分为:用关联算法,聚类算法,分类算法,回归算法,矩阵分解,神经网络,图模型以及隐语义模型来解决。

(https://www.cnblogs.com/chenliyang/p/6548306.html)

而基于内存的协同过滤又有两种:

10. 推荐算法综述

推荐系统的目的是通过推荐计算帮助用户从海量的数据对象中选择出用户最有可能感兴趣的对象。涉及三个基本内容:目标用户、待推荐项目以及推荐算法,基本流程为:描述为用户模型构建、项目模型建立以及推荐算法处理三个基本流程;

为了能够为用户提供准确的推荐服务,推荐系统需要为用户构建用户模型,该模型能够反映用户动态变化的多层次兴趣偏好,有助于推荐系统更好的理解用户的特征和需求。构建用户模型通常需要经历三个流程:用户数据收集,用户模型表示以及用户模型更新。

(1)用户数据收集:用户数据是用户模型构建的基础,用户数据收集的方式一般有显示方式获取和隐式方式获取两种。
显示方式获取的数据是用户特征属性和兴趣偏好的直接反映,所获得的信息数据是较为客观全面的,比如用户在注册时包含的性别、年龄等信息可以直接表示出用户的基本人口学信息和兴趣信息,用户对项目的评分可以反映出用户的偏好。但显示获取的方式最大的缺陷是其实时性较差,并且具有很强的侵袭性。
隐式方式获取用户数据是在不干扰用户的前提下,采集用户的操作行为数据,并从中挖掘出用户的兴趣偏好。用户的很多操作行为都能反映出用户的喜好,比如用户浏览网页的速度、用户查询的关键字等,推荐系统在不影响用户使用系统的情况下,通过行为日志挖掘出用户的偏好。隐式获取方式由于具有较好的实时性和灵活性和较弱的侵袭性,己经成为推荐系统中主要的用户数据采集方式。

(2)用户模型表示:用户模型是从用户数据中归纳出的推荐系统所理解的用户兴趣偏好的结构化形式。
a 基于内容关键词表示;
b 基于评分矩阵表示;
(3)用户模型更新:推荐系统面临的问题之一是兴趣漂移,兴趣漂移的根本原因在于用户的兴趣会随时间发生改变。为了使用户模型够准确的代表用户的兴趣,推荐系统需要根据最新的用户数据对用户模型进行更新。

目前项目模型主要通过基于内容和基于分类这两类方式来建立。基于内容的方式是以项目本身内容为基础,向量空间模型表示是目前御用最为广泛的基于内容的方式。

基于分类的方式是根据项目的内容或者属性,将项目划分到一个或者几个类别中,利用类别信息来表示项目,这种方法可以很方便地将项目推荐给对某一类别感兴趣的用户。常见的分类算法有朴素贝叶斯算法和KNN分类算法等。

推荐系统实现的核心是其使用的推荐算法。针对不同的使用环境及其系统的数据特征,选取不同的推荐算法,可以在本质上提高推荐系统的推荐效果。根据不同的分类标准,推荐算法出现了有很多不同的分类方法,本文采用了比较普遍的分类方法。

推荐系统通常被分为基于内容的推荐算法、协同过滤推荐算法以及混合模型推荐算法三大类。

基于内容的推荐算法,其本质是对物品或用户的内容进行分析建立属性特征。系统根据其属性特征,为用户推荐与其感兴趣的属性特征相似的信息。算法的主要思想是将与用户之前感兴趣的项目的内容相似的其他项目推荐给用户。

CBF(Content-based Filter Recommendations)算法的主要思想是将与用户之前感兴趣的项目的内容相似的其他项目推荐给用户,比如用户喜欢Java开发的书籍,则基于内容过滤算法将用户尚未看过的其他Java开发方面的书籍推荐给用户。因此,该推荐算法的关键部分是计算用户模型和项目模型之间的内容相似度,相似度的计算通常采用余弦相似性度量。

基于内容的推荐过程一般分为以下三个模块:
(1)特征提取模块:由于大多数物品信息是非结构化的,需要为每个物品(如产品、网页、新闻、文档等)抽取出一些特征属性,用某一恰当的格式表示,以便下一阶段的处理。如将新闻信息表示成关键词向量,此种表示形式将作为下一模块(属性特征学习模块)的输入。

(2)特征学习模块:通过用户的历史行为数据特征,机器学习出用户的兴趣特征模型。本模块负责收集代表用户喜好的数据信息,并泛化这些数据,用于构建用户特征模型。通常使用机器学习的泛化策略,来将用户喜好表示为兴趣模型。

(3)推荐模块:该模块利用上一阶段得到的用户特征模型,通过对比用户兴趣模型与带推荐物品的特征相似度,为用户推荐与其兴趣相似度较高的物品,从而达到个性化推荐的目的。该模块一般采用计算用户兴趣向量与待推荐物品特征向量的相似度来进行排序,将相似度较高的物品推荐给相应用户。计算相似度有多种方法,如皮尔逊相关系数法、夹角余弦法、Jaccard相关系数法等。

协同过滤算法(Collaborative Filtering)是于内容无关的,即不需要额外获取分析用户或物品的内容属性特征。是基于用户历史行为数据进行推荐的算法。其通过分析用户与物品间的联系来寻找新的用户与物品间的相关性。

该算法算法通常有两个过程,一个过程是预测,另一个过程是推荐。主流的协同过滤算法包括三种:基于用户的协同过滤(User-Based Collaborative Filtering,UBCF)、基于项目的协同过滤(Item-Based Collaborative Filtering, IBCF)和基于模型的协同过滤(Model-Based Collaborative Filtering, MBCF)

(1)基于用户的协同过滤算法
基于用户的协同过滤推荐算法,先通过用户历史行为数据找到和用户u相似的用户,将这些用户感兴趣的且u没有点击过的物品推荐给用户。
算法主要包括以下两个步骤:
(1)找到与目标用户喜好相似的邻居用户集合。
(2)在邻居用户集合中,为用户推荐其感兴趣的物品。

UBCF的基本思想是将与当前用户有相同偏好的其他用户所喜欢的项目推荐给当前用户。一个最典型的例子就是电影推荐,当我们不知道哪一部电影是我们比较喜欢的时候,通常会询问身边的朋友是否有好的电影推荐,询问的时候我们习惯于寻找和我们品味相同或相似的朋友。

(2)基于物品的协同过滤算法
基于物品的协同过滤算法(Item-based Collaborative Filtering)其主要思想是,为用户推荐那些与他们之前喜欢或点击过的物品相似的物品。不过基于物品的协同过滤算法并不是利用物品的内容属性特征来计算物品之间的相似度的。该类算法是利用用户的历史行为数据计算待推荐物品之间的相似度。在该类算法中,如果喜欢物品A的用户大都也喜欢物品B,那么就可以认为物品A和物品B之间的相似度很高。
算法分为以下两个步骤:
(1)根据用户历史行为数据,计算物品间的相似度。
(2)利用用户行为和物品间的相似度为用户生成推荐列表。

IBCF算法是亚马逊在2003年发表的论文中首次提出,该算法的基本思想是根据所有用户的历史偏好数据计算项目之间的相似性,然后把和用户喜欢的项目相类似的并且用户还未选择的其他项目推荐给用户,例如,假设用户喜欢项目a,则用户喜欢与项目a高度相似且还未被用户选择的项目b的可能性非常大,因此将项目b推荐给用户。

UBCF和IBCF都属于基于内存的协同过滤算法,这类算法由于充分发挥了用户的评分数据,形成全局推荐,因此具有较高的推荐质量。但随着用户和项目的规模增长,这类算法的计算时间大幅上升,使得系统的性能下降。针对该问题,研究人员提出将数据挖掘中的模型和CF算法结合,提出了基于模型的协同过滤算法(MBCF) 。

MBCF算法利用用户历史评分数据建立模型,模型建立的算法通常有奇异值分解、聚类算法、贝叶斯网络、关联规则挖掘等,且通常是离线完成。由于MBCF通常会对原始评分值做近似计算,通过牺牲一定的准确性来换取系统性能,因此MBCF的推荐质量略差于UBCF和IBCF。

由于基于内容的推荐算法和协同过滤推荐算法都有其各自的局限性,混合推荐算法应运而生。混合推荐算法根据不同的应用场景,有多
种不同的结合方式,如加权、分层和分区等。

目前使用的混合推荐算法的思想主要可以分成以下几类:
(1)多个推荐算法独立运行,获取的多个推荐结果以一定的策略进行混合,例如为每一个推荐结果都赋予一个权值的加权型混合推荐算法和将各个推荐结果取TOP-N的交叉混合推荐算法。

(2)将前一个推荐方法产出的中间结果或者最终结果输出给后一个推荐方法,层层递进,推荐结果在此过程中会被逐步优选,最终得到一个精确度比较高的结果。

(3)使用多种推荐算法,将每种推荐算法计算过程中产生的相似度值通过权重相加,调整每个推荐算法相似度值的权重,以该混合相似度值为基础,选择出邻域集合,并结合邻域集合中的评估信息,得出最优的推荐结果。

BP (Back Propagation)神经网络是目前应用最广泛的神经网络模型之一,是一种按误差逆传播算法训练的多层前馈网络。

BP神经网络模型包括输入层、隐藏层和输出层,每一层由一个或多个神经元组成,其结构图如图2-3所示。BP神经网络拥有很强的非线性映射能力和自学习、自适应能力,网络本身结构的可变性,也使其十分灵活,一个三层的BP神经网络能够实现对任意非线性函数进行逼近。

BP神经网络的训练过程通常分为3个过程,依次分别为数据初始化过程、正向推演计算过程以及反向权重调整过程。数据初始化是BP神经网络能够进行有效训练的前提,该过程通常包括输入数据进行归一化处理和初始权重的设置;正向推演计算是数据沿着网络方向进行推演计算;反向权重调整则是将期望输出和网络的实际输出进行对比,从输出层开始,向着输入层的方向逐层计算各层中各神经元的校正差值,调整神经元的权重。正向推演计算和反向权重调整为对单个训练样本一次完整的网络训练过程,经过不断的训练调整,网络的实际输出越来越趋近于期望输出,当网络输出到达预期目标,整个训练过程结束。

TF-IDF(Term Frequency-Inverse Document Frequency,词频一逆文档)是文本处理中常用的加权技术,广泛应用于信息检索、搜索引擎等领域。
TF-IDF的主要思想是:如果一个关键词在文档中出现的频率很高,而在其他文档中出现次数较少,则该关键词被认为具有较强的代表性,即该关键词通过TF-IDF计算后有较高的权重。

TextRank算法,是一种用于文本关键词排序的算法,页排序算法PageRank。
PageRank基本思想是将每个网页看成一个节点,网页中的链接指向看成一条有向边,一个网页节点的重要程度取决于链接指向该网页节点的其他节点的数量和重要权值,该过程描述如下:让每一个网页对其所包含的链接指向的网页进行迭代投票,每次迭代投票过程中票的权重取决于网页当前拥有的票数,当投票结果收敛或者达到指定的迭代次数时,每个网页所获得票数即为网页重要程度权值。

TextRank算法相比于TF-IDF最大的优点是TextRank是一种无监督的学习,因此不会受限于文本的主题,并且无需大规模的训练集,可以针对单一文本进行快速的关键词的权重计算。

阅读全文

与基于项目的协同过滤推荐算法相关的资料

热点内容
什么样的净水器可以去除水垢 浏览:874
污水厂运营维护费用表 浏览:952
淄博超滤设备厂家供应 浏览:169
呋喃树脂砂适用范围 浏览:878
垃圾厂污水处理所需材料 浏览:504
eclipsesvn更新过滤 浏览:316
净水器排废水吗 浏览:513
转向机油滤芯怎么换 浏览:567
厕所水箱废水怎么处理 浏览:557
怎么清理陶瓷滤芯 浏览:914
豪爵踏板车空气滤芯在哪里 浏览:808
油箱过滤网如何拆 浏览:569
森森外置过滤桶不吸水 浏览:42
飞力污水泵型号1330H 浏览:483
黑色手表白色水垢 浏览:438
空气净化器没有激活卡怎么办 浏览:221
石材工业废水处置 浏览:130
snf纳滤和ro反渗透区别 浏览:94
康达源子母净水器多少钱一台 浏览:489
鱼缸下过滤加氧泵么 浏览:987