基于用户模型匹配的水情信息可视化研究与实现
2020-05-11张审问吴海燕李效宁刘树波
张审问 ,吴海燕 ,李效宁 ,吴 悔 ,刘树波
(1. 甘肃省水利厅信息中心,甘肃 兰州 730000;2.武汉大学计算机学院,湖北 武汉 430072)
0 引言
随着水情信息化平台数据的日益丰富与数据可视化技术的飞速发展,国家政府和科研人员对水情数据的个性化与可视化需求越来越强烈。近年来,对水情信息的可视化基本上停留在信息展示阶段,随着网络地理信息系统(WebGIS)的发展,水情信息可视化也渐渐与地理信息系统(GIS)相结合[1]。基于 GIS 的水情信息可视化通常使用符号定位、信息标注、信息列表的方式,让用户以直观交互的方式实现对水情数据的观察和浏览,利于用户对水情信息的宏观把控。然而在大规模水利工程下,存在大量的水情监测站点,水利信息化平台数据库中的水情信息具有信息量大、变化快、来源广的特点。若对数据库中所有水情信息均统一进行可视化,势必会增加浏览器负载,导致响应时间过长,可视化效果不佳等问题;同时信息堆积和图形重叠容易造成视觉混淆,用户无法快速准确地获取满足自身偏好的信息资源。又由于水情信息类别多,存在一些不易于用户理解的指标,如氨氮、电导率等,增加阅读难度,单一的信息展示会造成用户阅读疲劳,不利于发挥水情数据资源的价值。若通过人工筛选或用户自请求的方式进行信息可视化,又会造成工作效率低、系统灵活性差、可视化单一等问题。
本研究基于 GIS 的可视化思想,结合百度MapV 框架,实现水情信息 WebGIS。根据水情数据的特点和用户背景信息的描述,结合用户特征进行分析,定制个性化地图底图,设计水情信息可视化方案,并在此基础上,使用基于用户模型匹配的推荐算法,为用户推荐水情站点,对推荐站点重点可视化。通过引入基于概率的用户模型匹配算法为不同的用户匹配水情信息可视化方案,同时达到个性化的目的。
1 系统结构与功能设计
根据可视化方案结合水情站点的推荐,对满足用户个性化需求的水情信息可视化系统的框架进行设计。为了实现满足用户个性化的需求的可视化系统,首先要将用户模型与水情信息可视化方案关联,需要将地图、可视化方案、系统界面转化为可视化模型,并使用户模型与可视化模型对应,而可视化模型的调度和实现依赖前端相关技术。所以将从可视化模型的构建、个性化可视化框架设计 2 个方面介绍。
1.1 可视化模型的构建
构建可视化模型用来综合描述地图显示、水情信息可视化方案、用户界面。具体结构设计如图 1所示。
图 1 可视化模型结构图
个性化地图包含地图颜色的设置、用户进入系统时地图的比例及中心点。地图的中心点是指地图展示区域正中心的地点,为达到个性化,将地图的中心点设置为用户所在工作地区的位置,这样用户每次进入系统最先见到的可视化内容是用户周边的内容。地图显示的级别是指用户进入系统时呈现的地图级别,可以根据用户所在地区和用户身份确定:地域级别越大的用户对应的最小可见地图级别越小,返回的可视化内容越多。内容是指进行可视化的数据,形式是指可视化的方式,界面展示主要包括界面颜色和组件的布局。
通过设立唯一标识符标记每个可视化模型,可视化模型中记录适用的用户模型 ID。由于个性化地图、可视化方案及界面展示是根据用户模型的背景参考信息定制的,每个用户模型应对应一个或者多个可视化模型;可视化模型中记录组件状态值,用来调取个性化定制的地图组件、组件中包含水情信息可视化相关的子组件。
1.2 系统框架设计
个性化水情信息可视化系统功能如下:系统可以根据不同的用户,为用户推荐符合用户偏好的水情站点,为用户提供符合用户背景特征的地图模板与水情信息可视化方案,为用户推选符合用户个性化需求的界面风格与布局。本研究设计个性化的水情信息可视化系统框架,如图 2 所示。
图 2 个性化水情信息可视化系统框架图
系统主要包括用户模型、算法处理模型、用户-站点评价机制、可视化模型、可视化系统界面等组成部分。用户模型是个性化的水情信息可视化系统核心的部分,不同的用户根据算法处理模型对用户推荐水情站点,展示推荐列表。在用户建模和匹配的基础上,通过对用户-站点评价机制对算法进行改进,在下次登陆系统时更准确地为新用户进行推荐。
1)用户模型。是基于用户或者用户组的模型,是对用户各类属性的明确描述,是系统针对多个用户的背景信息、行为偏好、可视化认知等其他相关信息的表示与建模[2],可以帮助系统对用户进行认知[3]。
2)算法处理模型。包括模型匹配和站点推荐,在水情信息可视化平台中,由于背景相同的用户感兴趣的站点相似,因此先将用户进行匹配,再通过推荐算法对信息进行过滤,为实现个性化的水情信息可视化做准备。
3)可视化模型。包括个性化地图、可视化方案和界面展示。根据水情数据的特点和用户模型,定制个性化地图底图,设计水情信息可视化方案。并通过算法模块为不同的用户匹配水情信息可视化方案,达到个性化的目的。
4)可视化系统。主界面由地图组件、推荐列表和其他组件构成,地图组件存放地图和水情信息可视化图层,推荐列表展示推荐站点信息,其他组件用来实现水情信息的其他展示方式。
5)用户-站点评价机制。是将显性反馈(用户通过界面上的评分功能给推荐的站点打分)和隐性反馈(用户在使用可视化系统时会产生与水情站点相关的行为)2 种反馈信息进行分析并更新到数据库,更新用户评分矩阵与行为记录[4],准备下一次重新离线计算用户兴趣相似度,使用户在下一次登录系统时,能更准确地为用户进行站点推荐。
2 算法实现
在推荐系统中常常采用基于用户的协同过滤算法(UserCF),能有效地解决信息过载,为用户提供个性化的服务,但使用该算法推荐水情站点,存在用户-站点评分矩阵稀疏和新用户问题[5]。实验系统采用一种基于用户模型匹配的推荐算法(UMMatch-CF),在用户实现用户模型匹配的基础上,结合用户背景信息,可以改善基于用户的协同过滤算法存在的矩阵稀疏和新用户问题。针对矩阵稀疏问题,借助用户匹配模型中背景相似用户预测评分,对用户-站点评分矩阵进行填充。针对新用户问题,采用在用户模型中建立用户特征与水情站点的关联表的方法,提取新用户的特征为其推荐站点。
2.1 基于概率的用户模型匹配算法
基于概率的用户模型匹配算法最早用于自适应地图可视化系统中,为了使用户更准确地匹配到符合个性特征的用户模型[6]。基本原理是通过归一化的街坊距离计算用户各个属性与用户模型属性的属性距离,结合属性权重计算用户与用户模型初始相似度,引入用户模型被匹配的概率对结果进行修正,相似度最高的用户模型即为最终的匹配模型,具体步骤如下:
1)需要根据不同的系统属性的不同权重,制定相应的权重体系。对于用户模型库 UMB(包含 n 个用户模型),用向量 UMB{U1,U2,U3,…,Un}表示。用户模型中的关键属性共有 m 个,为这 m 个关键属性分配相应的权重,用 W{W1,W2,W3,…,Wm}表示,其中所有属性的权重和 W1+ W2+ W3+ … + Wm=1。初始属性权重确定之后,当用户注册系统时,给出权重分配情况,并解释权重体系对水情信息可视化的影响。
2)用户建模时,使用 K-medoids 将训练集用户属性数据集聚类,划分为 K 个聚簇,在此基础上,用户模型初始的匹配概率 P ={p1,p2,…,pk}可以根据聚簇中用户个数确定,公式如下:
式中:pi表示第 i 个用户模型的匹配概率;表示用户模型中的匹配到的用户数;初始用户模型 i中的用户数等于聚簇 i 中的用户数据对象个数;|U|为所有用户模型里的用户总数。
3)采用街坊距离的方式计算属性距离,计算公式如下:
假定 uk为要进行匹配的用户,Ui(1 ≤i ≤ n)为用户模型库中的用户模型。attrij(1 ≤ j ≤ m)为 Ui在属性 j 上的值,attrkj(1 ≤ j ≤ m) 为 uk的属性值;Dij则表示用户 k 与 i 在 j 属性上的属性距离。可以看出,当用户与用户模型属性值相差越大,属性距离也就越大。
4)根据步骤 1)中确定的属性权重,计算初始用户背景相似度 Ski:
式中:Ski表示目标用户 k 和 i 的初始背景相似度;Dij为属性距离;Wj为属性 j 的权重,共有 m 个关键属性。分析式 (3) 可以看出,当用户属性距离或权重越大时,初始用户背景相似度就越小,用户背景与模型的背景就越相似。
5)引入阈值∮,提取与最高初始背景相似度值相差小于∮的用户模型:
式中:maxDi为最高初始背景相似度值;ΔSki为初始背景相似度与最大相似度值的差值。
阈值∮如果未确定,可以取所有差值的平均值作为∮值,公式如下:
将所有 ΔSki≤∮的用户模型提取出来,构成新的用户模型—相似度集合{(Sk1,U1),(Sk2,U2),…,(Skm,Um)}。
6)引入式 (1) 中的用户模型概率向量 p{p1,p2,…,pn},计算最终的用户背景相似度,公式为
式中:假定初始相似度最高的用户模型为 U*,其匹配概率为 p*;为最终用户背景相似度;μ (0 ≤ μ ≤1) 为概率影响因子,通过调整 μ 的大小调节匹配概率对相似度计算的影响。
通过式 (6) 分析,可以得出当 μ 固定,匹配概率 pi越大,由于初始背景相似度 Ski固定,就越大,则用户与用户模型背景越相似;当匹配概率固定,初始相似度 Ski固定,μ 越大,则 S'ki就越大,所以 μ 越大,表示概率对最终用户背景相似度的影响也就越大,当 μ = 0 时,,表示不考虑概率对相似度计算的影响,初始的匹配模型即为最终匹配的模型。
2.2 基于用户模型匹配的推荐算法实现
2.2.1 改善矩阵稀疏问题
改善矩阵稀疏问题的基本思想是通过背景相似用户对水情站点的评分去预测目标用户的评分。用户通过基于概率的用户模型匹配算法,匹配用户模型,计算其与用户模型中的其他用户的背景相似度,得到背景相似用户集。然后根据这些用户的评分信息,填充用户-站点评分矩阵中的空值。
假定目标用户为 Uk,登录系统与用户模型库中的用户模型匹配,假定匹配结果为 UM1,UM1中存储了所有匹配成功的用户信息,用集合 {u1,u2,…,um}表示,用户背景相似度计算之前,需要先计算背景属性距离。针对不同类别属性分别计算属性相似度,具体规则如下,其中 attrij,attrkj为用户 i 和 k的 j 属性的值,sim [attrij,attrkj] 则表示用户 i 与 k 在属性 j 上的属性距离。
1)数值型属性。如年龄,计算公式为
2)二元属性。如性别,比较两属性的值,若相同,则 sim [attrij,attrkj] =1;若不同,则 sim [attrij,attrkj] = 0。
3)分类属性。分析属性值之间的关系,建立1 棵语义层次树,不同的属性值作为叶子节点[7]。工作地区、部门、职称、计算机水平虽然均为分类属性,但后 3 个属性的属性值选项均为平行关系,所以采用数值型属性的计算方法即可。而站点的推荐与用户所在的地区关联性较大,如图 3 所示,是为某输水渠道工程信息可视化平台中的工作地区属性建立的语义层次树。
图 3 工作地区的语义层次树
图 3 中,属性值 1 则表示用户的工作地区在湖北省武汉市洪山区下的某个具体区域,在实际计算中,由于只是两两用户进行比较,所以每次只需根据 2 个用户的工作地区属性值建立 1 颗二叉树,表示 2 个用户的工作地区语义层次树。根据属性值对应的叶子节点在语义层次树中的位置,计算工作地区的属性距离,计算公式如下:
式中:∧(attrij,attrkj) 表示属性值 attrij与属性值attrkj在语义层次树中的最小公共父节点;depth (∧(attrij,attrkj)) 表示最小公共父节点的深度,根节点深度为 0。
属性距离计算完成,引入属性权重 W{W1,W2,W3,…,Wm}则表示属性 j 的权重;依次遍历匹配模型中的用户,用向量 Ui{idi,attri1,attri2,…,attrim}表示用户的背景属性,通过式 (9) 计算用户背景相似度 Ski(1 ≤ i ≤ h):
根据用户背景相似度排序,返回前 h 个得到背景相似用户集合 Uh={u1,u2,…,uh},并生成用户背景相似度矩阵 S1×h。
S1×h中的用户集合 Uh={u1,u2,…,uh}和用户站点评分数据集,找到每个用户对应的用户站点评分数据,构建所有被 Uh中的用户评价过的站点集合 Vn=和用户模型的用户-站点评分矩阵 Rh×n。
用户-站点评分矩阵 Rh×n,基于目标用户背景相似度矩阵 S1×h,预测目标用户对站点的评分,用来填充新加入的目标用户-站点评分矩阵,计算公式如下:
式中:目标用户 k 对水情站点 j 的预测评分为 pkj;Ai表示用户 i 的真实评分均值;ski为目标用户 k 与用户 i 的用户背景相似度;rij表示用户 i 对站点 j 的真实评分。
以往算法对用户评分矩阵的填充均是面向所有用户对所有物品的,算法的时间复杂度为 O(| U |×| V |)。当用户和物品的数量增加,评分矩阵较大,当新的用户加入时,更新维护起来变得困难。对于水情站点推荐来说,用户背景差异很大的用户,感兴趣的站点交集较小。所以分别为每个用户模型建立特有的用户-站点评分矩阵,这样当目标用户加入进来,只需将目标用户所在用户模型的评分矩阵进行填充,算法的时间复杂度为 O(|Un|×|Uv|),|Un| 和 |Uv| 分别为用户模型中的用户数和站点数,这种新的评分矩阵填充方法减少了计算时间,由于每次只是对个别用户模型进行填充更新,节约了空间开销。
2.2.2 改善新用户问题
基于离线填充后的匹配模型的站点评分矩阵给新用户进行推荐。基于用户模型匹配的推荐算法对新用户问题的改善,是通过对用户特征的分类,分别找出匹配模型下不同用户特征的热门站点,最后综合得到推荐结果。将用户的关键属性作为用户特征,包括性别、年龄、工作地区、部门、职称、计算机水平,不同特征的用户感兴趣的站点不同,推荐流程如图 4 所示。
当新用户加入系统,填写注册信息,通过基于概率的用户模型匹配算法匹配用户模型,根据用户特征选择离线计算好的站点相关表,相关表存储的是该用户模型下所有具有特定特征的用户偏好站点信息,特定特征也可以是组合特征,如年龄—工作地区,相关表则表示同年龄段同工作地区的用户感兴趣的水情站点信息。本算法的核心在于相关表的建立,也就是计算每一种特定特征下的用户感兴趣的站点及这些站点在该特征用户中的流行度。
假定用 f 表示特定特征,具有该特征的用户对水情站点的偏好程度为 p [f,i],定义 p [f,i] 为水情站点 i 在拥有 f 特征的用户中的热门程度,p [f,i] 的计算公式如下:
图 4 新用户推荐流程图
集合 U [ i ] 表示用户模型中所有对水情站点 i 感兴趣的用户,集合 N [ f ] 表示所有具有特征 f 的用户;分析式 (11),虽然可以预测出具有特定特征的新用户是否喜欢某个水情站点,但当某些热门站点在各个特征的相关表均存在时,也就是说当 |U[ i ] | 比较高的时候,p [f,i] 也就越大。又由于特征—站点相关表本身就是基于特定用户模型建立的,用户模型的用户背景存在相似性,所以推荐热门站点并不是主要目的,应该是推荐不易于被发现的水情站点信息,提高推荐的新颖度,才能保证某个用户模型下的站点信息不是一成不变的。因此,可以定义p [f,i] 为对水情站点 i 感兴趣的用户中具有特征 f 的用户比例:
根据式 (11) 计算 p [f,i],当某个水情站点恰好只有一个用户对其感兴趣过,而恰好该用户具备特征 f,则 p [f,i] =1。但是这种情况下并不能推测出此站点就在具有特征 f 的用户中流行。因此,式 (12)中,在分母中加上一个较大的值 α,避免该站点在相关表中产生很大的权重,达到弱化特殊站点热门程度的效果。
p [f,i] 计算完成,根据 p [f,i] 由大到小排序就可以得到特征—站点相关表;根据新用户特征选择相应的相关表,按照表中站点的热门程度,返回前n 个站点,推荐给新用户。
3 水情可视化方案实现
水情数据按时间划分为实时与历史数据,实时数据带有时间属性,能够反应水情站点随时间变化的状态[8],历史数据记录了各个水情站点不同时刻的各个指标值。实时数据的可视化区别于历史数据,需要增加触发器或状态轮询去不断获取数据库里的实时数据[9],刷新可视化的内容。基于水情数据的类别,将水情信息的可视化分为面向水情的属性数据表现形式与几何数据分布 2 种可视化, 再根据实时与历史数据对可视化要求的不同,对可视化方案进行调整优化。
3.1 面向属性数据表现形式的可视化
水情信息可视化系统里的属性数据包括水情与水量数据,通过分析水情与水量数据的特点,将属性数据的可视化具体分为了符号表示法、区域设色、标注法、信息列表、曲线图 5 种方式。
3.2 面向几何数据分布的可视化
几何数据即水情站点的位置数据,对空间地理位置信息可视化的目的是以直观的方式帮助用户分析数据的分布情况及特点。不同地图比例对几何数据可视化的要求有所不同,针对水情站点的几何数据可视化设计 3 种可视化方法:1)针对小比例尺下面向几何数据宏观分布的蜂窝图;2)面向局部区域站点分布的点位图、热力图;3)大比例尺下标识法。
4 实验与结果
个性化水情信息可视化系统实验使用的处理器是 Intel(R) Core™i3-7100CPU @ 3.90GHz,显卡为Intel(R) HD Graphics 630,开发语言为 Python3.6.4和 JavaScript,IDE 为 Jet Brains PyCharm 2018.3.2 x64 和 Visual Studio Code,操作系统为 Windows 10,数据库为 SQL Server 2008。使用 MVC 设计模式,结合可视化开源库百度 Mapv,ArcGIS 地图、前端开发框架 React.js 和 Less 语言。
实验系统基于某输水渠道工程及其相关数据集,使系统满足用户的个性化需求。首先是用户注册界面,系统通过注册模块收集用户背景信息。当用户背景信息缺失时,主页地图采用默认样式,如图 5 所示。使用蜂窝图为用户展示水情站点宏观分布情况,用户可以根据需求选择要可视化的水情指标选项和时间段,可以选择供水量、pH 等进行数据可视化。页面还提供用户推荐列表,推荐当前时间段内热门的站点。
图 5 普通用户主界面
图 6 为郑州市某水务局局级管理者用户(36 岁、男性用户、计算机水平良好)登录系统时的主页面。通过点位图为用户展示水情站点的整体分布情况,将某输水渠道工程中所的监测点、供水口、节制闸等分别对应红色、深蓝色和黄色标记。浅蓝色为该用户周边的其他站点分布情况。在可视化时,以特殊的标记红色符号表示推荐的站点,并标记序号,与推荐列表中站点的序号对应,推荐列表按用户对站点的兴趣度排序。用户登录系统会将地图中心位置设为郑州市,页面包含全省的水情站点设立说明,以及水质概况和水质监测信息。
图 6 局级管理用户主页面
图 7 为水质监测部门级用户(42 岁、男性用户)登录系统时的主页面。界面整体风格为暗色系,默认展示默认时间段内监测点 pH 对应数据的可视化,通过线状符号设色,动态展示 pH 值变化,提供折线图和柱状图监测用户水质情况。用红色覆盖物表示推荐站点,并标记。页面展示监测站点超标情况,同时包含水情站点推荐列表,但推荐的站点与用户所在办公地区是相关的。用户选择压力按钮,得到压力数据可视化界面,通过圆圈的大小表示压力大小,加强推荐站点的颜色,并标注具体的压力值。
图 7 监测部门级用户主页面
图 8 为北京市高级工程师(34 岁、男性用户、计算机专业)进入系统时的主页面,系统为该用户匹配的地图与其他用户的不同,采用 ArcGIS 影像地图,要素显示更加精确。放大到大比例下可以看到某调水渠道具体轮廓。通过线状符号设色、动态展示水质浓度变化、在地图上符号标记监测站点、设置最大和最小可见比例控制标记物的显隐,向用户展示站点分布情况。页面提供用户工具栏,实现对地图的缩放、平移、查看、标记、分析等功能,高级工程师可以对可视化系统进行综合管理,如个性化地图模板、权限管理等,还可以查看渠道的三维可视化展示。
图 8 高级工程师主页面
图 9 为武汉某水务局水资源管理处普通科员(30 岁、女性、计算机水平良好)进入系统时的主页面。为用户匹配到的界面整体风格偏女性化,以武汉市的经纬度设置地图中心点,通过热力图展示水情站点的瞬时流量。
图 9 办公室普通科员主页面
5 结语
对水情信息可视化部分进行研究,通过发布GIS 地图服务、自定义百度地图样式定制个性化的地图,采用基于用户模型匹配的推荐算法有效地改善了用户站点评分矩阵稀疏问题。以用户模型为核心,设计可视化系统框架,对可视化系统进行实现,完成用户到可视化模型的匹配。