摘要:
1.本文的创新点基于流行度的推荐算法倾向于推荐热门产品,同时也倾向于推荐和用户历史购买相近的内容,结果会导致推荐结果越来越集中在一个或几个领域内。而人们的兴趣需求通常是多方面、个性化的,因此,大众化的流行性推荐难以满足用户的个性化需求。造成这种结果的一个重要原因就是用户的历史购买记录并没有反映出用户完整的兴趣领域。本文提出一种启发式的用户偏好快速识别方法,借鉴决策树中有关信息增益的概念,计算每个推荐所能带来的信息熵的变化。通过选取恰当的推荐产品,快速解决新用户的“冷启动”问题,同时,尽可能挖掘用户的多种兴趣领域。 2.实现方法对于冷启动问题一般的解决思路是结合使用其他信息,大部分结合使用内容信息来弥补用户历史数据的不足,也有人利用更复杂的相似度计算方法。我们抛开准确率目标,只考虑如何推荐才能够更多的获得关于用户的信息。放弃试图在信息不够的情况下如何更好的提供推荐结果,转而设法如何尽快获得用户更多的信息。也就是如何迅速“加热”用户,让冷启动的问题不再存在。这里我们借鉴决策树中有关信息增益的概念,计算每个推荐所能带来的信息熵的变化。如图1所示,黑色实心方块表示目标用户,向其推荐每个人都喜欢的物品A不会对进一步了解用户带来更多好处。反而推荐B、C或者D、E中的某一个更能揭示用户喜好的类型。图1 热门产品不具有区分度图2不同数量户购买的商品(实心点表示购买关系)我们这里借鉴解决分类问题中决策树的概念。在图2中,假设图中的五个用户都购买了目标用户所购买的产品。图中的五个产品都是目标用户尚未购买的。这里把每个用户当作一个分类,目的是尽确定目标用户的的所属类别。决策书中,利用信息增益的概念来决定下一个节点根据那一个属性(这里是物品)进行划分。一般使用熵来度量信息量。假如一个物品 被购买的比例是 ,那么熵的计算公式为:
entropy(
ij)=-
plog
2(
p)-(1-
p)log
2(1-
p) (1) 不同比例所得的熵的结果如图3所示。可以看到越是接近一半的位置,熵就越大。在图2中即物品C所能带来的信息量最大。这和常识也使相符的,选择C一次便可排除一半的可能。图3 不同购买比例对应的熵由此,总结出我们的策略如下。令目标用户为
ui,其购买过产品集合为
Ii,由所有其他用户
ui中满足式子(2)条件的用户组成的集合
Ni。因为数据的稀疏性,也许会难以找到足够的严格满足要求用户,即购买了所有无标用户购买过的产品的用户,所以在这里应该适当放宽一些限制。式子(2)中
r表示容错率,即允许期望中的相似用户购买的产品不必完全包含我们要推荐的目标用户所购买的。 (2)对所有
Ni中用户购买过的产品进行打分,
nij表示
Ni中买过产品j用户的数量: (3)其中
c控制参数,控制偏好的购买比例。越接近0.5则获得的信息越大,越接近1则推荐的结果就越流行。最终的打分结果
s代表用户对一个物品的态度所能带来的潜在信息量。随意按照s值进行排序。基于本文前面的假设,拥有越大s值的产品,在获取信息的角度上就越拥有推荐给用户的优先权。 3.结论及未来待解决的问题本文介绍了一种针对新用户冷启动问题思路,放弃在试图在信息不足的情况下如何提高算法性能的目标,转而追求如何尽快解决信息不足的问题。具体算法借鉴决策树的思想,利用信息增益来判断推荐什么样的产品能够更多的获得用户信息。虽然理想的实验是结合用户反馈来进行,当如何在不需要用户参与,仅使用静态数据模拟用户反馈,或者如何在只有购买记录的一元数据中融入负面样本是一个不小的课题,受到实验本身的限制,实验结果也许并不能真正体现期望的判别作用,但仍应该具有一定的参考价值。实验结果表明本文的策略单独使用时多样性指标优于经典算法,和一种准确率导向的推荐算法配合使用时有潜力提供更高的多样性。