中文

在多阶段排序架构中集成神经重排序模型的方法探索

信息检索 2017-07-27 v1

摘要

我们探索了将简单卷积神经网络(CNN)与 Lucene 搜索引擎集成到多阶段排序架构中的不同方法。我们的模型使用 PyTorch 深度学习工具包进行训练,该工具包以 C/C++ 实现并带有 Python 前端。一种显而易见的集成策略是将神经网络直接作为服务暴露。为此,我们使用 Apache Thrift,一个用于构建可扩展跨语言服务的软件框架。在探索替代架构时,我们观察到,一旦训练完成,神经网络的前馈评估相当直接。因此,我们可以从 PyTorch 中提取训练好的 CNN 参数,并将模型导入 Java,利用 Java 的 Deeplearning4J 库进行前馈评估。这样做的好处是整个端到端系统可以用 Java 实现。作为第三种方法,我们可以从 PyTorch 中提取神经网络并将其“编译”成一个暴露 Thrift 服务的 C++ 程序。我们从性能(延迟和吞吐量)以及集成便利性方面评估了这些替代方案。实验表明,卷积神经网络的前馈评估在 Java 中显著较慢,而编译后的 C++ 网络的性能并未始终优于 PyTorch 实现。

关键词

引用

@article{arxiv.1707.08275,
  title  = {An Exploration of Approaches to Integrating Neural Reranking Models in Multi-Stage Ranking Architectures},
  author = {Zhucheng Tu and Matt Crane and Royal Sequiera and Junchen Zhang and Jimmy Lin},
  journal= {arXiv preprint arXiv:1707.08275},
  year   = {2017}
}

备注

SIGIR 2017 Workshop on Neural Information Retrieval (Neu-IR'17), August 7-11, 2017, Shinjuku, Tokyo, Japan