搜索引擎主题模型优化(推荐系统的策略推荐引擎(系统)的原理和原理)

优采云 发布时间: 2022-03-20 23:04

  搜索引擎主题模型优化(推荐系统的策略推荐引擎(系统)的原理和原理)

  推荐系统在个性化领域有着广泛的应用,技术上涉及概率、采样、优化、机器学习、数据挖掘、搜索引擎、自然语言处理等领域。东西太多了,就不写连载了。今天只从基础算法的小起点讲一下推荐引擎的原理。

  推荐系统策略

  推荐引擎(系统)从不同的角度有不同的划分,例如:

  上面的说法有点乱。换句话说:一般我们将推荐系统概括为两种策略,一种是基于内容的过滤和基于用户行为的协同过滤(collaborative filtering)。

  基于内容的过滤为每个项目和用户创建描述其性质的属性(或组合)。例如,对于电影来说,可能包括演员、票房级别等。用户属性信息可能包括地理信息、问卷回复等。属性信息与用户关联后,可以达到匹配产品的目的. 当然,基于内容的策略很可能会因为信息采集的不便而失败。

  更成功的内容过滤器之一是 Music Genetics 项目,训练有素的音乐分析师对每首歌曲的数百个单独特征进行评分。这些分数有助于潘多拉推荐歌曲。另一种基于内容的过滤是基于用户人口特征的推荐,它首先根据人口特征将用户分为几个先验类别。对于任何后续用户,首先找到他的集群,然后推荐这个集群中其他用户喜欢的项目。虽然这种方法推荐的粒度太粗,但是可以有效解决注册用户的冷启动问题。

  另一种与基于内容的过滤算法相反的策略是协同过滤,它依赖于用户过去的行为,可以是过去的交易行为和产品评分,不需要明确的属性信息。协同过滤通过分析用户和项目之间的内在关系来识别新的用户-项目关系。一般来说,基于用户行为的协同过滤方法优于基于内容的技术,但会存在冷启动问题。对于新系统,基于内容的推荐更好。

  协同过滤领域的两种主要方法是最近邻法和潜在因子模型。最近邻法主要关注物品或用户之间的关系,是一种比较基础的过滤引擎。潜在因子模型并没有选择所有的关系,而是通过矩阵分解技术对共现矩阵进行分解,比如提取20-100个因子,来表示原创矩阵信息(可以对比上面提到的音乐基因,但Latent factor模型实现计算机化)。

  邻居协同过滤

  矩阵分解技术稍微复杂一些,暂时不介绍了。让我们关注基于 item_based 最近邻居的协同过滤。

  对于一般的协同过滤引擎,首先会有一个item-item相似度矩阵$S$,如下图所示(来自recommenderlab包的vignette文档),它记录了每两个item之间的相似度。但是由于计算量和内存的考虑,在构建推荐引擎时,一般不会那么暴力的存储所有相似的信息,而是使用部分信息。例如(按行)与 $i_1$ 最相关的三个项目是 $i_4、i_5、i_6$,而其他两个项目 $i_2、i_8$ 不参与计算。

  

  引入相似度矩阵后,下一个最近邻协同过滤就很简单了。如果用户$u_\alpha$分别给$i_1、i_5、i_8$打了2分、4分、5分,根据相似度矩阵$S$中的item的相似度来计算剩余的分数未评分的项目,即

  对于每个项目(相似)加权平均得分,然后过滤得分项目

  最后的$r_\alpha$就是item的预测结果。

  既然逻辑清楚了,不实现推荐引擎就有点不合理了。

  首先我们来介绍一下原创输入数据,一共有三列:第一列代表用户,第二列代表所购买商品的名称,第三列是用户对该商品的评分:

<p> x

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线