推荐系统学习(2)——基于TF-IDF的改进

使用用户打标签次数*物品打标签次数做乘积的算法虽然简单,但是会造成热门物品推荐的情况。物品标签的权重是物品打过该标签的次数,用户标签的权重是用户使用过该标签的次数,从而导致个性化的推荐降低,而造成热门推荐。

运用TF-IDF的思想可以对算法进行改进。TF-IDF(term frequemcy-inverse documnet frequency)是一种用于资讯检索和文本挖掘的加权技术。用来评估一个词的重要程度。其主要思想是如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。IDF是逆向文件频率,即包含某个term的文件越少,则IDF越大。

IDF可以由总文件数目除以包含该词语的文件的数目,然后取对数得到:

 \mathrm{idf_{i}} =  \log \frac{|D|}{|\{j: t_{i} \in d_{j}\}|}

其中D代表文件的总数,分母代表包含该词语的文件的数目,为避免分母为0,通常用1+分母作为当前的分母。这样,当包含该词语的文件在总文件数量中所占比重很小时,能够得到较大的TDF,从而能够得到较大的比重,有利于实现个性化的推荐。( 但是引入的TDF却单纯的突出了小频率词汇的权重,从而又可能会给结果带来不好的影响

则TF-TDF = TF * TDF就反映了一个词对于整个文档集的重要程度。

将TF-IDF应用到基于标签的推荐系统的算法中,则可以进行如下改进:

其中n(b)表示标签b被多少不同的用户所使用过。

同理,用n(i)表示物品i被多少个不同的用户打过标签,可以减少热门物品的权重,从而有效的避免热门物品的影响。

 \mathrm{idf_{i}} =  \log \frac{|D|}{|\{j: t_{i} \in d_{j}\}|}

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章