浅析Faiss在推荐系统中的应用及原理
之前在业务中应用了许多Faiss,也看了几篇关于Faiss的论文,简单记录下Faiss的一些属性和应用。Faiss是Facebook的AI团队开源的一套用于做聚类或者相似性搜索的软件库,底层是用C++实现。Faiss因为超级优越的性能,被广泛应用于推荐相关的业务当中。接下来分Faiss在推荐业务应用和Faiss的基本原理两部分进行介绍。 1 Faiss在推荐业务中的应用 在我的认知里,基本上50%以上的手机APP的推荐业务会应用到Faiss服务,可见应用之广。那Faiss究竟是在哪个模块使用呢,通过下方这个图给大家介绍: 大家都知道推荐业务包含排序和召回两个模块,Faiss比较多的应用在召回模块。召回业务中有很多是向量生成类的算法,比如Graph Embedding、ALS Embedding、FM Embedding等。ALS就是经典的矩阵分解算法,它可以将User和Item的行为数据利用矩阵分解的方式生成User向量和Item向量,这些向量分别代表User和Item的属性(工科研究生矩阵论课程学过矩阵分解,不懂的同学要补课了)。 当我们拿到了User和Item的向量,只要计算出哪些Item和User的向量距离较短(最简单的解法是算欧式距离),就可以得出User偏爱的Item。但是当User和Item的数量巨大的时候,设想下某短视频平台,每天有上百万User登录