ranking

ranking

TensorFlow平台上的学习排名技术库

TensorFlow Ranking是一个适用于学习排名(LTR)技术的开源库,基于TensorFlow平台。该库包括点对、成对和列表损失函数,以及各类排名指标如平均倒数排名(MRR)和标准折扣累积增益(NDCG)。它提供了群组评分功能和LambdaLoss的实现,用于优化排名指标。此外,它还支持从偏见反馈数据中进行无偏学习。该库旨在为学术研究和工业应用提供一个开放、便捷的平台。用户可通过教程和演示快速入门,无需复杂安装。

TensorFlow Ranking学习排序深度学习排序模型TensorBoardGithub开源项目

TensorFlow Ranking

TensorFlow Ranking是一个用于TensorFlow平台上的排序学习(LTR)技术的库。它包含以下组件:

我们希望这个库能提供一个方便的开放平台,用于托管和推进基于深度学习技术的最先进排序模型,从而促进学术研究和工业应用。

教程幻灯片

TF-Ranking在信息检索的顶级会议SIGIR 2019ICTIR 2019上进行了展示!幻灯片可以在这里查看。

演示

我们提供了一个无需安装的演示,以帮助您开始使用TF-Ranking。此演示运行在一个互动的Python环境——colaboratory notebook上。使用TF-Ranking中的稀疏特征和嵌入: 在Google Colab中运行。 此演示展示了如何:

  • 使用稀疏/嵌入特征
  • 处理TFRecord格式的数据
  • 在colab笔记本中,使用Estimator API进行Tensorboard集成

另请参见运行脚本获取可执行脚本。

Linux安装

稳定版本

要从PyPI安装最新版本,请运行以下命令:

# 使用`--upgrade`标志确保您获取最新版本。 pip install --user --upgrade tensorflow_ranking

要强制安装Python 3特定版本,请在上述命令中将pip替换为pip3。有关额外的安装帮助、安装前提条件的指南和(可选的)设置虚拟环境,请参见TensorFlow安装指南

注意:由于TensorFlow现已包含在TensorFlow Ranking包(在setup.py中)作为依赖。如果您希望使用不同版本的TensorFlow(例如,tensorflow-gpu),可能需要卸载现有版本并安装所需版本:

$ pip uninstall tensorflow $ pip install tensorflow-gpu

从源代码安装

  1. 本地构建TensorFlow Ranking,您需要安装:

    • Bazel,一个开源构建工具。

      $ sudo apt-get update && sudo apt-get install bazel
    • Pip,一个Python包管理器。

      $ sudo apt-get install python-pip
    • VirtualEnv,一个创建独立Python环境的工具。

      $ pip install --user virtualenv
  2. 克隆TensorFlow Ranking仓库。

    $ git clone https://github.com/tensorflow/ranking.git
  3. 构建TensorFlow Ranking wheel文件并存储在/tmp/ranking_pip文件夹中。

    $ cd ranking # 克隆的文件夹在步骤2中。 $ bazel build //tensorflow_ranking/tools/pip_package:build_pip_package $ bazel-bin/tensorflow_ranking/tools/pip_package/build_pip_package /tmp/ranking_pip
  4. 使用pip安装wheel包。在virtualenv中测试,以避免与任何系统依赖冲突。

    $ ~/.local/bin/virtualenv -p python3 /tmp/tfr $ source /tmp/tfr/bin/activate (tfr) $ pip install /tmp/ranking_pip/tensorflow_ranking*.whl

    在某些情况下,您可能希望安装特定版本的tensorflow,例如,tensorflow-gputensorflow==2.0.0。为此,您可以

    (tfr) $ pip uninstall tensorflow (tfr) $ pip install tensorflow==2.0.0

    或者

    (tfr) $ pip uninstall tensorflow (tfr) $ pip install tensorflow-gpu
  5. 运行所有TensorFlow Ranking测试。

    (tfr) $ bazel test //tensorflow_ranking/...
  6. 在python中调用TensorFlow Ranking包(在virtualenv中)。

    (tfr) $ python -c "import tensorflow_ranking"

运行脚本

为了方便实验,我们还提供了a TFRecord示例a LIBSVM示例作为可执行脚本,这对于高超参数调整特别有用,其中超参数作为脚本的标志提供。

