赞
踩
列族名:列名
,表示为info:name
nginx主要通过配置nginx.conf文件完成以下功能。
Redis是内存数据库,作为热门的NoSQL数据库之一被很多互联网公司使用,是一个key-value存储系统,类似于Java中的Map; 同时Redis还可以通过实现数据的持久化来防止数据丢失;Redis可以周期性的将更新的数据写入磁盘中。
Redis是一个支持lua脚本、LRU内存回收、内存复制机制、事务和不同级别磁盘持久化特点的开源内存数据结构存储库。它支持散列、字符串、集合、列表、范围查询的有序集、位图和具有半径查询的地理空间索引等数据结构,通常用作数据库、缓存和消息代理。另外,它还可以通过Redis Sentinel提供高可用性,并通Redis Cluster进行自动分区。Redis是一个高性能的、开源的、基于key-value键值对的缓存和存储系统。Redis使用起来很方便,可以提供多种键值数据来适应不同场景下的缓存和存储要求。
Redis是内存数据库,从内存中读取数据的速度远远快于从硬盘中读取。
Redis特点
kafka是一个分布式消息队列,具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列中写消息,消费者从队列中取消息进行业务逻辑。Kafka是一种发布-订阅模式。将消息保存在磁盘中,以顺序方式读写方式读取磁盘,避免随机读写导致性能瓶颈。
kafka集群架构
推荐模型构建流程
推荐系统的核心算法基本逻辑是
和你有相似爱好的人所喜欢的物品,也是你所喜欢的,user-based 协同过滤
和你所喜欢的物品类似的物品,你也是喜欢的,item-based 协同过滤
计算相似度的方法
Jaccard相似度 J ( a , b ) = ∣ a ∩ b ∣ ∣ a ∪ b ∣ \displaystyle J(a,b)=\frac{\vert a\cap b\vert }{\vert a\cup b\vert} J(a,b)=∣a∪b∣∣a∩b∣
余弦相似度 c o s θ = a b ∣ a ∣ ∣ b ∣ \displaystyle cos\theta =\frac{a b}{\vert a \vert\vert b \vert} cosθ=∣a∣∣b∣ab
对数似然相似度 s i m i l a r i t y = 2 × ( m a t r i x E n t r o p y − r o w E n t r o p y − c o l u m n E n t r o p y ) \displaystyle similarity=2\times (matrixEntropy-rowEntropy-columnEntropy) similarity=2×(matrixEntropy−rowEntropy−columnEntropy)
皮尔逊相似度 c o r r ( a , b ) = C o v ( a , b ) σ a 2 σ b 2 \displaystyle corr(a,b)=\frac{Cov(a,b)}{\sqrt{\sigma_a^2}\sqrt{\sigma_b^2}} corr(a,b)=σa2 σb2 Cov(a,b)
如果基于user-based的协同过滤算法,那么我们需要求出所有用户间的皮尔逊相似度,然后通过k近邻算法找到和被推荐用户最相似的k个用户,将他们评分高且被推荐用户未购买过的商品推荐给这些用户。
如果使用基于item-based的协同过滤算法,我们需求出所有商品之间的皮尔逊相似度,然后找到和被推荐用户购买过的商品相似度最大的商品,推荐给这些用户。
在lambda架构中,主要包括离线数据层,实时处理层和服务层。在离线处理层部分将产生的数据存储到HDFS上,通过MapReduce进行离线处理,MapReduce将处理完的模型存储到Redis中,在实时处理部分SparkStreaming基于Kafka实时得到的数据写入redis并从redis中获得推荐结果。服务层通过restful完成推荐结果的呈现,将结果推荐给用户。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。