24. 推荐候选池的去重策略.pdfVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
今天依然要讲到两个问题,它们看似和推荐系统没有必然关系,但实际上,在你 构建自己的推荐系统的时候,不可避免地会遇到这两个问题。 去重是刚需 在推荐系统中,有一个刚需就是去重,那么说在哪些地方有去重的需求呢? 主要是在两个地方:一个是内容源去重,另一个是不重复给用户推荐。 先说说内容源的去重,这部分以前几年的图文信息流推荐为典型的例子。 如果一个平台自己不生产内容,只是做内容搬运和聚合分发,那么从大量第三方 的内容生产处抓取内容,就难免遇到相似甚至重复的内容。这就需要对内容做一 个重复检测了。 对内容做重复检测,直观的思路是分词,然后提取关键词,再两两计算词向量之 间的距离,距离小于一定阈值后就判定为重复。然而,这对于海量内容,比如几 千万以上的内容来说简直就是灾难。 其实,内容源去重并不是仅在推荐系统中才首次出现,这早在有哪些信誉好的足球投注网站引擎时代就是 一个刚需了,有哪些信誉好的足球投注网站引擎把整个互联网的网页都下载到自己的服务器上,这时,重 复冗余的内容就需要被检测出来。 另一个需求是在内容阅读类推荐场景下,给用户推荐的内容不要重复,推荐过的 内容就不再出现在推荐候选集中。 在你刷一个信息流产品时,不断看到重复的内容,想必不是使用感很好的一件事。 因为以抓取作为主要内容来源的信息流产品,不同于社交网站上用户自发产生内 容,除非遇到用户恶意发送,否则后者是不容易重复的。 以上两个场景,需要在你打造自己的推荐系统时予以考虑和应对。今天就介绍两 种最常见的去重算法,两者有相通之处也有不同的之处,听我慢慢说来。 Simhash 内容重复检测,是有哪些信誉好的足球投注网站引擎公司最先遇到的,所以 Google 在 07 年公开了他们 内部的内容重复检测算法,这个算法简单有效,甚至造福了今天的信息流推荐产 品。 对于很长的内容,如果只是检测绝对重复,也就是说完全一模一样的那种情况, 那么使用 MD5 这样的信息指纹方法非常高效,无需再去分词、提取关键词和计 算关键词向量之间的距离。 我们直接将原始的内容映射为一个短字符串,这个短字符串就是原始内容的指纹, 虽然不是绝对保证和原始内容一一映射,但是不同内容能得到相同指纹的概率非 常小。 只是这种信息指纹的方法有个非常明显的坏处就是,哪怕原始内容改一个字,得 到的信息指纹就会截然不同。 这就没法愉快地玩耍了,你一定希望的是只要主要内容不变,就算一些不太重要 的词句不同,也仍然可以得到相近甚至相同的指纹。这才能更加灵活地进行内容 重复检测。是否有这样的算法?有,就是 Simhash 。 Simhash 核心思想也是为每个内容生成一个整数表示的指纹,然后用这个指纹去 做重复或者相似的检测。下面这个示意图说明了 Simhash 如何把一个原始内容 表示成一个整数指纹。 好,现在详细说明一下这个过程。 1. 首先,对原始内容分词,并且计算每个词的权重; 2. 对每个词哈希成一个整数,并且把这个整数对应的二进制序列中的 0 变 成 -1,1 还是 1,得到一个 1 和 -1 组成的向量; 3. 把每个词哈希后的向量乘以词的权重,得到一个新的加权向量; 4. 把每个词的加权向量相加,得到一个最终向量,这个向量中每个元素有正 有负; 5. 把最终这个向量中元素为正的替换成 1,为负的替换成 0 ,这个向量变成 一个二进制位序列,也就是最终变成了一个整数。 最终这个整数就代表了原始的内容。这个 Simhash 奇妙在哪呢? 看这个示意图中,我故意加了一个不太重要的词“了”,它的权重是 1,对应的加 权向量元素不是 1 就是 -1,在上述的第四步中,如果这个词对应的向量缺少了, 其实根本不影响最终得到那个整数,因为它很难改变最终向量元素的正负。这就 是为什么那些不太重要的词不影响内容之间的重复检测。 Simhash 为每一个内容生成一个整数指纹,其中的关键是把每个词哈希成一个整 数,这一步常常采用 Jenkins 算法。这里简单示意的整数只有 8 个二进制位, 实际上可能需要 64 个二进制位的整数,甚至范围更大。 得到每个内容的 Simhash 指纹后,可以两两计算汉明距离,比较二进制位不同 个数,其实就是计算两个指纹的异或,异或结果

文档评论(0)

Action + 关注
实名认证
文档贡献者

分享知识,快乐生活

1亿VIP精品文档

相关文档