推荐算法之去重策略
一、背景 推荐系统中,有一个刚需就是去重,去重主要涉及两块: 1)内容源去重,即有些抓取的文章基本是讲的一件事。 2)给用户推荐的内容去重,即不能重复推荐。 对于第一种去重,可以采用Google公布的去重算法Simhash,该算法适合海量数据去重。对于常规的文本相似度计算,需要分词,组合成一个向量,不适合海里文本。 第二种去重可以采用BloomFilter算法,该算法与Bitmap位图算法有相似之处。 二、Simhash去重算法 simhash的核心思想是为每一篇文本生成一个整数表示的指纹,然后用这个指纹去进行去重或者相似度检测。对于一些主要内容不变,有一些不太重要的词句不同的文本,simhash仍然能够得到相似或者相同的指纹。 1、首先,对原始内容分词,得到每个词的权重 2、对每个词hash成一个整数,并且把这个整数对应的二进制中的0变成-1,1还是1。 3、每个词hash后的二进制向量乘以权重,形成新的加权向量。 4、把每个词的加权向量相加,得到最终的加权向量,这个向量中元素有正有负。 5、把最终的这个向量正值设置为1,负值设置为0,形成了一个二进制序列,也就最终变成了一个整数。