我是靠谱客的博主 忧伤鸭子,最近开发中收集的这篇文章主要介绍基于item的协同过滤 基于 item 的推荐算法分析 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基于 item 的推荐算法分析

1 概述

基于 item 的推荐方法假设:能够引起用户兴趣的 item ,必定与其评分高的 item 相似。主要包括三个步骤: (1) 得到每个用户对 item 的评分数据; (2) item 进行最近邻的搜索; (3) 产生推荐。

相比基于用户的推荐方法,基于 item 的推荐方法提高了协同过滤方法的扩展性和性能。基于用户的推荐方法会随着用户数量的不断增加,在海量数据的余户范围内进行“最近邻搜索”会成为算法的瓶颈,难以做实时的 item 推荐。而基于 item 的推荐方法通过计算 item 之间的相似性来替代计算用户之间的相似性。 Item 之间的相似性比用户之间的相似性更稳定,可以离线的计算 item 之间的相关性。

2 Mahout 中基于 item 的算法流程

2.1 参数

--output 输出路径

--input   输入路劲

-n      为每个用户推荐的产品数

-u      待推荐的用户列表

-i      待推荐的 item 列表

-f      过滤指定用户不需要推荐的 item 。格式为 userID, itemID

-b      输入的样本不带产品评分

-mp    设置每个用户喜好的最大数量 默认 10

-m     设置每个用户喜好的最小数量 默认 1

-mo    样本抽样

-s      相似度量方法。包括:

SIMILARITY_URRENCE(DistributedurrenceVectorSimilarity.class),

SIMILARITY_EUCLIDEAN_DISTANCE(DistributedEuclideanDistanceVectorSimilarity.class),

SIMILARITY_LOGLIKELIHOOD(DistributedLoglikelihoodVectorSimilarity.class),

SIMILARITY_PEARSON_CORRELATION(DistributedPearsonCorrelationVectorSimilarity.class),

SIMILARITY_TANIMOTO_COEFFICIENT(DistributedTanimotoCoefficientVectorSimilarity.class),

SIMILARITY_UNCENTERED_COSINE(DistributedUncenteredCosineVectorSimilarity.class),

SIMILARITY_UNCENTERED_ZERO_ASSUMING_COSINE(DistributedUncenteredZeroAssumingCosineVectorSimilarity.class),

SIMILARITY_CITY_BLOCK(DistributedCityBlockVectorSimilarity.class);

2.2 程序处理流程

Mahout 中基于 item 的推荐包括 12 MapReduce 过程。下面对每一个 MapReduce 的作用进行描述。 输入的数据以 userid  “t” itemid  “t”  perferenceValue 格式输入,分别表示用户编号、产品编号和该用户对该产品的评分值。

(1)      1 MapReduce :将 itemID 长整型映射到整型的序号上。这样做的目的是为后续以该序号为矩阵的一个维度,所以需要处理成整型。

(2)      2 MapReduce :统计每个用户对哪些 item 进行了评分,评分值是多少。

(3)      3 MapReduce :统计用户的总数。

(4)      4 MapReduce :统计每个 item 被哪些用户评分了,评分值是多少。

(5)      5,6,7 MapReduce :计算每个 item 与所有 item 之间的相似度。

(6)      8 MapReduce :将相同 item 之间的相似度置为 NaN

(7)      9 MapReduce :确定要推荐的用户,这些用户对哪些 item 进行了评分,评分值是多少。

(8)      10 MapReduce :根据以上的统计结果得到每个 item 与其他 item 之间的相似度,这些 item 分别被哪些用户评分了,评分值是多少。

(9)      11 MapReduce :过滤掉指定用户不需要推荐的 item

(10)   12 MapReduce :得到每个用户要推荐的 item 。这些 item 对于该用户来说是评分最高的前 n 个。

 

最后

以上就是忧伤鸭子为你收集整理的基于item的协同过滤 基于 item 的推荐算法分析 的全部内容,希望文章能够帮你解决基于item的协同过滤 基于 item 的推荐算法分析 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部