1.一种可降低流行度偏差的个性化长尾商品推荐方法,其特征在于,所述方法由计算机执行,包括以下步骤:S1、获取用户数据、用户行为数据、商品的标签数据和用户的社交好友数据,并形成历史数据;
S2、基于历史数据构建概率生成集合;
S3、基于概率生成集合获取用户-主题概率分布矩阵、主题-商品概率分布矩阵;
S4、基于用户-主题概率分布矩阵和主题-商品概率分布矩阵获取用户对商品的偏好权重;
S5、对偏好权重进行由高到低的排序,基于排序结果确定商品推荐结果。
2.如权利要求1所述的可降低流行度偏差的个性化长尾商品推荐方法,其特征在于,所述用户行为数据包括:用户交易数据和隐形行为数据。
3.如权利要求2所述的可降低流行度偏差的个性化长尾商品推荐方法,其特征在于,所述历史数据包括:所述用户数据为用户集合U={1,…,u,…,|U|},其中,u表示任意用户,1≤u≤|U|;
所述用户交易数据为商品集合W={1,…,w,…,|W|},w表示任意商品,1≤w≤|W|;
所述交易商品的标签数据为商品标签集合L={1,…,l,…,|L|},l表示任意商品标签,
1≤l≤|L|;
所述用户的社交好友数据为社交用户集合T={1,…,t,…,|T|},t表示任意用户的社交好友,1≤t≤|T|。
4.如权利要求3所述的可降低流行度偏差的个性化长尾商品推荐方法,其特征在于,所述步骤S2具体包括:S201、设置迭代总次数为itermax,当前迭代次数为iter;主题所对应的编号为k,k=0,
1,…,K,主题分布的先验参数集合为α={α0,α1,…,αk,…,αK},αk表示主题编号k分布的先验参数,商品分布的先验参数集合为β={β1,…,βw,…,β|W|},βw表示任意商品w分布的先验参数,商品标签分布的先验参数集合为δ={δ1,…,δl,…,δ|L|},δl表示任意商品标签l分布的先验参数,社交用户的先验参数集合为τ={τ1,…,τt,…,τ|T|},τt表示任意社交用户t的先验参数;
S202、初始化iter=1,初始化αk、βw、δl、τt,将αk、βw、δl、τt的初始值均设置为0.01;
随机给所述商品集合W中的每个商品分配主题所对应的编号,其中,商品i在第iter次迭代中的主题编号记为 则所有商品在第iter次迭代中的主题编号所构成的商品主题集合记为z(iter);
随机给商品标签集合L中的每个标签分配主题所对应的编号,其中,商品标签j在第iter次迭代中的主题编号记为 则所有商品标签在第iter次迭代中的主题编号所构成的商品标签主题集合记为x(iter);
随机给社交用户集合T中的每个社交用户分配主题所对应的编号,其中,社交用户g在第iter次迭代中的主题编号记为 则所有社交用户在第iter次迭代中的主题编号所构成的社交用户主题集合记为y(iter);
S203、排除当前商品i所分配的主题编号,根据其他所有商品所分配的主题编号所构成(iter)的商品主题集合 商品集合W、商品标签集合L以及商品标签主题集合x 、社交用户集合T以及社交用户主题集合y(iter),利用式(1)计算当前商品i分配给主题编号k的概率:其中:
表示在所有用户交易记录中,去除当前商品i以后,商品w属于主题k的次数;
表示去除当前商品i以后,用户u交易的商品属于主题k的个数;
表示用户u感兴趣的商品内容标签属于主题k的次数;
表示和用户u产生过社交关系的用户属于主题k的次数;
S204、排除当前商品标签j所分配的主题编号,根据其他所有商品标签所分配的主题编号所构成的商品标签主题集合 商品标签集合L、商品集合W以及商品主题集合z(iter)、社交用户集合T以及社交用户主题集合y(iter),利用式(2)计算当前商品标签j分配给主题编号k的概率:其中:
表示去除当前商品标签j之后,在所有商品标签中,标签j属于主题k的次数;
表示用户u交易的商品属于主题k的个数;
表示去除当前商品标签j之后,用户u感兴趣的商品内容标签属于主题k的次数;
S205、排除当前社交用户g所分配的主题编号,根据其他社交用户所分配的主题编号所构成的社交用户主题集合 社交用户集合T、商品集合W以及商品主题集合z(iter)、商品标签集合L以及商品标签主题集合x(iter),利用式(3)计算当前社交用户g分配给主题编号k的概率:其中:
表示去除当前社交用户g以后,在所有的社交用户中,用户t属于主题k的次数;
表示去除当前社交用户g以后,和用户u产生过社交关系的用户属于主题k的次数;
S206、重复步骤S203得到当前商品i分配给所有主题的概率集合并利用式(4)更新概率 得到更新后的概率 从而得到更新后的概率集合
S207、重复步骤S204得到当前商品标签j分配给所有主题的概率集合并利用式(5)更新概率 得到更新后的概率 从而得到更新后的概率集合
S208、重复步骤S205得到当前社交用户g分配给所有主题的概率集合并利用式(6)更新概率 得到更新后的概率 从而得到更新后的概率集合
S209、选取一个随机值 并逐一与更新后的当前商品i分配给所有主题的概率集合 中的每个概率进行比较,当 时,令当前商品i在第iter+1次迭代中的所分配的主题编号 为k;
S210、选取另一个随机值 并逐一与更新后的当前商品标签j分配给所有主题的概率集合 中的每个概率进行比较,当 时,令当前商品标签j在第iter+1次迭代中的主题编号 为k;
S211、再选一个随机值 并逐一与更新后的当前社交用户g分配给所有主题的概率集合 中的每个概率进行比较,当 时,令当前社交用户g在第iter+1次迭代中的主题编号 为k;
S212、令iter+1赋值给iter,更新iter的值,并判断iter>itermax是否成立,若不成立,则返回步骤S203,重复步骤S203到步骤S212;若成立,则执行步骤S3。
5.如权利要求4所述的可降低流行度偏差的个性化长尾商品推荐方法,其特征在于,所述步骤S3包括:基于式(7)计算用户u-主题编号k的概率分布矩阵Θu,k,基于式(8)计算主题编号k-商品w的概率分布矩阵Φk,w,从而得到用户-主题概率分布矩阵Θ、主题-商品概率分布矩阵Φ:其中:
表示用户u交易的商品属于主题k的个数;
表示用户u感兴趣的商品内容标签属于主题k的次数;
表示和用户u产生过社交关系的用户属于主题k的次数;
αk表示主题编号k分布的先验参数;
表示在所有用户交易记录中,商品w属于主题k的次数;
βw表示任意商品w分布的先验参数。
6.如权利要求5所述的可降低流行度偏差的个性化长尾商品推荐方法,其特征在于,所述步骤S4具体包括:基于式(9)计算用户u对商品w的偏好权重ru,w,从而得到用户u对所有商品的偏好权重:
7.如权利要求6所述的降低流行度偏差的个性化长尾商品推荐方法,其特征在于,所述步骤S5具体包括:根据偏好权重由高到底的排序,取其中前N项生成用户u的商品推荐列表,进而推荐给用户u。
8.一种降低流行度偏差的个性化长尾商品推荐系统,其特征在于,所述系统包括计算机,所述计算机包括:至少一个存储单元;
至少一个处理单元;
其中,所述至少一个存储单元中存储有至少一条指令,所述至少一条指令由所述至少一个处理单元加载并执行以实现以下步骤:S1、获取用户数据、用户行为数据、交易商品的标签数据和用户的社交好友数据,并形成历史数据;
S2、基于历史数据构建概率生成集合;
S3、基于概率生成集合获取用户-主题概率分布矩阵、主题-商品概率分布矩阵;
S4、基于用户-主题概率分布矩阵和主题-商品概率分布矩阵获取用户对商品的偏好权重;
S5、对偏好权重进行由高到低的排序,基于排序结果确定商品推荐结果。