推荐系统:ann算法之ngt

   日期:2024-12-27    作者:b1250959 移动:http://3jjewl.riyuangf.com/mobile/quote/74524.html

在推荐或者搜索场景中,高质量的召回都是很有必要的,有时候ann搜索算法(Approximate Nearest Neighbor)可以帮助我们实现这一个功能
ngt是yahoo日本团队基于graph和tree做的的ann搜索工具,地址:https://github.com/yahoojapan/NGT
它实现了onng/pnng的算法,对应的论文
onng: https://arxiv.org/abs/1810.07355
pnng: https://www.aclweb.org/anthology/P16-1214.pdf

  1. 看上面的benchmark,它是可以保持优势的
  2. github上维护比较勤,代码的质量比较高
  3. ngt还有一个兄弟开源代码仓, ngtd,也就是ngt的server版本,主要开发语言是go,调用ngt提供的cgo binding,这个对于算法的工程化非常有用,因为c++的后端开发成本还是有点高的

ngtd这里不展开讲,因为它跟算法相关的不多,这里主要讲ngt以及go调用ngt的binding

step1

安装ngt
https://github.com/yahoojapan/NGT/releases
我用的是1.9.1
下载后解压

 

ngt的依赖很少,很容易就安装成功了,注意可能需要sudo权限

step2

安装gongt https://github.com/yahoojapan/gongt

 

step3

验证安装
随机生成128维的数据,生成100k条数据,生成索引,然后做10次ann搜索,看看耗时
由于用的是随机数,这里不验证准确性
测试代码

 

输出


 

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号