智能推荐、猜喜欢,这一类的功能有没有一种一般化的算法模型?
推荐算法最常见的是协同过滤和基于内容的推荐
一下内容来自互动百科:
推荐算法就是利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西。推荐算法主要分为两种。 推荐算法_互动百科推荐算法 - 基于内容的推荐基于内容的信息推荐方法的理论依据主要来自于信息检索和信息过滤,所谓的基于内容的推荐方法就是根据用户过去的浏览记录来想用户推荐用户没有接触过的推荐项。主要是从两个方法来描述基于内容的推荐方法:启发式的方法和基于模型的方法。启发式的方法就是用户凭借经验来定义相关的计算公式,然后再根据公式的计算结果和实际的结果进行验证,然后再不断的是修改公式以达到最终目的。而对于模型的方法就是根据以往的数据作为数据集,然后根据这个数据集来学习出一个模型。一般的推荐系统中运用到的启发式的方法就是使用tf-idf的方法来计算,跟还有tf-idf的方法计算出这个文档中出现权重比较高的关键字作为描述用户特征,并使用这些关键字作为描述用户特征的向量;然后再根据被推荐项的中的权重高的关键字来作为推荐项的属性特征,然后再将这个两个向量最相近的(与用户特征的向量计算得分最高)的项推荐给用户。在计算用户特征向量和被推荐项的特征向量的相似性时,一般使用的是cosine方法,计算两个向量之间夹角的cosine值。 推荐算法_互动百科推荐算法 - 基于协同过滤的推荐基于协同过滤的推荐算法,正好弥补了这个缺点,它理论上可以推荐世界上的任何一种东西。图片、音乐、样样可以。 协同过滤算法主要是通过对未评分项进行评分 预测来实现的。不同的协同过滤之间也有很大的不同。基于用户的协同过滤算法 这种算法基于一个这样的假设“跟你喜好相似的人喜欢的东西你也很有可能喜欢。”所以基于用户的协同过滤主要的任务就是找出用户的最近邻居,从而根据最近邻 居的喜好做出未知项的评分预测。 这种算法主要分为3个步骤: 一,用户评分。可以分为显性评分和隐形评分两种。显性评分就是直接给项目评分(例如给百度里的用户评分),隐形评分就是通过评价或是购买的行为给项目评分 (例如在有啊购买了什么东西)。 二,寻找最近邻居。这一步就是寻找与你距离最近的用户,测算距离一般采用以下三种算法: 1.皮尔森相关系数。 2.余弦相似性。 3调整余弦相似性。 调整余弦 相似性似乎效果会好一些。 三,推荐。产生了最近邻居集合后,就根据这个集合对未知项进行评分预测。把评分最高的N个项推荐给用户。 这种算法存在性能上的瓶颈,当用户数越来越多的时候,寻找最近邻居的复杂度也会大幅度的增长。因而这种算法无法满足及时推荐的要求。基于项的协同过滤解决了这个问题。 基于项的协同过滤算法 根基于用户的算法相似,只不过第二步改为计算项之间的相似度。由于项之间的相似度比较稳定可以在线下进行,所以解决了基于用户的协同过滤算法存在的性能瓶颈。
继续阅读
全部内容有哪些方法可以帮助AB测试显著更快一些?
方法是有不少的,比较常见的一个方向是做方差缩减(Variance Reduction[1])。这里分享一篇来自 Netflix KDD 2016 年的文章 Improving the Sensitivity of Online Controlled Experiments: Case Studies at Netfli...
支持向量机(SVM)是什么意思?
大部分答案都在写公式,我来聊聊直觉上的东西。 设想一下你要做一个分类器,区分狗和炸鸡。首先假定我们只有两个数据,那么这条线会很容易画,自然而然就会画在正中间。 这个时候,我们加入一个新的数据,这个狗跟现有的数据差别很大。这个时候,分类线应该画在哪里? 这就是 SVM 跟其他线性模型很不一样的地方了,SVM 这条分类线不...
如何看待深度学习中不分验证集?
这就是典型的 overfitting 嘛,自欺欺人地刷数据。有限数据,天赋异禀,看着训练集,靠着随机函数丢硬币丢出完美符合的测试集的 if-else,拿到完美指标。刷就是了。 不过这是所有公开数据集都难以避免的,毕竟所有的数据都开放了,只要数据有限,不管怎么分,总有可能过拟合。所以刷数据的论文主要是看个 insight...


