王 飞 张 玲 王继民
(河海大学计算机与信息学院 江苏 南京 210098)
水利门户网站是水利部门进行水利信息资源整合、发布,为公众提供信息和服务的平台。如今,水利门户网站已成为广大人民群众感知以及获取水利门户信息和公共服务的有效平台。目前,水利门户网站主要按照信息时间先后顺序以及重要度等展现信息,其存在以下问题:
(1) 发布形式单一,缺乏灵活性。网站向所有用户提供相同信息,未考虑用户偏好,缺乏灵活性。
(2) 用户查找信息难度大。用户在浏览网站时,通常会根据需求在网站上查找门户信息。然而,随着水利门户信息的不断增多,用户查找目标信息的难度不断增加。
(3) 用户易错过重要的水利门户信息。水利门户网站经常对洪涝旱灾、台风等灾害情况进行介绍和预报等,信息量的增多使得用户易错失重大灾害的预警预报信息。
个性化推荐是一种能够帮助用户快速获取有价值信息的技术[1],推荐系统通过分析用户历史行为建立用户兴趣模型向用户推荐满足其兴趣的信息[2]。目前,国内外对于推荐技术已经进行了深入的研究,但推荐技术在水利门户网站上应用很少。将推荐技术应用到水利门户网站,能让人们有针对地及时了解感兴趣的水利业务,提高对自然灾害认知和防范能力。
推荐技术主要有基于内容的推荐[3-4]、协同过滤推荐[5-6]、基于关联规则的推荐[7-8]、混合推荐[9-10]等。基于内容的推荐根据用户的历史行为建立用户兴趣向量,根据信息特征建立信息特征向量以及信息之间的相似度量,最后将最相似的k个信息推荐给用户。基于用户的协同过滤推荐根据用户的兴趣偏好寻找相似用户,将相似用户喜欢的信息推荐给当前用户。基于关联规则的推荐以数据挖掘为基础,从中得出不同物品的关联性,利用这些关联性对用户进行物品的推荐。混合推荐是根据当前系统的性能需求将不同的推荐技术结合起来的方法。
在以上主要推荐技术的基础上,不同研究者加入时间以及地理等因素进一步提升推荐的性能。Li等[11]将用户兴趣划分为长期兴趣和短期兴趣,提出了基于时间变化的新闻推荐模型。陶永才等[12]提出了基于地理位置的个性化新闻混合推荐方法,使用聚类算法获取用户阅读新闻较多的地理位置及在相应位置阅读的新闻集合,分析用户在不同位置的长、短期阅读兴趣。吴运强[13]研究基于用户兴趣和地理位置的个性化推荐,在推荐算法中加入地理位置因子,以调整推荐结果。当前,将推荐技术应用于水利门户网站还存在以下问题:
(1) 项目冷启动和用户冷启动[14]。网站实时更新水利门户信息,新的信息如果不被大量用户阅读将得不到有效推荐,当新用户浏览网站时,因为没有用户历史行为数据,对新用户的兴趣无法准确表达。
(2) 用户行为数据稀疏[15]。随着推荐规模的不断增大,两个用户同时关注同一水利门户信息的可能性越来越小,无法发现用户之间的关联性,无法实现推荐。
(3) 重点、热点信息推送。水利部门根据时间和地理位置的变化业务会有所侧重,如长江流域的汛期重点是防洪,而珠江流域还要考虑防范台风。因此需要提高用户对本地区当前可能发生的与水利相关的重点问题的认知以及对突发状况的防范意识。
针对以上问题,本文提出基于混合策略的水利门户信息推荐方法。建立时空敏感的热点信息推荐模型,根据水利部门所在地理位置和所处时间的业务特点,向所有用户推荐热点信息,解决冷启动和重点、热点信息推荐的问题。建立基于用户和信息类别的协同过滤推荐模型,将用户对水利门户信息的兴趣转移到对门户信息类别上,提高协同推荐中相似用户的数量,解决用户行为数据稀疏的问题。建立混合推荐模型,将时空敏感的热点信息推荐、用户和信息类别的协同过滤推荐,以及基于内容推荐的三种推荐列表线性加权,生成最终的推荐列表。通过网络爬虫和调查构建实验数据集,验证了水利门户信息混合推荐方法的有效性,并设计水利门户信息推荐系统框架以及主要功能。
水利门户信息推荐的总体框架如图1所示。
图1 水利门户信息推荐总体框架
水利门户信息推荐的总体流程包括:数据收集和预处理,水利门户信息分类建模,水利门户信息混合推荐。
(1) 水利门户信息分类目录。根据水利业务特征以及水利门户信息自身特性将水利门户信息划分为水文信息、水资源信息、水环境水生态信息、水利工程信息、农村水利信息、水灾害(防汛抗旱)信息、水土保持信息、水库移民信息、政务信息、其他等10类。
(2) 推荐数据收集。针对某个水利门户网站,为了增加可以推荐给用户的信息,其信息库中不但包含本网站发布的数据,还可以通过网络爬虫,从互联网(如流域、水文局的门户网站等)获取水利业务相关的信息,构建完整的水利门户信息库。
(3) 分类数据标注。从水利门户信息库中通过人工筛选提取部分信息组成门户信息分类训练集,按照事先定义的水利门户信息类别对文档类别进行人工标注。采用中文分词工具对分类文档中的数据进行分词和去除停用词等预处理。
(4) 水利门户信息特征向量提取。对水利门户信息数据分词、去除停用词,将其表示成能表征文本语义的词语序列。对生成的词语序列进行主题模型训练以及关键词提取,得到每个水利门户信息主题特征权重向量和关键词特征权重向量。
(1) 文档类别特征提取。预处理后每个类别的特征词语集词数众多,会造成维度的灾害,同时对分类也会有影响,因此需要进行特征提取。本文利用CHI通过计算特征词与类别之间的关联度,提取出关联程度高的特征作为文档的特征[16]。CHI值越高,特征词与类别之间的相关性越高,反之,则越小。特征词tk对类ci的CHI计算为:
(1)
式中:N为训练集文档总数,N=A+B+C+D;A为包含特征词tk且属于类别ci的文档次数;B为包含特征词tk但不属于类别ci的文档次数;C为不包含特征词tk但属于类别ci的文档次数;D为不包含特征词tk且不属于类别ci的文档次数。
词条tk对于整个分类文档的CHI值计算为:
(2)
式中:p(ci)表示样本文档属于ci类的频率;c表示类别总数。剔除低于某阈值的词条,保留高于该阈值的词条作为特征项。
(2) 水利门户信息KNN分类器构造。本文选择KNN算法实现水利门户信息分类,KNN算法在训练集中找出与待测文本最相似的k个文本,然后计算待测文本属于每个类别的权重并将其分到权重最大的一类。门户信息d属于类别ci的权重P(d,ci)计算为:
(3)
式中:Kd为门户信息d的关键词特征向量;Kj为训练集文档j的关键词特征向量;sim(Kd,Kj)为门户信息d与j之间的余弦相似度;k为训练集文档的总数;y(xj,ci)为类别属性函数,若j属于类别ci,则置为1,反之,则置为0。选取出概率最高的作为该水利门户信息的类别。
2.4.1基于用户和信息类别的协同过滤推荐
由于水利门户信息的阅读量较低,在利用相似用户进行协同过滤时,容易出现针对一个用户无法找到与其阅读过同样信息的用户,造成难以实现推荐。本文将用户阅读的水利门户信息映射到其所属类别,然后计算出用户对门户信息类别的兴趣度,通过用户对共同的门户信息类别的兴趣度来计算用户之间的相似度。
(4)
式中:Pi为用户对阅读过的水利门户信息文档i的兴趣度,设置为1;Wij为表示水利门户信息文档i是否属于类别j,若属于则Wij为1,反之则为0;n为用户阅读的门户信息总数。
(2) 用户-门户信息类别兴趣更新。随着时间的推移,用户对某一事物的兴趣如果得不到加强,就会呈现出衰减趋势[17],本文利用式(5)的兴趣衰减函数来表示用户兴趣衰减过程。
f(t)=e-λ(ttoday-tpre)
(5)
式中:ttoday为当前日期;tpre为兴趣值最近一次更新的日期;λ为系统预置参数,决定着用户兴趣衰减的速率。
当前兴趣向量Iuc_today计算为:
Iuc_today=f(t)×Iuc_pre+Iuc
(6)
式中:Iuc_pre为上次更新后的用户类别兴趣度向量;Iuc为本次行为产生的类别兴趣度向量。
(3) 用户对门户信息的兴趣度评估。根据用户-类别兴趣度向量,利用余弦距离计算用户之间的相似度。选出U个与当前用户喜好最接近的用户,提取出这U个用户阅读过的所有信息,过滤用户已经观看过的部分,计算用户对剩余门户信息的兴趣度。同时,水利门户信息存在着时效性特点,即随着水利门户信息发布日期与用户阅读日期间隔的增大,用户对该水利门户信息的兴趣度也会不断减小。因此在进行推荐时,用户对水利门户信息的兴趣度同样采用式(5)进行时间上的降权处理,此时tpre表示信息发布的日期。
最终,用户u对与其相似的用户a所关注的门户信息i的兴趣度Iud(u,a,i)为:
Iud(u,a,i)=sim(u,a)×Iud(a,i)×f(t)
(7)
式中:sim(u,a)为用户u与相似用户a之间的相似度;Iud(a,i)为用户a对其所阅读过的门户信息i的初始兴趣度,设置为1;f(t)为时效性。
模型按兴趣度对水利门户信息排名,将排名前k的水利门户信息推荐给用户u。
2.4.2基于信息内容的推荐
采用LDA主题模型[18-19]和向量空间模型[20]对用户行为进行特征表示,抽取出用户的关键词兴趣向量和主题兴趣向量,同时考虑用户兴趣衰减特点,实现用户兴趣模型的构建。
(1) 用户主题兴趣表示与更新。利用主题模型挖掘用户当天阅读的水利门户信息主题,并计算得到用户对主题的兴趣度向量Iut:
(8)
式中:Ti为用户对阅读过的水利门户信息i的兴趣度,设为1;Iud为用户阅读的门户文档中主题权值向量;n为用户阅读的总的水利门户信息的篇数。
用户主题兴趣向量更新原理与2.4.1节的类别兴趣向量的更新原理类似,最终生成用户主题兴趣向量Iut。
(2) 用户关键词兴趣表示与更新。利用向量空间模型挖掘用户关键词兴趣,使用TF-IDF进行关键词权值计算,得到用户阅读的水利门户信息的关键词权值,用户关键词兴趣向量的表示以及更新与用户主题兴趣向量的表示以及更新方式类似,最终生成用户关键词兴趣向量Iuk。
(3) 用户对门户信息的兴趣度评估。分别采用余弦距离计算用户主题兴趣向量Iut与水利门户信息主题特征向量T相似度以及用户关键词兴趣向量Iuk与水利门户信息关键词特征向量K相似度。最终用户对水利门户信息兴趣度为:
Iud(u,d)=α×sim(Iuk,Kd)+β×sim(Iut,Td)
(9)
式中:α和β用于调整两种相似度之间的比例,α+β=1。
按照用户对水利门户信息文档的兴趣度排序,向用户推荐前k个信息文档。
2.4.3基于时空敏感的热点信息推荐
水利业务具有很强的季节和地域特点,为了解决推荐过程中用户冷启动问题以及提高用户对本地区当前可能发生灾害(如台风、山洪等)的认识,增强突发状况的防范意识,在推荐结果加入当前热点水利业务信息。基于时空敏感的水利门户热点信息推荐具体过程如下:
(1) 水利门户网站根据其所处地理位置的不同季节的业务特点,事先定义好不同时间的热点水利门户信息类别。
(2) 计算用户对当前热点信息类别中水利门户信息的兴趣度,从流行度和时效两个方面考虑用户对热点的兴趣度。
水利门户信息的流行度越高,表示大部分用户对该水利门户信息的兴趣度越高,使用所有用户对该水利门户信息的点击数来描述其流行度。用户对水利门户信息的兴趣度会随着时间衰减,因此在计算用户对水利门户信息兴趣度时也采用式(5)进行时间上的降权处理。最终得到用户对热点信息的兴趣度为:
Iud=pi×f(t)
(10)
式中:Iud为用户u对水利门户信息d的最终兴趣程度;Pi为所有用户对当前的热点水利门户信息i的点击数;f(t)为时效性。
按照用户对水利门户信息文档的兴趣度排序,向用户推荐前k个信息文档。
2.4.4基于线性组合的混合推荐
本文采用混合方式为用户推荐水利门户信息,其过程如图2所示。
图2 混合推荐流程
(1) 针对新用户,采用基于时空敏感的热点信息推荐。针对老用户,将三种推荐的结果进行线性加权组合,系数α、β、γ表示三种推荐方式的权重,初始权重为1 ∶1 ∶1。
(2) 线性组合权重更新。当用户对推荐信息产生点击行为,根据用户对三种推荐方式推荐的信息实际点击个数与总点击个数比值对权值进行调整,新的比例设置为countuser∶countcontent∶counthot,并对比例进行标准化。countuser为用户对基于用户和信息类别协同过滤推荐结果的点击次数,countcontent为用户对基于内容的推荐结果的点击次数,counthot为用户对基于热点信息推荐结果的点击次数。
利用网络爬虫从一些重要的水利门户网站爬取信息,作为水利门户信息分类和信息推荐的实验数据,并对用于分类的门户信息进行手工标注。通过调查记录普通用户和水利行业专业人员在2018年7月不定期访问指定网站的行为数据,由于7月份的水灾害相关信息关注度比较高,因此设置水利门户的热点信息类别为水灾害,混合推荐中三种方法结果的初始比例为1 ∶1 ∶1。采用准确率、召回率、F1-score值[21]指标,将单独的基于用户和信息类别的推荐、基于内容的推荐、基于时间和地理位置的热点信息推荐,以及混合推荐的结果进行比较。
(1) 水利门户信息数据收集和预处理。通过网络爬虫从中华人民共和国水利部、珠江水利委员会、长江水利委员会、黄河水利委员会的官方网站,以及城市水资源环境网等门户上获取各种水利门户信息,总共5 407条,手工筛选分类信息文档,并按照10个信息类别对数据进行手工标记,每类300条信息,总共3 000个文档组成分类训练集。
(2) 用户行为数据收集和预处理。采用调查的方式记录用户的行为过程,选取100名普通用户和水利专业人员,让其2018年7月份不定期浏览中华人民共和国水利部、珠江水利委员会、长江水利委员会、黄河水利委员会的官方网站,最终得到100名用户一个月的浏览记录。将一个月总浏览行为少于30篇的用户去除,最终整理得到86个用户对于698条水利门户信息的4 234条行为数据,将每个用户的时间最新的15篇浏览记录提取出作为测试集,剩下的作为训练集。
本文利用准确率、召回率、F1-score值来评价实验结果,其中:R(u)指通过推荐算法生成的推荐列表;T(u)指用户实际点击的所有水利门户信息。
准确率(Precision):指推荐的所有信息中用户感兴趣的比率,即生成的推荐列表中用户点击并阅读的水利门户信息数量与总的推荐的信息数量的比率。
(11)
召回率(Recall):推荐的信息中用户感兴趣的信息占用户感兴趣的所有的信息的比率,即生成的推荐列表中用户点击并阅读的水利门户信息数量与用户实际点击的所有信息的比率。
(12)
F1-score值:准确率和召回率的调和平均值,能综合地反映整体指标。
(13)
(1) 门户信息KNN分类模型参数。利用手工标注的水利门户信息建立KNN分类模型需要确定信息的特征维数,实验中,选择Python版本的jieba分词工具进行文本分词,使用哈工大停用词表、四川大学机器学习智能实验停用词库、百度停用词库去除停用词,使用CHI进行特征词提取,最后使用KNN算法作为文本分类算法,结果如图3所示。
图3 F1-score随特征维数变化规律
图3显示了k=10时,在特征维数m=200、400、600、800、1 000、1 500、2 000时F1-score的变化。可以看出,在特征维数m=400时,分类效果趋于稳定,且在m=600时,分类效果最佳,分类的F1-score最高可达到0.825。
(2) 基于信息内容的推荐中主题T的数量。在基于信息内容的推荐实验中,进行主题模型和TF-IDF权值计算,设置时效性衰减参数为0.2,兴趣衰减函数参数为0.05。LDA模型训练中,先验参数α=50/Tnum,β=0.01。关键字权重和主题权重按照1 ∶1设置。分析了在不同的推荐数量下,主题数量对F1-score值的影响。
图4展示了推荐篇数在N=12,24,主题数目Tnum=10,20,30,40,50的情况下推荐的F1-score。可以看出,随着主题数目的不断增多,推荐性能先增后减,且两种情况下都是主题值设为Tnum=40时,推荐性能最好。
图4 主题数量对F1-score的影响
(3) 基于用户和信息类别的协同过滤中相似用户数。基于用户和信息类别的协同过滤推荐中,首先要确定最佳的相似用户数,相似用户过多会导致实验效果下降,相似用户数过少会导致实验结果过于个人化。设置用户的兴趣衰减函数参数为0.05,水利门户信息时效性衰减参数为0.2。表1显示了推荐篇数N= 12,24,相似用户数U= 5,10,15,20情况下的F1-score值。可以看出,两种情况下随着相似用户数的增多,推荐性能先增后减,在U= 10的情况下推荐效果最好。
表1 F1-score值随相似用户的增长变化情况
(4) 混合推荐模式有效性验证。将水利门户信息混合推荐模型(HRA)、基于用户和信息类别的协同过滤推荐模型(UCCF)、基于信息内容的推荐模型(CB)、基于时空敏感的热点信息推荐模型(TSB)进行实验对比,针对不同模型从准确率(Precision)、召回率(Recall)和F1-score进行分析。
图5、图6、图7是推荐篇数分别为N=6,12,18,24,30,36的情况下的五种推荐方法的准确率、召回率和F1-score。可以看出,随着推荐篇数的增多,五种方法的准确率不断下降,召回率不断上升,F1-score先上升后下降,在推荐篇数为24的情况下,整体推荐性能最好。HRA的F1-score最高达到了26.5%,相对于单一模式下的UCCF提升了3.9个百分点,TSB提升了2.7个百分点,CB提升了2.1个百分点。
图5 五种推荐算法准确率对比图
图6 五种推荐算法召回率对比图
图7 五种推荐算法F1-score对比图
水利门户信息推荐系统主要是为水利门户网站提供推荐服务,推荐系统可以直接访问水利门户网站中的用户行为数据以及水利门户信息,同时从各大水利门户网站爬取其他水利门户信息,与服务网站的水利门户信息共同组成推荐信息。将用户行为数据、推荐信息、系统预设参数输入推荐模型生成推荐列表,系统接收服务水利门户网站传递的用户id,将推荐结果通过Web Service接口返回该用户。系统框架如图8所示。
图8 水利门户信息推荐系统框架
水利门户信息推荐系统分为如图9所示的五大功能模块:信息采集模块、门户信息管理模块、用户管理模块、模型管理模块、推荐服务模块。
图9 水利门户信息推荐系统功能模块
(1) 信息采集模块:通过网络爬虫实现对其他水利门户网站数据的采集,将采集的水利门户信息存入系统数据库中,增加推荐的信息库。系统管理员可以根据自身需求修改采集频率、采集网站,同时可以删除采集的信息,对采集信息的类别进行修改以及按照时间或者类别查看信息。
(2) 门户信息管理模块:系统与其服务的水利门户网站共享水利门户信息,系统管理员可以按时间或者类别查看该信息。
(3) 用户管理模块:系统与其服务的水利门户网站共享用户行为数据,管理员可以查看用户行为数据以及查看根据该数据生成的用户推荐列表。
(4) 模型管理模块:当系统中有新的水利门户信息之后,就自动调用训练好的分类Python脚本文件进行水利门户信息分类。系统按每天一次定时调用推荐脚本文件,为用户推荐信息。管理员可根据自身需求调用不同的推荐模型实现推荐方式的修改。
(5) 推荐服务模块:水利门户信息推荐系统通过Web Sservice接口,向水利门户网站提供推荐服务,根据服务门户网站提供的用户id将本系统生成的推荐列表返回给水利门户网站。接口设计如下:
public String GetRecommendationList(String user_id)
user_id表示传递的用户编号,根据用户编号,以.xml格式返回为每个用户生成的推荐列表,包括水利门户信息标题、url,接口返回格式具体描述如下:
>
结点表示推荐操作返回的状态,VALUE属性的值表示操作结果,若为200,则表示推荐成功,否则失败,比如,系统运行错误等。
水利门户网站是水利部门进行水利信息资源整合、发布,为公众提供信息和服务的平台。目前,水利门户网站按照信息发布时间的先后将信息展示到网站上。然而,在这种模式下,随着门户信息数量的不断增多,用户查找信息的难度不断增加,同时容易错过重要的门户信息。水利门户信息混合推荐模型能有效解决推荐技术应用到水利门户网站上的冷启动问题、数据稀疏性问题,同时,在推荐过程中,有针对性地提高用户对本地区当前可能发生的与水利相关的重点问题的认知、突发状况的防范意识。