好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

一种基于elasticsearch的推荐系统架构.doc

6页
  • 卖家[上传人]:小**
  • 文档编号:34102715
  • 上传时间:2018-02-20
  • 文档格式:DOC
  • 文档大小:92KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 一种基于 ElasticSearch 的推荐系统架构 郝胜男 赵领杰 华北理工大学信息工程学院 摘 要: 该文在研究了推荐系统和搜索技术以后, 提出了一种利用搜索引擎来进行数据召回的方式, 首先采用关键词抽取算法对用户的历史记录进行概率分析, 抽取出个性化的关键词并给到 ElasticSearch 搜索引擎进行候选集的召回, 然后提出一种特征融合的方法对样本集进行了整合, 最后利用机器学习算法对样本进行了训练并预测输出与协同过滤和纯粹的基于内容的推荐系统进行对比, 利用基于 ElasticSearch 的推荐系统架构将推荐系统的点击率提高到了 17.5%关键词: 推荐系统; ElasticSearch; 机器学习; SVM; GBDT; 作者简介:郝胜男 (1971—) , 女, 河北唐山人, 硕士, 副教授, 硕士生导师, 主要研究方向计算机网络;作者简介:赵领杰 (1991—) , 男, 河北灵寿人, 学生, 硕士研究生, 主要研究方向为推荐系统, 机器学习收稿日期:2017-10-25A Recommendation System Architecture Based on Elastic SearchHAO Sheng-nan ZHAO Ling-jie North China University of Science and Technology; Abstract: Based on the research of the recommendation system and search technology, this paper puts forward a method of data to recall the use of search engines, the first probability analysis using keyword extraction algorithm to extract the user record, and personalized keywords to the ElasticSearch search engine recall candidate set, the sample sets for the integration method a fusion feature is then proposed, finally using machine learning algorithm to training samples and predictive output. Compared with collaborative filtering and pure content-based recommendation system, the recommendation rate of recommendation system is increased to 17.5% by using Elastic Search based recommendation system architecture.Keyword: recommendation system; ElasticSearch; machine learning; SVM; GBDT; Received: 2017-10-251 概述21 世纪以来, 信息技术的不断发展和互联网规模的不断扩大, 使得数据量有了指数级的增长, 不同的用户在接受来自世界各地海量的数据, 如何有效地将数据转化为信息, 成为一个亟待解决的问题[1]。

      从用户的角度来看, 用户更加想接收到对自己有用的信息, 或者自己感兴趣的信息, 而不是海量信息的集合;从信息提供者的角度来看, 想提供一种对于不同用户展示不同信息的平台, 而这个展示的信息是跟用户紧密联系的在这种情况下, 推荐系统应运而生[2]推荐系统的产生主要完成以下的工作内容:将用户和信息紧密结合, 对于不同的用户进行个性化的定制, 通过分析特定用户的偏好, 帮助用户从海量数据中筛选出用户偏好的信息, 然后将这些个性化的信息呈现给用户推荐系统最核心的部分为推荐算法, 本文首先研究了当前最流行的推荐算法, 主要包括基于内容的推荐算法, 基于协同过滤的推荐算法其中还包括在模型建立过程中用到的数据降维方法, 特征提取方法等这些算法在不同的场景应用中都会有各自的优缺点, 因此会有不同的适用范围在用户使用有一定基础的情况下, 基于物品的协同过滤算法在目前来说是一种比较稳定的通用推荐算法, 它预测准确度较高, 而且算法的解释性较高搜索技术是一项比较成熟的技术, 它将因特网上的信息进行整合, 对用户开放查询搜索引擎主要工作原理分为三部分:从网络中搜集数据;将数据进行整理;接受用户的查询搜索引擎有着快速返回搜索结果的优势, 因此可以将搜索技术应用于实时推荐系统中。

      这样对于推荐系统的实时性和准确性都会有一定的提高本文对基于搜索技术的推荐系统关键技术进行研究, 对于数据到推荐结果之间进行了搜索和推荐两步筛选, 并对实时推荐系统提供了一种通用架构在推荐算法的选用中, 提供了一种将推荐问题转化为二分类问题的特征合并方法, 与普通的基于协同过滤的算法相比较, 解决了“冷启动”的问题, 同时在算法内部隐含用户和物品聚类的数学依据, 对于数据量大而用户量少的推荐场景提高了推荐准度, 也解决了“冷启动”问题2 基于 Elastic Search 的推荐系统架构基于 Elastic Search 的推荐系统架构, 将推荐任务分为两步排序, 第一步排序使用高并发的 Elastic Search 搜索引擎返回相关的候选集, 第二步通过机器学习算法对候选集进行排序最终生成推荐结果搜索引擎的输入为关键词, 因此本文中推荐系统的架构第一步是搜集到用户的历史记录以后进行关键词的提取, 关键词的提取采用了更改的 TF-IDF 算法, 提取到多维度的关键词之后放到 Elastic Search 中搜索, 会得到不同维度的搜索结果, 从而解决了推荐系统的多样性的问题, 再进行第二步推荐算法的排序, 这里采用了不同的机器学习的算法, 离线训练的模型持久化到内存, 然后对候选集进行二次排序最终得到推荐列表展示给用户。

      搜索技术主要解决实时推荐系统的速度问题和搜索结果的多样性问题, 推荐算法主要解决推荐结果的个性化问题2.1 基于用户的 Elastic Search 关键词抽取关键词抽取其实是 TF-IDF 的一种在应用场景的实现, 将某一个用户的历史记录作为一整篇文档, 所有数据作为总的文档用户所有的历史记录数目为 M, 其中一条记录标记为 I={i1, i2, ..., in}, 公式中 i 为记录中的词则有:wik为单词 i 在当前记录中的权重, TF 为单词 i 在整个用户记录中的似然函数, 可以写成一个条件概率的形式为 P (i|User Liked) , IDF 为单词 i 在整个物品集合中的逆文档频率, 可以看做单词 i 的先验概率的倒数, 可以表示为一个概率的形式为 , 最后根据贝叶斯定理, TF*IDF 正比于 P (User Liked|i) , 因此对于用户中出现的所有的词的 W 进行排序, 最后根据后验概率最大化输出得到关键词, 然后放到 Elastic Search 中进行个性化的搜索2.2 推荐系统的机器学习算法排序用户与物品之间的信息协同过滤等算法之外, 还可以使用统计学习方法, 例如分类和回归来做排序, 为了实现这种方式, 本文提供了一种将用户信息和物品信息提取特征并融合的算法。

      将融合后的特征作为正负样本来用在分类或者回归上面用户在系统中留下的浏览和点击日志分别表明了用户对于物品的不同喜好, 可以根据用户的不同隐性反馈计算出用户对于物品的显性得分, 然后根据已知的用户-物品的得分来做回归, 而本文中使用的是分类方法, 即用户对于物品有点击或者浏览行为即为正样本, 对于负样本的选择可以使用随机方法, 这样有了正负样本以后就可以使用 Logistic Regression 等二分类方法来做排序在做分类和回归之前, 本文特征提取算法可以描述为以下算法:图 1 基于 Elastic Search 的推荐系统架构图 下载原图这样就得到了正负样本, 就可以使用分类方法来对候选集做二次排序得到最终推荐列表正负样本生成:在特征向量生成过程中, 可以采用用户-物品特征融合的方式进行正负样本的提取, 用户的基本信息的特征向量为 User, 物品的特征向量为Item, 若用户对物品感兴趣则正样本可以选择为, 两个向量的横向扩展为一个向量若未表示明确的感兴趣, 则认为该向量为负样本当正负样本确立之后, 就可以选择机器学习算法进行模型确立了本文中使用了Logistic Regression, SVM 和 GBDT 三种机器学习方法进行了模型的训练。

      2.3 基于 Elastic Search 的推荐系统架构设计推荐系统架构设计如图 1 所示系统总架构分为一下几个模块:表现层, 分析层, 推荐引擎层表现层是用户与推荐系统连接的桥梁, 用户可以通过浏览, 点击等行为留下自己的行为信息, 而日志分析层则可以通过这些点击浏览行为推断出用户的基本信息或者在表现层诱导用户去填写自己的基本信息日志分析层还承担了评价用户对某些物品的喜好程度, 通过不同的点击浏览次数来对喜好程度进行分级推荐引擎模块拿到分析模块的分析结果来对用户未浏览过或者点击过的物品进行评价, 将评价高的物品推荐给用户整个推荐系统借用了搜索引擎的信息聚合和排序的功能, 利用搜索引擎可以快速将海量的物品列表排序并取回一小部分的候选集在搜索引擎的选择上, 使用了开源的 Elastic-Search 搜索引擎, Elastic Search 是一个基于 Lucene 的搜索服务器它提供了一个分布式多用户能力的全文搜索引擎, 基于 RESTful web 接口, 能够达到实时搜索, 稳定, 可靠, 快速, 安装使用方便而且Elastic Search 提供了不同种文档相关度的排序, 使得与搜索词更加相近的文档排序更高, 内部使用倒排索引来实现, 从而达到了快速的效果。

      图 2 机器学习 AUC 效果对比图 下载原图3 效果对比3.1 机器学习算法的效果对比利用上文的机器学习算法, 以及特征融合方法, 本文抓取了某客户管理系统的用户信息, 并对于用户的特征以及物品的特征进行了提取融合, 分成了训练集和测试集合进行了算法的对比, 主要对比了算法的 AUC 和算法线上预测的速度横轴是训练集合的大小, 纵轴是 AUC 值, 从图中可以看出, 随着训练集合的增多, AUC 的值整体会提升, 说明算法的准确性与数据的多少有直接关系, 达到一定量以后, 准确性达到平稳状态, 由于机器的性能问题, SVM 算法在训练到10 万量级的时候花费时间过长, 因此没有曲线, 说明 SVM 算法较其他算法计算复杂度要高;整体对比上, GBDT 算法的 AUC 一直高于其他算法, 最终可以达到AUC=0.85 的准确性随后比较了三种模型上运行对于不同数量召回集合预测的速度对比, 如表1 所示:表 1 算法运行时间对比 下载原表 表中可以看出, 随着召回数量级的增多, 算法的预测时间都会增长, 逻辑回归花费的时间最短, 而 SVM 算法花费的时间已经超出了线上推荐系统的要求, GBDT 算法的时间勉强可以接受。

      3.2 推荐效果对比本文抓取了某客户管理系统的用户信息, 进行了协同过滤推荐, 基于内容的推荐和基于 Elastic Search 的推荐的效果推荐, 在同样每次为用户展示 20 条推荐结果的条件下, 三种算法的点击率如表 2 所示从线上点击率来看, 基于 Elastic Search 的推荐系统架构能够为用户带来更高的点击率, 因此效果要。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.