Spark-构建基于Spark的推荐引擎

推荐引擎

推荐引擎就是是预测人们可能喜好的物品并通过探寻物品之间的联系来辅助这个过 程。从这点上来说,它同样也做预测的搜索引擎互补。但与搜索引擎不同,推荐引擎试图向人 们呈现的相关内容并不一定就是人们所搜索的,其返回的某些结果甚至人们都没听说过。推荐引擎试图对用户与某类物品之间的联系建模。比如上一个博客案 例中,我们使用推荐引擎来告诉用户有哪些电影他们可能会喜欢。如果这点做得很好,就能吸引 用户持续使用我们的服务。这对双方都有好处。同样,如果能准确告诉用户有哪些电影与某一电 影相似,就能方便用户在站点上找到更多感兴趣的信息。这也能提升用户的体验、参与度以及站 点内容对用户的吸引力。
实际上,推荐引擎的应用并不限于电影、书籍或是产品。
推荐引擎很适合如下两类常见场景(两者可兼有)。

  1. 可选项众多
    可选的物品越多,用户就越难找到想要的物品。如果用户知道他们想要什 么,那搜索能有所帮助。然而最适合的物品往往并不为用户所事先知道。这时,通过向 用户推荐相关物品,其中某些可能用户事先不知道,将能帮助他们发现新物品。
  2. 偏个人喜好
    当人们主要根据个人喜好来选择物品时,推荐引擎能利用集体智慧,根据 其他有类似喜好用户的信息来帮助他们发现所需物品。

任务:

 使用上述模型来为用户进行推荐和求指定物品的类似物品(即相关物品);
 应用标准的评估指标来评估该模型的预测能力。

推荐模型的分类

  1. 基于内容的过滤
  2. 协同过滤

代码

  1. 提取有效特征
  2. 训练推荐模型
  3. 使用推荐模型
  4. 推荐模型效果的评估
    代码:github.com/jinhang
时间: 2024-12-25 11:21:55

Spark-构建基于Spark的推荐引擎的相关文章

基于Apache Mahout构建社会化推荐引擎

推荐引擎简介 推荐引擎利用特殊的信息过滤(IF,Information Filtering)技术,将不同的内容(例如电影.音乐.书籍.新闻.图片.网页等)推荐给可能感兴趣的用户.通常情况下,推荐引擎的实现是通过将用户的个人喜好与特定的参考特征进行比较,并试图预测用户对一些未评分项目的喜好程度.参考特征的选取可能是从项目本身的信息中提取的,或是基于用户所在的社会或社团环境. 根据如何抽取参考特征,我们可以将推荐引擎分为以下四大类: 基于内容的推荐引擎:它将计算得到并推荐给用户一些与该用户已选择过的

日处理数亿次请求的工作推荐引擎是如何演化的?

◆ ◆ ◆ 从搜索引擎到推荐 Indeed的产品运行在世界各地的许多数据中心上.来自每个数据中心的点击流数据以及其他应用事件被复制到我们在奥斯丁数据中心的一个中心化的HDFS数据仓库中.我们在这个数据仓库上进行计算分析并且构建我们的机器学习模型. 我们的职位搜索引擎是简单而直观的,只有两个输入:关键字和地点.搜索结果页面展示了一个匹配的职位列表,并基于相关性进行了排序.搜索引擎是我们的用户发现职位的主要方式. 我们决定在搜索引擎之上加入职位推荐作为一个新的交互模式是基于以下几个关键原因: Ind

如何基于Spark Streaming构建实时计算平台

1.前言 随着互联网技术的迅速发展,用户对于数据处理的时效性.准确性与稳定性要求越来越高,如何构建一个稳定易用并提供齐备的监控与预警功能的实时计算平台也成了很多公司一个很大的挑战. 自2015年携程实时计算平台搭建以来,经过两年多不断的技术演进,目前实时集群规模已达上百台,平台涵盖各个SBU与公共部门数百个实时应用,全年JStorm集群稳定性达到100%.目前实时平台主要基于JStorm与Spark Streaming构建而成,相信关注携程实时平台的朋友在去年已经看到一篇关于携程实时平台的分享:

Spark机器学习之推荐引擎

Spark机器学习之推荐引擎 一. 最小二乘法建立模型 关于最小二乘法矩阵分解,我们可以参阅: 一.矩阵分解模型. 用户对物品的打分行为可以表示成一个评分矩阵A(m*n),表示m个用户对n各物品的打分情况.如下图所示: 其中,A(i,j)表示用户user i对物品item j的打分.但是,ALS 的核心就是下面这个假设:的打分矩阵 A 可以用两个小矩阵和的乘积来近似:.这样我们就把整个系统的自由度从一下降到了.我们接下来就聊聊为什么 ALS 的低秩假设是合理的.世上万千事物,人们的喜好各不相同.

Spark机器学习3·推荐引擎(spark-shell)

Spark机器学习 准备环境 jblashttps://gcc.gnu.org/wiki/GFortranBinaries#MacOS org.jblas:jblas:1.2.4-SNAPSHOT git clone https://github.com/mikiobraun/jblas.git cd jblas mvn install 运行环境 cd /Users/erichan/Garden/spark-1.5.1-bin-cdh4 bin/spark-shell --name my_mli

【Spark Summit EU 2016】基于Spark+Lucene构建近实时预测模型

本讲义出自Debasish Das与Pramod Narasimha在Spark Summit EU 2016上的演讲,主要介绍了基于Spark和Lucene构建的近实时预测模型.

(课程)基于Spark的机器学习经验

Hi,大家好!我是祝威廉,本来微博也想叫祝威廉的,可惜被人占了,于是改名叫·祝威廉二世.然后总感觉哪里不对.目前在乐视云数据部门里从事实时计算,数据平台.搜索和推荐等多个方向.曾从事基础框架,搜索研发四年,大数据平台架构.推荐三年多,个人时间现专注于集群自动化部署,服务管理,资源自动化调度等方向. 今天会和大家分享三个主题. 不过限于时间,第三个只是会简单提及下, 等未来有机会可以更详细的分享. 如何基于Spark做机器学习(Spark-Shell其实也算的上即席查询了) 基于Spark做新词发

Spark UI (基于Yarn) 分析与定制

前言 有时候我们希望能对Spark UI进行一些定制化增强.并且我们希望尽可能不更改Spark的源码.为了达到此目标,我们会从如下三个方面进行阐述: 理解Spark UI的处理流程 现有Executors页面分析 自己编写一个HelloWord页面 Spark UI 处理流程 Spark UI 在SparkContext 对象中进行初始化,对应的代码: _ui = if (conf.getBoolean("spark.ui.enabled", true)) { Some(SparkUI

【Spark Summit East 2017】Hail:基于Spark的可伸缩基因数据分析平台

本讲义出自Cotton Seed在Spark Summit East 2017上的演讲,主要分享了关于开源项目Hail(https://hail.is)的相关内容,Hail是基于Spark实现的可伸缩的平台,该平台帮助全球的基因遗传学社区去构建.共享以及应用新的工具. 在讲义中介绍了Hail的目标以及体系结构,以及面对如何借助Spark有效地操纵基因数据的挑战所引发的创新点,以及Hail平台的性能和未来的发展方向.