大规模文档相似度计算—基于MapReduce框架

本文介绍了如何使用MapReduce框架处理大规模文档相似度计算问题,通过建立倒排索引来减少计算量。然而,面对数据倾斜问题,提出了采用矩阵分块的思想,将大量文档分块到不同节点,确保每个节点处理的文档对不超过一定数量,从而提高计算效率。
摘要由CSDN通过智能技术生成

        现有Doc-word矩阵,采用余弦计算两两文档之间的相似度。在实际问题中,矩阵通常是很稀疏的,为了减少计算量,通常采用倒排索引的数据结构[1], 将包含相同word的doc映射到同一个节点上, 这样只需计算相似度不为0的文档之间的相似度, 从而减少计算量,具体过程如图1所示。


        图1. 建立倒排索引计算文档相似度(来源于参考文献[1])

        上述方法虽然避免了计算相似度为0的文档之间的相似度,但是当有些word对应的文档数很大时,就会出现严重的数据倾斜问题。如果如图2所示中word “B” 对应文档数有8个, 在该节点下需计算8*(8-1)/2=28个文档对之间的相似度。

                                                                图2  建立倒排索引

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值