Project Icon

metarank

实时个性化搜索和推荐服务,优化CTR和用户体验

Metarank是一个开源排名服务,帮助构建个性化的语义/神经搜索和推荐系统。通过整合点击和购买等客户信号,该服务可以优化搜索结果和推荐内容,实现最大化CTR。其快速性能支持大规模结果集的重新排序,并提供开箱即用的排名信号计算,节省开发时间。与多种流处理系统集成,Metarank能处理大量RPS,支持横向扩展。另外,用户可以使用LLM,在搜索查询中理解其真实含义,提供更智能的搜索解决方案。

Metarank:实时个性化服务

文档 | 官网 | 社区 Slack | 博客 | 示范

CI Status License: Apache 2 Last commit Last release Join our slack

什么是Metarank?

Metarank是一个开源排名服务。它可以帮助你建立个性化的语义/神经搜索和推荐系统。

如果你只是想快速入门,试试:

为什么选择Metarank?

通过Metarank,你可以让现有的搜索和推荐系统变得更智能

  • 将客户信号(如点击和购买)整合到排名中——并为最大化点击率(CTR)进行优化!
  • 追踪访客资料,通过实时个性化使搜索结果适应用户操作。
  • 使用LLM的双编码和交叉编码模式,让你的搜索更好地理解查询的真实含义。

Metarank非常快速

  • 针对重排序延迟进行了优化,即使是大结果集,它也可以在10-20毫秒内处理。查看基准测试
  • 作为无状态的云原生服务(通过Redis管理状态),它可以横向扩展并处理成千上万的RPS。详情请参阅Kubernetes部署指南

节省你的开发时间

  • Metarank可以开箱即用地计算几十种典型的排名信号:点击率(CTR)、引用来源、用户代理、时间等——你不需要为大多数常见的排名因素编写自定义的临时代码。查看文档中支持的全部排名信号列表
  • 与许多可能的流处理系统集成以摄取访客信号:详情请参阅数据源

你能用Metarank构建什么?

Metarank帮助你建立用于搜索和推荐的高级排名系统:

  • 语义搜索:使用最先进的LLM使你的Elasticsearch/OpenSearch理解你的查询意图。
  • 推荐:传统的协同过滤和新式的语义内容推荐。
  • 学习排序:优化你的现有搜索。

内容

博客文章:

聚会和会议讲座:

主要特征

演示

你可以在demo.metarank.ai上体验Metarank的演示:

Demo

演示本身和使用的数据都是开源的,你可以在GitHub仓库中获取训练事件和配置文件的副本。

一分钟了解Metarank

让我们展示如何在不到一分钟的时间内开始使用基于LambdaMART的重排序进行内容个性化:

  1. 准备数据:我们将从demo.metarank.ai获取数据集和配置文件。
  2. 以独立模式启动Metarank:它将导入数据,训练ML模型并启动API。
  3. 发送几个请求到API。

第一步:准备数据

我们将使用ranklens数据集,它在我们的演示中使用,所以只需下载数据文件

curl -O -L https://github.com/metarank/metarank/raw/master/src/test/resources/ranklens/events/events.jsonl.gz

第二步:准备配置文件

我们将再次使用演示中的配置文件。它使用内存存储,因此不需要其他依赖项。 <SOURCE_TEXT>

curl -O -L https://raw.githubusercontent.com/metarank/metarank/master/src/test/resources/ranklens/config.yml

第三步:启动 Metarank!

在最后一步中,我们将使用 Metarank 的 standalone 模式,该模式将训练和运行 API 合并为一个命令:

docker run -i -t -p 8080:8080 -v $(pwd):/opt/metarank metarank/metarank:latest standalone --config /opt/metarank/config.yml --data /opt/metarank/events.jsonl.gz

在 Metarank 启动并处理数据时,你会看到一些有用的输出。一旦完成,你可以向 localhost:8080 发送请求以获取个性化结果。

这里我们将通过点击其中一部电影并观察结果与几部电影进行互动。

首先,让我们看看 Metarank 在我们与其互动之前提供的初始输出

