Project Icon

ranking

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

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

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}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号