亚马逊推荐系统Item-based推荐

基于物品的协同过滤算法的优点:

1. 简单、可扩展。

2. 经常能给出令人惊喜和有用的推荐。

3. 可根据用户的新信息立刻更新推荐。

4. 可解释性强。

定义相关物品

找到用户在购买完X之后,最有可能购买的物品Y。采用假设检验的方式,假设X和Y不相关,通过计算一个统计量来决定接受还是拒绝这个假设。如果X和Y不相关,那么用户在购买完X之后购买Y的行为应该是随机的。

我们可以通过计算同时购买X和Y的用户数的期望值与实际值进行比较来分析X和Y是否具有相关性。

这种用户购买历史的非均匀分布,意味着我们在计算有多少购买了X的用户会随机购买Y时不能忽略是谁买了X。我们发现将用户建模成具有多次购买Y的机会会很有用[7]。例如,对于一个有20次购买的用户,我们视其拥有20次独立的购买Y的机会。

更正式的,对于一个购买了X的用户c,我们可以将c购买Y的概率估计为1-(1-Py)^|c|,其中|c|代表用户c的购买次数减去其对于X的购买次数,Py=|Y的购买次数|/|所有的购买次数|,代表任意一次购买是对于Y的购买的概率。之后,我们可以通过对所有购买X的用户进行汇总,再加上二项式展开,来计算购买X的用户中购买Y的用户数的期望值Exy(见下图)。


亚马逊推荐系统Item-based推荐_第1张图片

我们可以将Exy写作Py的多项式,其系数只与X有关。实际中,Py通常都很小,所以可以用一个上界k来做近似。此外,Py和alpha_k(X)可以事先计算好,所以任意两个X和Y的Exy只需要对事先计算好的值进行简单组合即可到到一个近似值。

有了一个计算Exy的健壮方法之后,我们可以用其来计算观测到的Nxy是否明显高于或低于随机。例如,Nxy-Exy可认为是非随机共现的一个估计,而(Nxy-Exy)/Exy则给出了一个非随机共现相对期望值的比例。这两个例子都可认为是衡量有多少用户会同时购买X和Y的相似度函数S(X,Y)。第一种方法,Nxy-Exy,会偏向于更流行的Y,例如第一本哈利波特,这会使得推荐结果看上去过于流行或无关。第二种方法,(Nxy-Exy)/Exy,会使得低销量的物品很容易获得高分数,使得推荐结果看着过于奇怪或随机,大量低销量物品的存在使得这个问题尤为严重。所以相关性分数需要在这两者之间找到平衡点。基于(Nxy-Exy)/sqrt(Exy)的卡方检验就是这样一个平衡的例子。

时间的重要性

充分理解时间扮演的角色对于改进推荐系统质量有着重要的作用。例如,当计算相关物品时,两个物品的相关性很大程度上依赖他们在时间间隔的长短。如果一个用户在买了一本书的五个月之后又买了一本书,那这两本书之间的相关性就要弱于两本在同一天内被购买的书的相关性。时间的方向性也比较有用。例如,用户会在买了相机之后买存储卡,而不是反过来。这告诉我们不应该给购买了存储卡的用户推荐相机。有时物品的购买具有序列性,例如书籍、电影和电视剧,那么推荐就应该给出你下一步想要做的东西。

即使对于信息完备的用户,正确地使用时间信息对于推荐质量也有着重要影响。随着年龄的变化,之前的购买对于用户当前的兴趣的影响越来越小。更复杂的是,不同类型的物品的减弱效应还各不相同。例如,像”波涛汹涌的大海航行指南“这样的购买记录代表的通常是可持续的长期兴趣。其他的例如洗碗机修理工具这样的东西在周末的工程之后可能就不再相关了。甚至还有一些像拨浪鼓这样的商品需要随着时间不断变化;四年之后,我们应该推荐的是平衡车而不是奶瓶。还有一些商品,例如书籍,通常只会购买一次;其他的,例如牙膏,经常是被以可预期的周期重复购买。

你可能感兴趣的:(亚马逊推荐系统Item-based推荐)