郭峰+张珣
摘 要:随着人民生活水平的提高、智能化的快速发展以及消费观念的改变,人们对家居生活的舒适性和文化氛围的需求越来越高。作为智能家居的成员——家庭背景音乐系统,不仅要拥有简单易操作的人性化控制方式,更要能够满足不同年龄阶段的家庭成员对音乐的需求。文中结合大数据分析理论,通过对用户行为进行挖掘算法分析并建立用户推荐模型,从而快速给用户提供满足其个性化需求的音乐。同时,也结合终端设备,给出了具体的实例设计。
关键词:家庭背景音乐;数据挖掘;用户分析;偏好模型
中图分类号:G258.6 文献标识码:A 文章编号:2095-1302(2015)07-00-04
0 引 言
家庭背景音乐(Whole Home Audio)是结合家庭生活的特点在公共背景音乐的基础上发展而来的新型背景音乐系统。所谓家庭背景音乐,就是在住宅的任何一个房间里,例如卧室(包括儿童房和老人房)、客厅、书房、厨房及卫生间,均装上背景音乐专用音箱,通过手机客户端软件的控制,以随心所欲地让每个房间播放不同的音乐[1]。目前,国内市场上的相关产品大多采用播控主机为核心音源,不能对安装在家庭各个房间的喇叭和控制面板进行控制,从而提供给用户更方便的体验;少数国外的公司虽然提供有高体验、人性化的产品,但价格昂贵,无法满足用户需求。因此,国内背景音乐市场急需一种以手机终端为主控制器,以云端音乐为音源提供海量音乐的控制系统,并根据用户喜好快速建立推荐模型,主动向用户推荐符合用户需求的音乐。
云音乐数据库存储有海量音乐数据,其处理、分析和挖掘能力是实现云音乐智能化的关键。采用数据挖掘技术,通过对用户行为的分析,从海量的音乐资源中快速挖掘出满足用户需求的资源,根据用户的喜好主动向用户推荐符合其个性化的音乐。同时,本文还结合终端设备,给出了具体的设计实例。因此,对基于移动终端设备的家庭背景音乐系统大数据分析的研究,具有很高的现实价值和实际意义。
1 系统体系结构设计
1.1 系统总体架构
本系统架构是将C/S和B/S模式结合在一起使用。其中,C/S模式,即客户端/服务器模式(Client/Server),系统客户端装有控制家庭背景音乐的系统软件。B/S模式,即浏览器/服务器模式(Brower/Server),服务器装有MySQL数据库,通过用户对软件系统的操作行为可以实时反映用户数据。
1.2 MVC框架
系统采用MVC(Model View Controller,模型-视图-控制器)软件开发模式,可实现界面显示和业务逻辑的分离,因而提高了程序的可维护性、可移植性和可扩展性,降低了程序的开发难度[2]。MVC框架包含模型(Model)、视图(View)、控制器(Controller)三个核心,其结构如图1所示。
图1 MVC模式结构
图1中,模型(Model)是MVC应用程序的关键部分,主要处理应用程序的数据逻辑,可以为不同的视图提供数据。视图(View)是应用程序中处理数据显示的部分。控制器(Controller)则定义了应用程序中处理用户交互的部分[3]。
1.3 音乐数据库系统需求分析
音乐数据库系统采用B/S(即Browser/Server,浏览器/服务器)结构,通过对存储有海量资源的音乐服务平台进行数字化的处理和存储,为用户提供全方位检索功能,使用户可以快速检索出理想的结果。
1.3.1 数据库选取
基于B/S结构的音乐数据库系统必须选择合适的数据库来管理海量的音乐资源,目前主导的关系型数据库主要有基于开源的数据库管理系统MySQL[4]和处于领先地位的数据库管理系统Oracle[5],两者对比如表1所列。
表1 两种数据库技术对比
Oracle数据库 MySQL数据库
数据库规模 大型数据库 中小型数据库
对硬件要求 占用资源较多,对硬件要求高 占用资源较少,对硬件要求低
数据库成本 成本较高 开源且成本较低
数据库连接 速度较慢 速度较快
数据提交方式 不自动提交,需要用户手动提交 默认系统自动提交
根据以上比较可知,MySQL数据库在对硬件的要求及成本上占有明显优势,且MySQL数据库的连接速度与Oracle相比更快,结合本系统对数据库的需求,决定采用MySQL作为系统数据库。
1.3.2 功能模块的划分
通过对系统的需求分析,音乐数据库系统的功能模块框架如图2所示。该系统可划分为用户子系统和后台管理子系统两部分。
图2 系统功能框架图
用户子系统又可以概括为两大部分:用户信息部分和全方位检索部分。其中用户信息部分包含两个子模块:注册、登陆模块以及账号管理模块,是音乐数据库系统与用户交互的通道。全方位检索部分也包含两部分:资源全局检索与详细信息查询,负责提供音乐资源的全方位检索和音乐信息的详细查看。
后台管理子系统是帮助管理员对数据库资源检索进行管理以及日常维护工作的系统,包括对用户信息的管理,音乐资源的分类管理,相似词库的管理以及日志信息的管理,为不同用户的不同需求与偏好提供快捷的推荐服务。
2 音乐用户行为的大数据分析
2.1 Hadoop技术
Hadoop分布式计算平台是一个分布式处理大量数据的软件平台。Hadoop的框架最核心的设计是HDFS(即分布式文件处理)和MapReduce(分布式计算编程)[6]。Hadoop从架构上看是典型的主从式结构,底层的主从式文件系统HDFS支撑Map/Reduce的数据处理能力。主从式存储和数据处理的Hadoop基本架构模型如图3所示。
2.2 海量数据的聚类算法分析
聚类是数据挖掘领域中常用的算法,是对给定的数据对象集合进行划分。通过数据之间的相似性对数据进行分类,使得相同类别中的数据相似度尽可能大,而不同类别之间的数据尽可能使用不同聚类过程[7]。
图3 Hadoop的基本架构
K-means算法是最著名的划分聚类算法,它把给定的数据划分为K个聚类,每个聚类用聚类的中心来代替。聚类中心以及分配给它的数据点就代表一个新的聚类[8]。K-means算法是一种基于距离的聚类算法,采用距离作为相似性的评价指标,认为两个对象的距离越近其相似度就越大。那么给定正整数K和N个对象,如何将这些距离点划分为K个聚类?首先随机选择K个对象作为初始中心点;然后不断迭代计算,直到满足终止条件,即达到迭代次数上限或者数据点到中心点距离的平方和最小,此时质心不再发生变化,计算平方误差函数的公式(1)收敛。
(1)
计算结果E表示所有数据对象的平方差之和。K-means算法具有实现简单、运算快速的特点,能够高效地处理海量数据。K-means算法的工作流程如图4所示。
图4 K-means算法工作流程
在第一轮迭代中,Map()函数计算每个对象到中心点的距离(均方差),选择距离每个对象(object)最近的中心点(center_point),并输出
2.3 音乐用户行为分析模型的建立
用户行为日志是指用户的日常交互行为在服务器端产生的记录,主要包括四种关键数据:页面浏览流量、页面停留时间、鼠标移动轨迹以及链接点击分布。通过对用户行为日志的预处理,将处理后的日志放在Hadoop集群上,经过数据挖掘,分析出用户的意图和使用习惯等行为特征,将用户的唯一标识ID作为key,行为特征作为value,组成
图5 日志挖掘系统架构图
(1)用户海量日志层
考虑到不同年龄、不同时间阶段对音乐类型、播放时长的不同,选取用户的六个维度的信息进行分析,六个维度分别是:年龄、性别、点击次数、操作频率、播放时长和收听时段。
(2)用户日志预处理层
当用户有浏览、搜索行为时,浏览器通过对用户输入信息的识别产生记录日志。系统通过挖掘算法对产生的日志信息进行预处理。
(3)HDFS存储层
Load模块通过对来自各个外部数据源服务器上用户行为日志进行获取,经过日志预处理层,将用户行为日志根据类型和时间进行简单的划分并转换成统一的存储格式,保存在Hadoop集群中。
(4)用户日志挖掘层
挖掘层利用HDFS存储层存储的格式化的用户日志,分析用户在不同维度上的行为特征。该层运用K-means挖掘算法,对用户的日志进行分析。
(5)用户分析层
通过Mine挖掘出来的结果,可以对用户行为进行具体的分析,针对用户的行为特征确定用户所属类别,构造用户的偏好模型。
2.4 用户偏好模型的建立
通过对用户行为模型的建立,可以分析出目标用户的兴趣偏好,建立用户偏好模型,通过用户偏好模型,推荐系统可以给用户提供准确、高效和个性化的音乐推荐服务[9]。用户偏好模型的建立如图6所示。
3 系统基于Android终端的控制
3.1 系统的整体设计
系统使用安装有ADT(Android Development Tools)插件的Eclipse作为开发环境。同时利用Android系统提供的各种内部资源完成对安装在各个房间的背景音乐进行控制,用户通过手机App与系统进行交互。
图6 用户偏好模型的建立过程
3.2 客户端实现
3.2.1 用户控制
客户端设计主要是用户UI界面设计与使用。用户UI界面使用XML布局文件和Java代码混合控制的方式,XML页面布局文件采用多种布局方式相结合的方式,包括LinearLayout,TableLayout,RelativeLayout以及GridLayout;Java代码实现了Android四大组件的结合:Activity,Service,BroadcastReciver和ContentProvider,完成更多的功能。终端的控制系统布局结构图如图7所示。
图7 布局结构图
3.2.2 功能实现
在ActivityGroup中设计了4个子界面,分别为房间、情境、更多和设置。进入“房间”列表时,可以看到不同房间的分布,选择一个房间,就可以对该房间的音乐播放进行控制;“情境”模块主要包括所有房间音乐统一播放和暂停所有房间统一播放功能,用户可以对经常用到的设备状态进行模式群组,根据具体需求新增或删除情景模式,或者分享给其他用户;“更多”界面主要包括两个功能,场景定时和音量调节,设置之前首先要选择需要控制的房间;“设置”界面主要包括当前登陆用户的个人信息,用户可以通过上传照片修改界面背景和账户头像;用户账号管理功能只有管理员拥有,系统管理人员能够在服务端监控所有使用该应用程序软件的用户,并能够设置和修改用户的访问权限。客户端登录界面和操作界面如图8和图9所示。
图8 客户端登录界面 图9 客户端操作界面
4 结 语
本文介绍的家庭背景音乐系统,以手机终端代替家庭主控制器,控制各个房间播放不同的音乐;以存储在云端数据库中的音乐代替本地存储,不仅拥有更广阔的音源,更可以解决硬件设备内存不足的困扰;通过数据挖掘技术,还对用户的基本信息和行为进行分析,能够从海量的音乐资源中快速挖掘出满足用户需求的音乐,并根据用户的行为分析结果建立推荐模型,主动向用户推荐符合其个性化特点的音乐;最后,在终端设备上进行了测试,不仅提供给用户美观性和交互性相结合的友好的控制界面,同时也实现了系统对用户行为的实时监控和分析,推荐结果符合用户需求。因此,本文对家庭背景音乐系统大数据分析的研究,具有很高的现实价值和实际意义。
参考文献
[1] 李媛.唱响智能_关注国内背景音乐市场[J]. 数字社区&智能家居,2007(6): 9-24.
[2] 张黎静.音乐数据库系统的设计与实现[D].武汉:华中科技大学,2013.
[3] Robles S, Fernández J L, Fortier A, et al. Improving the model view controller paradigm in the web.[J]. Int. J. Web Eng. Technol., 2012.
[4] Anonymous. Kickfire; Kickfire and Leading Open Source Partners Team to Deliver End-to-End Business Intelligence Solutions on New MySQL Database Appliance[J]. Computers, Networks & Communications, 2008.
[5] Anonymous. Oracle; Oracle Database Vault Certified for the Oracle E-Business Suite[J]. Computer Technology Journal, 2008.
[6] 岳敬华.基于云服务的智能家居系统的研究与设计[D].杭州:杭州电子科技大学,2013.
[7] 周婷婷.基于海量查询日志的数据挖掘及用户行为分析[D].北京:北京邮电大学,2013.
[8] 周丽娟,王慧,王文伯,等.面向海量数据的并行K-means算法[J]. 华中科技大学学报(自然科学版),2012(S1):157-159.
[9] 冉琛雯, 张珣.智能家居系统界面定制技术的研究_ [J]. 物联网技术,2014,4(10): 77-79.