系统架构

推荐系统思考小结(基于Mahout)

浪子不回头ぞ 提交于 2019-12-03 16:21:57
最近一直学习Mahout和推荐引擎相关的知识,一直想搞清楚,什么样的推荐系统的架构才是合理,既能对海量数据进行复杂运算,又能及时响应做出推荐。在网上发现一篇对推荐系统结构讲解的很好的文章 数: 据驱动销售——个性化推荐引擎 ,里面提到这样的思想 “ 数据的特性对我们的架构设计起到了一个非常关键的作用,因为我们可以使用完全不同的方式来将静态数据和动态数据分开处理,再合并分析 ”,对于一个数据挖掘初学者的我,很受启发。 同时,自己也在思考,若结合实际的推荐系统中,针对不同的协同过滤算法,如何来划分动态、静态数据,它们是怎样的结构,怎么存储的,又是怎么合并分析的。根据文章作者对推荐系统的设计思路,结合Mahout的源码实现,我似乎找到了一些相似之处,来解释上面的问题。 首先,仔细缕一遍Mahout产生推荐的算法流程: 1. 原始数据,Mahout中所有协同过滤算的的输入数据,都要求这样的结构(UserID、ItemID、 Preference )为一条记录,表示一个用户对某一个商品的喜爱程度;怎么得出这样的结果,Mahout并没实现,值需要你输入;一般来讲是通过分析用户各类行为日志记录,结合一些特征属性,计算出来。 2. 根据不同的协同过滤算法,得到用户与用户的关系(基于用户的) 或 商品与商品的关系(基于商品的);这时的数据结构,更像是矩阵:UserAID(ItemAID)

android自学笔记《三》——系统架构分析

≡放荡痞女 提交于 2019-11-30 08:37:20
下面是Android的系统架构 图 翻译后 从上图中可以看出,Android系统架构为 4 层结构 ,从上层到下层分别是 应用程序层、 应用程序框架层 、 系统运行库层 以及 Linux内核层 ,分别介绍如下: 1) 应用程序层 Android 平台不仅仅是操作系统,也包含了许多应用程序,诸如 SMS 短信客户端程序、电话拨号程序、图片浏览器、 Web 浏览器等应用程序。 这些应用程序都是用 Java 语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换, 这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个 性化。 2) 应用程序框架层 应用程序框架层是我们从事 Android 开发的基础,很多核心应用程序也是通过这一层来实现其核心功能的,该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。 a) Activity Manager (活动管理器) 管理各个应用程序生命周期以及通常的导航回退功能 b) Window Manager (窗口管理器) 管理所有的窗口程序 c) Content Provider (内容提供器) 使得不同应用程序之间存取或者分享数据 d) View System (视图系统) 构建应用程序的基本组件 e) Notification Manager( 通告管理器 )