问题描述
- 为什么用户2和3的温度是 1/2 ,而不是n/n=1
-
对于热传导的过程,首先每一个用户的温度等于所有他购买过的商品的温度的平均值,如图(d)所示,如第一个用户购买了商品1和商品4,则该用户的温度值即为(1 + 1) / 2 = 1,以此类推;接下来每一个商品的温度等于所有购买过他的用户的温度的平均值,如图(e)中的第一个用户的温度就为用户1,2,3的温度的平均值(1 + 1/2 + 1/2) / 3 = 2/3。以上两个步骤加起来为“从商品到商品”热传导一步。类似的,如果以一步为界,基于图(e)中的结果,则在目标用户没有购买过的所有商品中,第二个商品的温度值最大,因此基于热传导算法的推荐系统则会将此商品推荐给目标用户。与物质扩散不同的是这种算法得到的所有商品最后的能量值之和就不一定等于初始时所有商品的能量值,即不满足守恒定律,这是因为在热传到的第二步过程中,有的用户的温度可能会被多次计算,从而导致不守恒。
解决方案
看图a,后续b和d是根据图a推出来的。
图a中有热量的商品是1和4,其他商品热量都是0
所以用户2的热量就是(商品1+商品2+商品3+商品4)/4=(1+0+0+1)/4=1/2
用户3等同
图d是图a的结果,不是每个商品的热量都是1
解决方案二:
求1+2+3+...+n
求1+2+3+...+n
1!+2!+3!+...+n!的值
时间: 2024-11-02 14:10:20