先进的排序算法

ZSearch支持按照相关度排序或者按照时间排序,为了保证系统的可扩展性,当按照时间排序时,同一时间的文章按照相关度排序。而按照相关度排序时,一般很难出现相关度一样的文章,如果相关度确实一样的时候,我们按照时间新旧来排序这些相关度一样的文章。

我们采用一种改良的BM25在多域系统中的排序算法,其中各个域采用不同的排序算法,标题和正文域采用改进的BM25算法,而关键词和作者域则采用专用的规则算法。为了进一步提升质量以及保证参数的动态更新,我们辅以机器学习的自动调参方法。此外,我们支持高效的机器学习排序算法——排序学习(Learning to Rank)。排序算法的整体框架如下图所示:

先进的排序算法

先进的排序算法

图中第一行表示的是各项基础相关度(标题、正文、作者、关键词)需要考虑的因素(或者可以说是feature)。

第二行表示计算各项基础相关性所用的算法。可以看出标题和正文域采用改进的BM25算法,而其他域采用专用的规则模型。