当咱们打开一个资讯APP刷新闻时,有没有想过,系统是如何迅速推送给咱们想看的内容?资讯APP背后有一个巨大的内容池,系统是如何判断要不要将某条资讯推送给咱们的呢?这就是今天想跟你们探讨的问题——推荐系统中的“召回”策略。算法
1.推荐系统中的召回数据库
召回策略主要知足的是可以从海量的数据中召回一部分相关的候选集,在实现方法上也有不少种,主要能够分为离线召回和在线召回。离线召回的方法主要有协同过滤、聚类算法。协同过滤能够分为基于用户的协同过滤和基于物品的协同过滤。在线召回主要是基于搜索的方式,从该用户的历史记录中利用不一样的算法抽取相关信息,这里的相关信息能够是物品的基本信息,也能够是离线标注的标签,而后将这些抽取到的关键信息从索引中快速的查询出相关的结果集。分布式
2.Elastic Search与TF-IDF性能
Elastic Search是基于Apache Lucene(TM)的一个开源搜索引擎,是一个分布式且具备高扩展性的全文检索的搜索引擎,并且还提供了近乎实时的索引、分析、搜索功能。 Lucene是现今搜索领域被认为速度最快、性能最稳定、功能最全的搜索引擎库,而Elastic Search是以Lucene为核心进行二次开发的搜索引擎,主要完成索引和搜索的功能,它能够经过简单的接口隐藏Lucene的复杂性,从而让整个搜索引擎变得更方便。搜索引擎
在基于内容推荐的算法中,关键词的提取是相当重要的一环,关键词提取直接影响了物品类似度计算的效果。假如没有关键词提取的话,物品所有信息做为特征维度会形成维度灾难,使得维度巨大,且构造的矩阵会至关稀疏,不利于计算。在关键词提取的过程当中,TF-IDF算法是颇有效率的一种算法。关于TF-IDF算法咱们再也不这里展开详述。索引
3.Elastic Search与推荐系统的结合接口
Elastic Search的搭建过程能够参考官网。安装配置完成Elastic Search以后,当数据进入Elastic Search并完成分词和索引之后,如今只可以根据指定输入的词语进行搜索,与推荐系统并无任何联系。所以,咱们能够根据用户的历史记录进行TF-IDF构造关键词而且输入Elastic Search,采用倒排索引的方式进行存储,以便全文搜索。开发
简单来讲,用户的浏览、收藏等行为会被记录在数据库中,推荐系统会收集用户的各类行为记录,利用TF-IDF关键词提取算法,实现一个几率模型,这个几率模型能够计算出近期用户记录中用户偏好的关键词,因为这些关键词由用户的记录产生,所以就具备了个性化的特性,再将关键词输入到Elastic Search,就能够召回与用户强相关的内容集合。ast
利用这种方法搭建的推荐系统,其优点也很明显:一是可以对内容池中的全部物料作可计算的精细整合,实现对全部物料的召回,特别是对长尾物料的召回,从而极大地提升物料利用率;二是自带物品冷启动,在没有大量用户数据的状况下也能实现个性化推荐,而且让用户对推荐结果满意。效率