个性化文献--《Item-Based Top-N Recommendation Algorithms》

1。介绍了主要影响item-based的性能的两个方面。

(1)item之间的相似度计算的

将用户作为每个item的维度,用cosine计算相似度。

利用条件概率(conditional probability)来计算相似度,这样能偶区分有不同历史记录的用户以及,频繁和非频繁的被购买的item。

计算购买了item i后的用户后续购买item j的概率。公式如下

image

其中Freq(i)是在整个集合中购买过i的用户的次数,Freq(ij )是集合中同时购买item i和j的用户数量。从上面的公式可以看出,最终的相似度矩阵式一个非对称矩阵。如果Freq(i)比较少,则购买次数比较多的item j将又有更高的条件概率。因此,对公式进行了如下修正:

image

image 取值0~1。当image =1的时候,整个相似度矩阵是一个对称矩阵。

上述公式没有区分不同用户购买的item不同的情况,继续对公式进行修正:

image

首先对每个user购买的记录进行归一化,与公式2采取item i,item j共现的方式不同,分子变成image ,表示第j列item的归一化后的权重的和。

进行推荐的代码如下:

image

输入为item的相似度作为模型M,item*item,当前user,为item*1,推荐个数N。算法首先根据相似度矩阵和用户向量相乘得出一个大小为item*1的向量x,在x中,用户没有购买过的item的值也是非0的了。所以,第一个for循环将x中用户已经购买的item的权重设为0,第二个for循环选择top N个item进行推荐。

该算法有一定的缺陷,当item与相邻的item的购买频率不是特别高的时候,比如都被购买了1次,那么这两个之间的相似度会很大的,造成推荐的失败。解决办法简单,相似度矩阵M在输入之前先进行归一化,然后再进行推荐。

(2)如何组织item来对item进行推荐。

将item-based的推荐扩展到高阶模型,对用户进行推荐的时候,首先决定于用户相似的item集合,然后根据选出的item集合进行推荐。

上述方法在计算两个item之间的相似度的时候,没有考虑一个用户购买的其他的item,并且在两个item的联合分布(joint distribution)与每个item的分布不一致的时候,不能找到最优推荐。

新方法在构建模型的时候,不仅仅计算K个最相近的item,也计算l个最相近的item集合。推荐的时候,不仅仅合并K个最近邻居的item,也合并l个item集合。

在相似度计算的时候分别计算image ,每个矩阵的维度分别是m*m,m*m**2(**相当于平方),具体算法如下,看的不是很懂,

image

核心是image ,放到程序中得出1,2,2,3,3,3,4,4,4,4,5,5,5,5,5的序列,不知道用意何在?

后续的推荐算法如下:

image

不明白的地方还是上面的地方。在此记录下,待后续在解答。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值