TFRecord示例

  1. 设置数据和目录。

    MODEL_DIR=/tmp/tf_record_model && \ TRAIN=tensorflow_ranking/examples/data/train_elwc.tfrecord && \ EVAL=tensorflow_ranking/examples/data/eval_elwc.tfrecord && \ VOCAB=tensorflow_ranking/examples/data/vocab.txt
  2. 构建并运行。

    rm -rf $MODEL_DIR && \ bazel build -c opt \ tensorflow_ranking/examples/tf_ranking_tfrecord_py_binary && \ ./bazel-bin/tensorflow_ranking/examples/tf_ranking_tfrecord_py_binary \ --train_path=$TRAIN \ --eval_path=$EVAL \ --vocab_path=$VOCAB \ --model_dir=$MODEL_DIR \ --data_format=example_list_with_context

LIBSVM示例

  1. 设置数据和目录。

    OUTPUT_DIR=/tmp/libsvm && \ TRAIN=tensorflow_ranking/examples/data/train.txt && \ VALI=tensorflow_ranking/examples/data/vali.txt && \ TEST=tensorflow_ranking/examples/data/test.txt
  2. 构建并运行。

    rm -rf $OUTPUT_DIR && \ bazel build -c opt \ tensorflow_ranking/examples/tf_ranking_libsvm_py_binary && \ ./bazel-bin/tensorflow_ranking/examples/tf_ranking_libsvm_py_binary \ --train_path=$TRAIN \ --vali_path=$VALI \ --test_path=$TEST \ --output_dir=$OUTPUT_DIR \ --num_features=136 \ --num_train_steps=100

TensorBoard

训练结果如损失和指标可以使用Tensorboard可视化。

  1. (可选)如果您在远程服务器上工作,请使用此命令设置端口转发。

    $ ssh <remote-server> -L 8888:127.0.0.1:8888
  2. 安装Tensorboard并使用以下命令调用。

    (tfr) $ pip install tensorboard (tfr) $ tensorboard --logdir $OUTPUT_DIR

Jupyter Notebook

tensorflow_ranking/examples/handling_sparse_features.ipynb中提供了一个示例jupyter notebook。

  1. 要运行此notebook,首先按照安装步骤设置virtualenv环境并安装tensorflow_ranking包。

  2. 在virtualenv中安装jupyter。

    (tfr) $ pip install jupyter
  3. 在远程服务器上启动jupyter notebook实例。

    (tfr) $ jupyter notebook tensorflow_ranking/examples/handling_sparse_features.ipynb \ --NotebookApp.allow_origin='https://colab.research.google.com' \ --port=8888
  4. (可选)如果您在远程服务器上工作,请使用此命令设置端口转发。

    $ ssh <remote-server> -L 8888:127.0.0.1:8888
  5. 运行notebook。

    • 在您的本地机器上启动jupyter notebook,地址为http://localhost:8888/并浏览到ipython notebook。

    • 另一种选择是通过colab.research.google.com使用colaboratory notebook,并在浏览器中打开notebook。选择本地运行时并链接到端口8888。

参考

  • Rama Kumar Pasumarthi, Sebastian Bruch, Xuanhui Wang, Cheng Li, Michael Bendersky, Marc Najork, Jan Pfeifer, Nadav Golbandi, Rohan Anil, Stephan Wolf. TF-Ranking: Scalable TensorFlow Library for Learning-to-Rank. KDD 2019.

  • Qingyao Ai, Xuanhui Wang, Sebastian Bruch, Nadav Golbandi, Michael Bendersky, Marc Najork. Learning Groupwise Scoring Functions Using Deep Neural Networks. ICTIR 2019

  • Xuanhui Wang, Michael Bendersky, Donald Metzler, and Marc Najork. Learning to Rank with Selection Bias in Personal Search. SIGIR 2016.

  • Xuanhui Wang, Cheng Li, Nadav Golbandi, Mike Bendersky, Marc Najork. The LambdaLoss Framework for Ranking Metric Optimization. CIKM 2018.

引用

如果您在研究中使用TensorFlow Ranking并希望引用它,我们建议您使用以下引用:

@inproceedings{TensorflowRankingKDD2019,
   author = {Rama Kumar Pasumarthi and Sebastian Bruch and Xuanhui Wang and Cheng Li and Michael Bendersky and Marc Najork and Jan Pfeifer and Nadav Golbandi and Rohan Anil and Stephan Wolf},
   title = {TF-Ranking: Scalable TensorFlow Library for Learning-to-Rank},
   booktitle = {Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining},
   year = {2019},
   pages = {2970--2978},
   location = {Anchorage, AK}
}

编辑推荐精选

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多