[0003] 针对现有技术所存在的上述技术问题,本发明提供了一种基于层次化物品协同过滤推荐方法,能够改善推荐的效果和性能。
[0004] 本发明包括如下内容:
[0005] 1、一种基于层次化物品协同过滤推荐方法,包括如下步骤:
[0006] 10.收集用户对物品的行为数据以及物品的元数据;
[0007] 20.对收集的行为数据和物品元数据进行建模并计算物品之间的相似度;
[0008] 30.基于层次化物品协同过滤的推荐。
[0009] 其中步骤10包括:
[0010] 101.收集所有用户的行为数据 U={u1,u2,...,u|U|}u
为所有用户的集合,用户u∈U的历史行为数据为H={(i1,t1),(i2,t2),…,(im,tm)},I={i1,i2,...,i|M|}为所有物品的集合。
[0011] 102.收集I中所有物品的元数据M,包括但不限于类别、属性、标签等信息。
[0012] 其中步骤20包括:
[0013] 201.将每个用户的行为数据按照时间分别划分为不同的会话,时间接近的行为数据被划分为一个会话。以用户u∈U为例,其历史行为数据可以根据时间划分为用户u的第n个会话定义为
[0014] 202.根据上述数据分别构建物品‑用户索引表、物品‑会话索引表和物品‑元数据索引表,分别表示用户和物品的交互关系、物品和会话的归属关系以及物品和元数据的包含关系。
[0015] 203.根据用户的行为数据以及物品的元数据,计算物品之间的相似度,其计算公式为:
[0016] sim(i,j)=α·simu(i,j)+β·sims(i,j)+γ·simm(i,j)
[0017] 其中,i,j∈I,α、β和γ是对应相似度的权重;
[0018] 是物品在用户层的相似度,Ui和Uj是分别与物品i和j的有交互行为的用户集合,根据物品‑用户索引表获得,|U|是集合U的大小;
[0019] 是物品在用户层的相似度,Si和Sj是分别包含物品i和j的会话集合,根据物品‑会话索引表获得;
[0020] 是物品在用户层的相似度,Mi和Mj是分别是物品i和j的元数据集合,根据物品‑元数据索引表获得;
[0021] 其中步骤30包括:
[0022] 301.根据用户的行为数据以及物品的相似度,计算目标用户u对物品i的兴趣,其计算公式如下:
[0023]
[0024] 其中,u是目标用户;Ii,k是和i最相似的k个物品的集合;Iu是用户u交互过的物品集合。
[0025] 302.利用上述公式对所有物品进行排序,把前n个物品推荐给目标用户u。
[0026] 本发明的有益效果是:
[0027] 1)充分利用用户对物品的交互行为数据和物品的元数据,缓解数据稀疏和冷启动问题;
[0028] 2)设计了基于层次化物品协同过滤推荐算法,能够提升推荐结果的准确率和多样性,进而提升用户的满意度。