使用用户打标签次数*物品打标签次数做乘积的算法虽然简单,但是会造成热门物品推荐的情况。物品标签的权重是物品打过该标签的次数,用户标签的权重是用户使用过该标签的次数,从而导致个性化的推荐降低,而造成热门推荐。
运用TF-IDF的思想可以对算法进行改进。TF-IDF(term frequemcy-inverse documnet frequency)是一种用于资讯检索和文本挖掘的加权技术。用来评估一个词的重要程度。其主要思想是如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。IDF是逆向文件频率,即包含某个term的文件越少,则IDF越大。
IDF可以由总文件数目除以包含该词语的文件的数目,然后取对数得到:
其中D代表文件的总数,分母代表包含该词语的文件的数目,为避免分母为0,通常用1+分母作为当前的分母。这样,当包含该词语的文件在总文件数量中所占比重很小时,能够得到较大的TDF,从而能够得到较大的比重,有利于实现个性化的推荐。(但是引入的TDF却单纯的突出了小频率词汇的权重,从而又可能会给结果带来不好的影响)
则TF-TDF = TF * TDF就反映了一个词对于整个文档集的重要程度。
将TF-IDF应用到基于标签的推荐系统的算法中,则可以进行如下改进:
其中n(b)表示标签b被多少不同的用户所使用过。
同理,用n(i)表示物品i被多少个不同的用户打过标签,可以减少热门物品的权重,从而有效的避免热门物品的影响。
原文地址:http://blog.csdn.net/minedayu/article/details/39903635