# 获取一些项目的初始排名
curl http://localhost:8080/rank/xgboost \
    -d '{
    "event": "ranking",
    "id": "id1",
    "items": [
        {"id":"72998"}, {"id":"67197"}, {"id":"77561"},
        {"id":"68358"}, {"id":"79132"}, {"id":"103228"}, 
        {"id":"72378"}, {"id":"85131"}, {"id":"94864"}, 
        {"id":"68791"}, {"id":"93363"}, {"id":"112623"}
    ],
    "user": "alice",
    "session": "alice1",
    "timestamp": 1661431886711
}'

# {"item":"72998","score":0.9602446652021992},{"item":"79132","score":0.7819134441404151},{"item":"68358","score":0.33377910321385645},{"item":"112623","score":0.32591281190727805},{"item":"103228","score":0.31640256043322723},{"item":"77561","score":0.3040782705414116},{"item":"94864","score":0.17659007036183608},{"item":"72378","score":0.06164568676567339},{"item":"93363","score":0.058120639770243385},{"item":"68791","score":0.026919880032451306},{"item":"85131","score":-0.35794106000271037},{"item":"67197","score":-0.48735167237049154}
# 告诉 Metarank 在上一个请求中向用户展示了哪些项目及其顺序
# 可选地,我们可以包括由 Metarank 或你的内部检索系统计算的分数
curl http://localhost:8080/feedback \
 -d '{
  "event": "ranking",
  "fields": [],
  "id": "test-ranking",
  "items": [
    {"id":"72998","score":0.9602446652021992},{"id":"79132","score":0.7819134441404151},{"id":"68358","score":0.33377910321385645},
    {"id":"112623","score":0.32591281190727805},{"id":"103228","score":0.31640256043322723},{"id":"77561","score":0.3040782705414116},
    {"id":"94864","score":0.17659007036183608},{"id":"72378","score":0.06164568676567339},{"id":"93363","score":0.058120639770243385},
    {"id":"68791","score":0.026919880032451306},{"id":"85131","score":-0.35794106000271037},{"id":"67197","score":-0.48735167237049154}
  ],
  "user": "test2",
  "session": "test2",
  "timestamp": 1661431888711
}'

现在,让我们与项目 93363 互动

# 点击 id 为 93363 的项目
curl http://localhost:8080/feedback \
 -d '{
  "event": "interaction",
  "type": "click",
  "fields": [],
  "id": "test-interaction",
  "ranking": "test-ranking",
  "item": "93363",
  "user": "test",
  "session": "test",
  "timestamp": 1661431890711
}'

现在,Metarank 将对项目进行个性化处理,响应中的项目顺序将有所不同

# 个性化相同的项目列表
# 它们将按照 Metarank 返回的不同顺序返回
curl http://localhost:8080/rank/xgboost \
 -d '{
  "event": "ranking",
  "fields": [],
  "id": "test-personalized",
  "items": [
    {"id":"72998"}, {"id":"67197"}, {"id":"77561"},
    {"id":"68358"}, {"id":"79132"}, {"id":"103228"}, 
    {"id":"72378"}, {"id":"85131"}, {"id":"94864"}, 
    {"id":"68791"}, {"id":"93363"}, {"id":"112623"}
  ],
  "user": "test",
  "session": "test",
  "timestamp": 1661431892711
}'

# {"items":[{"item":"93363","score":2.2013986484185124},{"item":"72998","score":1.1542776301073876},{"item":"68358","score":0.9828904282341605},{"item":"112623","score":0.9521647429731446},{"item":"79132","score":0.9258841742518286},{"item":"77561","score":0.8990921381835769},{"item":"103228","score":0.8990921381835769},{"item":"94864","score":0.7131600718467729},{"item":"68791","score":0.624462038351694},{"item":"72378","score":0.5269765094008626},{"item":"85131","score":0.29198666089255343},{"item":"67197","score":0.16412780810560743}]}

有用的链接

接下来呢?

查看更深入的 快速入门 完整的 参考

如果你有任何问题,请随时加入我们的 Slack

许可证

本项目根据 Apache 2.0 许可证发布,具体内容请参见 许可证 文件。 </SOURCE_TEXT>

项目侧边栏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号