










MMR(Maximal Marginal Relevance,最大边际相关性) 算法多用于推荐场景,目标是减少排序结果的冗余。MMR 算法在物品的相关性和相似性之间做了权衡,在保证相关性的基础上,减少相似性,保证了推荐结果的多样性。
MMR 算法公式如下:

该算法采用的贪心策略,复杂度是
,耗时过高,导致无法在线上实时运行。
我在新闻推荐粗排服务中应用了该算法。在我的应用场景中,又加入了用户浏览历史用一些高爆光未点击新闻的过滤,耗时更高。如果不做性能优化,项目无法发布上线。
通过对算法的分析,采用了如下优化手段:

新闻相似度计算部分,可以梳理为三个计算部分:
每条新闻都有自己的分类,例如体育、科技、娱乐等,不同的分类的新闻没有相似度计算的必要。这样根据分类对候选新闻进行分桶,不同的分类之间并行计算,同样可以降低算法的复杂度,降低耗时。
我的应用场景中,新闻的相似度计算逻辑是这样的:
通过以上的优化手段,最终实现了逻辑发布上线。
参考:https://zhuanlan.zhihu.com/p/102285855
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。