推荐系统

    xiaoxiao2025-11-09  5

    推荐系统的目标:根据用户的喜好,为不同的用户推荐不同的物品,促成更多的交易。

    1.协同过滤

    具有相似消费行为的人,可以相互推荐。比如用户a、b同时购买了手机,a又购买了手机壳,那么b也是手机壳的潜在买家。 往往需要一个物品评分矩阵R,元素ri,j表示用户i对物品j的评分。一般采用5分制,从1(非常不喜欢)到5(非常喜欢)。形如: 表1.1 一个评分矩阵示例

    userp1p2p3p4p5u15344?u231233u343435u433154u515521

    ui,pi分别表示用户与物品编号。?表示待评分。

    1.1 基于用户

    基本思想:先算用户相似度,找到与用户u最邻近的n个用户。然后根据这些用户对物品p的评分,预测出u对p的评分。

    用户相似度,即历史评分行为相似。这也可以说明爱好相似。 使用Pearson相关系数(可译为培生,皮尔逊等),计算a,b两个用户的相似度公式

    sim(a,b)=pP(ra,pra¯)(rb,prb¯)pP(ra,pra¯)2pP(rb,prb¯)2(1.1-1) P为物品集合。 ru¯为用户u的平均评分。 Person相关系数的值从-1(强负相关)到1(强正相关)。 Person相关系数的计算考虑到了不同用户评分标准不尽相同这一情况——有些用户习惯性给高分,有些习惯性差评。 式1.1-2表示 用户a对物品p的评分预测值。 pred(a,p)=ra¯+bNsim(a,b)(rb,prb¯)bNsim(a,b)(1.1-2)

    N为与用户a打分行为最相似的n个用户的集合。大多数情况下,n取值为20~50比较合理。

    1.2 基于物品

    基于物品的协同过滤,item-based collaborative filtering 。

    基本思想:在购买了p1物品的用户集合中,很多也买了p2,那么其他p1的购买者也是p2的潜在购买者。

    物品a,b的相似度计算:

    sim(a,b)=|U(a)U(b)||U(a)|×|U(b)|(2.1) U(p)表示购买了物品p的用户集合。 因此协同过滤中的物品间相似并不一定是物品属性的相似(比如手机与手机壳被同时购买的概率就很大),而是基于被同时购买的概率的相似。 可以得到与物品p最相似的n个邻近物品集合S(p,n)为: S(p,n)={x|sim(p,x)topn,xP}(2.2) P为物品全集。 可以得到用户u对物品p的预测评分: Rec(u,p)=iBought(u)S(p,n)wpirui(2.3) wpi表示物品p与物品i的相似度; rui表示用户u对物品i的评分; Bought(u)表示用户u的已买物品集。

    2.基于内容的推荐

    基本思想:基于内容评估未购买物品与已购买物品的相似度,择优推荐。

    为物品维护一些特征集合。 以图书为例: 表2.1物品属性

    书名体裁作者类型价格关键词The Lace Readerfiction,mysteryTomHardcover50.0detective,historical

    表2.2用户小明的偏好

    书名体裁作者类型价格关键词/fiction,romanceSelinaPaperback(平装)40.0school,youth

    用户偏好可以分析已购买物品的特征得到。

    特征重叠相似度一般用Dice系数计算。 a,b两物品的Dice系数计算为:

    Dice(a,b)=2|keywords(a)keywords(b)||keywords(a)|+|keywords(b)|(2.1) 可以描述为 2

    3.如何评价一款推荐系统

    常用于机器学习的N-折交叉检验同样适用。

    3.1 推荐准确率

    用户感知不到推荐评分,他看到的就是一个推荐列表,也就是评分后top-n的物品列表。所以可以定义=||||

    Precision=uU|Rec(u)Test(u)|uU|Test(u)|(3.1) Rec(u)为生成的用户u的推荐列表; Test(u)为测试集中用户u的购买列表。二者的交集就是命中的物品集合。

    3.2 推荐召回率

    可以定义=||||

    Recall=uU|Rec(u)Test(u)|uU|Rec(u)|(3.2)

    3.3 评分准确率

    可以使用均方根误差来评估。

    RMSE=u,iT(ruirui^)2|T|(3.3) rui为用户u对物品i的评分(rating); rui^为预测值。
    最新回复(0)