搜索相似度算法探究之MMR
最近公司搜索项目在做返回结果相似度相关的需求,需要了解如何计算不同文档之间的相似度排序,进而将返回的结果进行一次“打散”重排操作,让结果看起来不那么“相似的内容”太过于“扎墩儿”出现。
今天同事分享了相似度算法中最简单的算法:MMR。接下来就仔细研究学习下。
MMR的全称为Maximal Marginal Relevance ,中文名字为最大边界相关法或者最大边缘相关。算法目的是减少排序结果的冗余,同时保证结果的相关性。最早应用于文本摘要提取和信息检索等领域。在推荐场景下体现在,给用户推荐相关商品的同时,保证推荐结果的多样性,即排序结果存在着相关性与多样性的权衡。
MMR的主要思路是:
在MMR的公式是这样的:
R: The initial ranking
S: Documents already selected for the diverse ranking
– Documents ranked above this position
Sim(di, dj): Similarity metric
– E.g., vector space model or Jensen-Shannon Divergence
λ : 权重系数,调节推荐结果相关性与多样性。λ越大,推荐结果越相关; λ越小,推荐结果多样性越高。
举个例子,假设λ=0.6λ=0.6,初始排名及其相关性分数如下:
第一步,选择与 query 最相关的文档 d1,并从 R 中移除 d1
选择分数最高的文档作为多样性排名的第 2 篇文档,并从 R 中移除该文档
选择分数最高的文档作为多样性排名的第 3 篇文档,并从 R 中移除该文档
选择分数最高的文档作为多样性排名的第 4 篇文档,并从 R 中移除该文档
选择分数最高的文档作为多样性排名的第 5 篇文档,并从 R 中移除该文档
所以就有了最后的排名 {d1, d5, d3, d6, d2}
MMR 也会用于其它的任务如文本摘要,因为它是符合摘要的基本要求的,即相关性和多样性的权衡。摘要结果与原文的相关性越高,摘要就接近全文中心意思,而多样性则使摘要内容更加的全面。直观和简单是这种方法最大的优点。
参考文档:
http://www.shuang0420.com/2016/12/07/Search%20Engines%E7%AC%94%E8%AE%B0%20-%20Diversity/
文档相似性分数计算:
https://blog.csdn.net/yixianfe ... 17158
今天同事分享了相似度算法中最简单的算法:MMR。接下来就仔细研究学习下。
MMR的全称为Maximal Marginal Relevance ,中文名字为最大边界相关法或者最大边缘相关。算法目的是减少排序结果的冗余,同时保证结果的相关性。最早应用于文本摘要提取和信息检索等领域。在推荐场景下体现在,给用户推荐相关商品的同时,保证推荐结果的多样性,即排序结果存在着相关性与多样性的权衡。
MMR的主要思路是:
• Use the query to retrieve a ranking R of documents
• Use MMR to rerank the top N documents (build a new ranking S)
– Select the 1st document based on how well it satisfies the query
– Select subsequent documents based on two criteria
» How well it satisfies the query
» How different it is from documents ranked above it
在MMR的公式是这样的:
R: The initial ranking
S: Documents already selected for the diverse ranking
– Documents ranked above this position
Sim(di, dj): Similarity metric
– E.g., vector space model or Jensen-Shannon Divergence
λ : 权重系数,调节推荐结果相关性与多样性。λ越大,推荐结果越相关; λ越小,推荐结果多样性越高。
举个例子,假设λ=0.6λ=0.6,初始排名及其相关性分数如下:
Initial Ranking
d1, 0.80
d2, 0.78
d3, 0.76
d4, 0.74
d5, 0.72
d6, 0.70
第一步,选择与 query 最相关的文档 d1,并从 R 中移除 d1
Diversified Ranking计算剩余文档与 {d1} 的相似度和对应的多样性分数
d1
选择分数最高的文档作为多样性排名的第 2 篇文档,并从 R 中移除该文档
Diversified Ranking分别计算剩余文档与已排序文档 {d1, d5} 的相似度,选相似度最大的值,计算 MMR 分数
d1
d5
选择分数最高的文档作为多样性排名的第 3 篇文档,并从 R 中移除该文档
Diversified Ranking分别计算剩余文档与已排序文档 {d1, d5, d3} 的相似度,选相似度最大的值,计算 MMR 分数
d1
d5
d3
选择分数最高的文档作为多样性排名的第 4 篇文档,并从 R 中移除该文档
Diversified Ranking分别计算剩余文档与已排序文档 d1, d5, d3, d6 的相似度,选相似度最大的值,计算 MMR 分数
d1
d5
d3
d6
选择分数最高的文档作为多样性排名的第 5 篇文档,并从 R 中移除该文档
Diversified RankingRepeat until all documents in the initial ranking are added to the diversified ranking
d1
d5
d3
d6
d2
所以就有了最后的排名 {d1, d5, d3, d6, d2}
MMR 也会用于其它的任务如文本摘要,因为它是符合摘要的基本要求的,即相关性和多样性的权衡。摘要结果与原文的相关性越高,摘要就接近全文中心意思,而多样性则使摘要内容更加的全面。直观和简单是这种方法最大的优点。
参考文档:
http://www.shuang0420.com/2016/12/07/Search%20Engines%E7%AC%94%E8%AE%B0%20-%20Diversity/
文档相似性分数计算:
https://blog.csdn.net/yixianfe ... 17158