第一季的比赛我的成绩并不算理想,最开始我用了大家最容易接触的算法:ItemCF:
基于用户行为分析的推荐算法是个性化推荐系统的重要算法,也成为协同过滤算法
基于用户的协同过滤算法:给用户推荐和他兴趣相似的用户喜欢的物品
基于物品的协同过滤算法:给用户推荐和他之前喜欢的相似的物品
介绍ItemCF的实现原理:
(1)首先计算物品i,物品j之间的相似性
wij =N( 购买物品i的用户 && 购买物品j的用户 ) / N(购买i的用户)
可以理解为购买i的用户会有多大的概率购买物品j
(2) 根据用户的购买列表,生成用户的推荐列表
首先用户的行为表建立用户 — 物品倒排表
将用户发生过行为的两个物品在共现矩阵中加1,C[i][j]记录了同时喜欢物品i和喜欢物品j的用户数,对C进行归一化后得到物品的余弦相似矩阵
(3)根据余弦相似矩阵得到用户对物品j的喜爱程度
之后需要消除热门物品和热门消费者带来的长尾影响 具体可以参考《推荐系统实战》这本书的相关内容
这里由于天猫给的数据有
点击,收藏,购物车,购买
四种行为的权重不同,通过简单的ItemCF的方法需要赋予不同的权重,那么对于权重的选择就是一个比较困难的问题,最重要是用户操作的时间没有得到良好的考虑。最靠近的时间应该影响力因子越大。
之后基于统计学,我们结合itemCF建立了自己的模型:
考虑的特征:
(1) 物品的流行度 : 同时进行相应的归一化
(2) 物品的购买转换率 : 点击->购买 收藏->购买 购物车->购买 根据用户的行为分析,
点击转换率可参考性较弱
收藏转换率比较重要,但是必须结合收藏和点击的时间,如果收藏后没有交互过,那么权重较小,如果近期有点击过那么权重比较重
购物车转换率是最重要的,但是购物车的时间很重要,如果购物车加入的时间较早,之后没有交互,那么权重较小,如果时间距离较近,那么权重较大
最后是结合用户的转换率和交互时间分布确定特征分布
(3)用户的购买能力,根据用户的购买能力决定推荐不同数量长度的物品
最后我们将ItemCF 和统计模型进行融合获得了不错的成绩,第一季中7.1% f1 值进入第二赛季