• 读书笔记《集体智慧编程》Chapter 2 : Make Recommendations


    本章概要
    本章主要介绍了两种协同过滤(Collaborative Filtering)算法,用于个性化推荐:
    • 基于用户的协同过滤(User-Based Collaborative Filtering,又称 K-Nearest Neighbor Collaborative Filtering)
    • 基于条目的协同过滤(Item-Based Collaborative Filtering)
    本章还介绍两种向量相似性算法:
    • 欧氏距离(Euclidean Distance)
    • 皮尔斯稀疏(Pearson Coefficient)
     
    协同过滤
    协同过滤是在一大群用户中寻找一些与你的用户相似的用户,然后将这些找到的用户使用过但是你没有使用过的物品(如电影,书籍,商品)推荐给你的用户,因为你与这些用户具有类似的爱好。
     
    相似度算法
    欧氏距离是平面几何距离的n维扩展,值越大,越不相似,为了使得当距离越大时,越相似,需要对其欧氏距离转换,转换方式如下:
    euc-dist(x,y)  ===>    1/(1+euc-dist(x,y))
    皮尔斯系数可以描述两个向量的相关性,表示的两个向量在二维坐标上分布为一条直线的程度,值在-1~1之间,越大,越相关。皮尔斯稀疏可以修复分数通胀(grade inflation)问题,举个例子,A,B两个用户具有集齐相似的兴趣,只是A打分相对较严格,一般比平均分低一分,但是A与B的pearson系数却可以完美的为1.这种特性根据你的应用而定,可能会需要,至少在电影推荐的例子上是需要的,但是其他例子里面可能不需要.
     
    User-Based Collaborative Filtering (or the K-Nearest Neighbor Collaborative Filtering)
    计算你其他人所有人相似度,取前k个。
    在k个人中,取出我没有看过的电影,然后根据相似度与对应用户对电影的打分成绩,作加权平均值,分值越大,代表我可能越有兴趣额。
    这是一个通用算法,可以讲商品,替换电影打分,那么就可以推断我可能感兴趣的商品。返回来也可以,可以根据商品推断潜在购买者。抽象为下面的关系:
    • 用户:影评 --> 推荐电影
    • 影评:用户 --> 预测其他用户影评(没多大意义)
    • 用户:商品 --> 推荐商品
    • 商品:用户 --> 潜在购买用户    商品之间的关系相对stable,相比于人之间的关系
     
     
    Item-Based Collaborative Filtering(基于条目的系统过滤)
    基于用户的协同过滤最大的问题在于性能,计算量太大,当用户陡增时无法做到实时推荐。因为每次推荐都要计算k个最近的用户,开销很大。
     
    基本条目过滤的思路:计算出条目之间的相似性(相对稳定,可以在空闲时间计算),然后将根据用户用过的条目和该条目对应用户没有用过的条目,计算加权平均值,推荐给用户。
    最大的好处是条目之间的关系相对稳定,可以提前计算。而且条目计算的结果可以优化,只计算每个条目最相似的k个条目,k << n(总体条目数)。
    相比于基于用户的协同顾虑,它更适合于稀疏矩阵。
    基于条目的协同过滤,可以参见论文《Item-Based Collaborative Filtering Recommendation Algorithms
    更具此问题,基于条目的协同过滤比基于用户的系统过滤更准确。
     
  • 相关阅读:
    K2 BPM_携手东航物流,领跑全球航空物流业_全球领先的工作流引擎
    K2 BPM_如何将RPA的价值最大化?_全球领先的工作流引擎
    Sqlserver 增删该查----查
    U3D Resources AssetBundle资源打包
    Sqlserver 触发器
    Sqlserver 游标
    U3D 协程和www
    U3D 数据在安卓设备上的存储,加载
    U3D SQLite数据库
    U3D 装备的添加和移除(Unity3D)
  • 原文地址:https://www.cnblogs.com/bourneli/p/2765325.html
Copyright © 2020-2023  润新知