首页 > 编程知识 正文

推荐系统实战,智能推荐系统的特点包括

时间:2023-05-06 01:02:39 阅读:185654 作者:2299

标签推荐系统

标签推荐系统是指推荐用户对物品进行标签的行为。 数据的组织形式可以用最简单的三元组表示(用户、项目、标签)。 对于每个项目I,item_tags[i]存储项目I的标签向量,其中item_tags[i][b]表示用户向项目I添加标签b的次数。 那么,物品I和物品j的余弦相似度可以按以下步骤计算。

efcosinesim(item_tags,I,j ) :ret=0for b, ibi nitem _ tags [ I ].items (3360 ifbin item _ tags ) j ).keys ) :ret=wib*item_tags ) j ) b ) ni=0nj wininitem

defdiversity(item_tags,recommend _ items (: ret=0n=0foriinrecommend _ items.keys ) 3360 forjinrecommend _ 360 3360 ifi==j :基于continuer et=consinesim (item _ tags,I,j ) n=1return1-ret/(n*1.0 )标签数据的推荐算法

对于标签数据,最简单的计算用户u对物品I的兴趣公式如下。

b表示标签,u表示用户,I表示物品,用户u表示打上标签b的次数,标签b表示被物品I标记的次数。

以records[i]=[user,item,tag]存储标签数据的三元组

用user_tags保存。 其中,user_tags[u][b]=

用tag_items保存。 其中tag_items[b][i]=

以下程序可以根据records来统计user_tags和tag_items:

definitstat(records ) :user_tags=dict ) tag _ items=dict (user _ items=dict ) for user,item,taginreeer user

defrecommend(user ) : recommend _ items=dict tagged _ items=user _ items ) user ) #标记的物品for b, nubinuser_ ) ) ) ) ) nbiintag _ items [ b ].items (: ifiintagged _ items 3360 continueifinotinrecommend _ s )

以下是初始算法的表达式:

b表示标签,u表示用户,I表示物品,用户u表示打上标签b的次数,标签b表示被物品I标记的次数。

由于该表达式倾向于对与流行标签对应的项目赋予较大的权重,因此会向用户推荐流行标签中的项目,从而降低推荐结果的新颖性。 在人气标签上添加惩罚后,改善方式如下。

其中记录了有多少不同的用户使用了标签b。 该算法表示为TagBasedTFIDF。

经过进一步优化并对受欢迎项目进行处罚后,改进公式如下:

其中记录了项目I由多少个不同的用户标记,其他项目的含义不变。 该算法表示为TagBasedTFIDF。

的清理向用户推荐标签

经过前面的讨论发现标签的质量对标签推荐系统有重要的影响。 但是,不是所有的标签都有效。 例如,如果用户将某个项目标记为“无聊”表示感情,我们就不能向用户推荐标记为“无聊”的项目。 为了不降低推荐系统算法的效果,需要清除无效标签。 一般来说,标签清理方法包括:

1 .消除词频高的停止词

2 .消除词根差异引起的同义词

3 .消除分隔符或大小写同义词

如果上面的标签清理方法不符合标签的高有效性,还可以向用户推荐标签。 方便用户输入标签,可以提高标签的质量。 如下图所示,是向用户推荐标签的系统。

如图所示,常用标签由两部分组成:用户自己常用的标签和项目的流行标签。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。