推荐算法基础(3) 基于回归模型的协同过滤推荐
基于回归模型的协同过滤推荐如果我们将评分看作是一个连续的值而不是离散的值,那么就可以借助线性回归思想来预测目标用户对某物品的评分。其中一种实现策略被称为Baseline(基准预测)。
Baseline:基准预测Baseline设计思想基于以下的假设:
有些用户的评分普遍高于其他用户,有些用户的评分普遍低于其他用户。比如有些用户天生愿意给别人好评,心慈手软,比较好说话,而有的人就比较苛刻,总是评分不超过3分(5分满分)
一些物品的评分普遍高于其他物品,一些物品的评分普遍低于其他物品。比如一些物品一被生产便决定了它的地位,有的比较受人们欢迎,有的则被人嫌弃。
这个用户或物品普遍高于或低于平均值的差值,我们称为偏置(bias)
Baseline目标:
找出每个用户普遍高于或低于他人的偏置值$b_u$
找出每件物品普遍高于或低于其他物品的偏置值$b_i$
我们的目标也就转化为寻找最优的$b_u$和$b_i$
使用Baseline的算法思想预测评分的步骤如下:
计算所有电影的平均评分$\mu$(即全局平均评分)
计算每个用户评分与平均评分$\mu$的偏置值$b_u$
计算每部电影 ...
消息系统-Kafka(3):消费者
1.消费者和消费者组1.1. 概述Kafka 消费者从属于消费者组。一个消费者组里的消费者订阅的为同一主题。每个消费者接受主题一部分分区的消息。
向消费者组里增加消费者是横向伸缩消费能力的主要方式。Kafka 消费者在做一些高延迟的操作,如向HDFS或数据库中写入数据,或者使用数据进行一些耗时的计算操作。在这些情况下,单个消费者无法跟上数据的生成速度,此时我们可以增加消费者,以分担负载,每个消费者只处理部分分区上的消息,这就是横向伸缩的主要手段。我们有必要为主题创建大量分区,负载增长时可以增加更多的消费者
注意: 一个主题的同一个分区同时只能供同一个消费者组里的一个消费者消费数据,因此不要让消费者的数量超过主题分区的数量,多于的消费者只会被闲置。
1.2. 消费方式由于 Push 模式 很难适应消费速率不同的消费者,因此消息发送速率是由 broker 决定的。它的目标是尽可能的以最快的速度传递消息,但是这样容易造成 consumer 来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。 所以 kafka 采用 pull 模式,根据消费者的能力以适当的速率消费消息。==
Pull 模式的 ...
消息系统-Kafka(1):初识Kafka
一个消息系统负责将数据从一个应用传递到另外一个应用,应用只需关注于数据,无需关注数据在两个或多个应用间是如何传递的。
1.消息系统一个消息系统负责将数据从一个应用传递到另外一个应用,应用只需关注于数据,无需关注数据在两个或多个应用间是如何传递的。
概述分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。有两种主要的消息传递模式:点对点传递模式、发布-订阅模式。大部分的消息系统选用发布-订阅模式。Kafka就是一种发布-订阅模式。
点对点传递模式在点对点消息系统中,消息持久化到一个队列中。此时,将有一个或多个消费者消费队列中的数据。但是一条消息只能被消费一次。当一个消费者消费了队列中的某条数据之后,该条数据则从消息队列中删除。该模式即使有多个消费者同时消费数据,也能保证数据处理的顺序。
发布-订阅模式在发布-订阅消息系统中,消息被持久化到一个 topic 中。与点对点消息系统不同的是,消费者可以订阅一个或多个 topic,消费者可以消费该topic中所有的数据,同一条数据可以被多个消费者消费,数据被消费后不会立马删除。在发布-订阅消息系统中,消息的生产者称 ...
消息系统-Kafka(2):生产者
生产者即数据的发布者,该角色将消息发布到 Kafka 的 topic 中。broker 接收到生产者发送的消息后,broker 将该消息追加到当前用于追加数据的 segment 文件中。生产者发送的消息,存储到一个partition 中,生产者也可以指定数据存储的 partition。
1.生产者概览生产者即数据的发布者,该角色将消息发布到 Kafka 的 topic 中。broker 接收到生产者发送的消息后,将该消息追加到当前用于追加数据的 segment 文件中。生产者发送的消息,存储到一个partition 中,生产者也可以指定数据存储的 partition。
1.1.创建生产者ProductRecord 对象还可以指定键或分区。
在发送 ProductRecord 对象时,生产者要把键和值对象序列化为字节数组,这样才可以在网络上进行传输。接下来,数据被传给分区器。如果在 ProductRecord 对象里指定了分区,分区器直接将指定的分区返回。如果没有指定分区,分区器会根据 ProductRecord 对象的键选择一个分区。如果选定分区以后,生产者就知道向哪个主题和分区发 ...