基于云存储的网络数据处理方法与流程

文档序号:14726608发布日期:2018-06-19 10:38阅读:144来源:国知局

本发明涉及大数据,特别涉及一种基于云存储的网络数据处理方法。



背景技术:

随着生活水平的逐渐提高,人们的活动范围也逐渐扩大,不再仅限于自己的日常生活区域。传统的导航仪路线规划基本基于算法,虽然通过离线算路或者在线算路的方法相对于单一的算路方式提供了备选算路方式,在无网络或无离线导航数据的情形下,导航系统会自动将在线算路方式切换到备选的离线算路方式。对城市道路的规划不能覆盖对道路情况、不同时间点的车流量,是否有实用小路,路段舒适度等复杂情况的考虑,有时所推荐的路线可能堵车严重、或者用时较长等,使得现有的导航功能无法满足用户的需求,影响用户的舒适性和便利性。并且在算路切换过程中,备选算路方式只能向用户推荐单一路线,随着导航系统规模的进一步扩大,用户数量和地理数据急剧增加,导致用户计分数据的极端稀疏性,而通过全局相似度计算得到的邻近不准确,从而导致路线推荐的推荐质量急剧下降。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种基于云存储的网络数据处理方法,包括:

云服务器为导航用户生成多条路线信息;

根据预定义推荐规则,选定最优路线;

将最优路线信息反馈给导航用户。

优选地,所述推荐规则采用基于路线聚类和局部偏好拟合的推荐规则,推荐过程包括如下步骤:

1)在离线确定的候选路线集合中,采用相似度最大化准则确定K个初始聚类中心;

2)根据相似度和最大k-means聚类算法对所有路线进行聚类;

3)在聚类基础上,寻找局部邻近用户;

4)将局部邻近用户以相似度和之比作为权值进行拟合,根据全局邻近用户与局部邻近用户对路线的计分,估计导航用户对路线的计分,完成推荐。

优选地,所述步骤1)具体为:

1.1)使用余弦相似度计算所有路线i,j之间的相似度sim(i,j),其中,i,j=1,2,…,n,i≠j:

其中,Ui,j表示路线i和路线j共同计分的路线集,Ui表示路线i有计分的路线集,Uj表示路线j有计分的路线集,ru,i表示导航用户u对路线i的计分,ru,j表示导航用户u对路线j的计分,聚类后使得K个聚类划分的相似度和J的值达到最大,利用pearson相似度计算;

将所有路线之间相似度最小的两条路线作为前两个初始聚类中心μ1和μ2,k=2;

1.2)计算未选为初始聚类中心的其它路线i到已被选定的每一个聚类中心μ1,μ2,…,μk的相似度sim(i,μ1),sim(i,μ2),…,sim(i,μk);

1.3)选择路线i到已被选定的聚类中心μ1,μ2,…μk的相似度中相似度最大化为路线i到聚类中心集的相似度sim(i,μ)=max{sim(i,μ1),sim(i,μ2),…,sim(i,μk)};

1.4)选取到聚类中心集的相似度最小值的路线i*为新增的第k+1个聚类中心μk+1,sim(i*,μ)=min{sim(1,μ),sim(2,μ),…sim(i,μ)…sim(n,μ)};

1.5)如果k+1<K,则赋值k=k+1,转步骤2),否则利用相似度最大化准则确定K个初始聚类中心的过程结束。

本发明相比现有技术,具有以下优点:

本发明提出了一种基于云存储的网络数据处理方法,通过划分用户偏好,并根据用户偏好局部相似性将全局邻近与局部邻近推荐结果相拟合,从而提高推荐精度,提高用户使用导航功能的便利性。用户终端可以按照预定义推荐规则获取推荐路线信息,满足用户的不同需求。

附图说明

图1是根据本发明实施例的基于云存储的网络数据处理方法的流程图。

具体实施方式

下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。

图1是根据本发明实施例的方法流程图。响应于导航用户的查询指令,向云服务器发送包含起点信息和目的地信息的路线查询请求。例如以行车记录仪为例,该行车记录仪在汽车的行驶过程中,可通过网络与云服务器实时通信。当导航用户响应于作用在其上的查询指令,并通过能向云服务器发送数据的远程接口发送该路线查询请求。

获取包含起点信息和目的地信息的查询指令。为了保证驾驶安全性,优选采用语音指令作为所述的查询指令,其中导航用户发出的语音指令的自然语言中包含有目的地信息。生成多条从起点信息至目的地信息的路线信息,再按照预定义推荐规则选定最优的推荐路线信息反馈给导航用户。

所述预定义推荐规则包括所述推荐路线信息所对应路线的被采纳次数。云服务器获取多条从起点信息至目的地信息的路线信息,并获取每条路线信息历史采纳次数,将历史采纳次数最多的路线信息作为推荐路线信息反馈给导航用户。

其中,为使推荐结果更符合用户的偏好,优选地,本发明从导航用户历史动作数据中发掘用户特性,包括:

从历史记录中提取所有路线以及偏好,建立Y个偏好下的偏好路线概率函数,Y为整数;

根据用户的导航动作将历史记录中的路线分为多条路线集;针对每条路线集,根据单个用户的偏好分布建立该路线集的用户偏好概率函数;

根据每条路线集的用户偏好概率函数的权重对所有路线集的用户偏好概率函数进行加权求和,得到所有用户在Y个偏好的用户偏好概率函数;

按照偏好路线概率函数和用户偏好概率函数生成路线推荐列表;基于所述路线推荐列表进行路线推荐。

其中,导航动作的划分方式可以根据推荐内容以及路线导航系统应用环境的不同进行选择。根据本发明的优选实施例,用户的导航动作包括:浏览路线、模拟导航、比较路线、保存路线和执行导航。本发明根据用户的导航动作将历史记录中的路线分为多条路线集,并通过对每条路线集的分析研究用户不同导航动作对推荐结果的影响。只要导航动作的种类能够满足分析需求即可。

路线集的数量可以与导航动作的种类相同,即每条路线集与一种导航动作一一对应,将历史记录中的路线分为浏览路线集、模拟导航路线集、比较路线集、保存路线集和执行导航路线集。只要路线集的划分方式能够满足分析需求即可,本发明对导航动作的具体划分方式不作限定。

为了考察路线特征对推荐结果的影响,根据本发明的优选实施例,根据每个偏好下的路线分布建立偏好下的偏好路线概率函数包括:

针对历史记录中的所有路线,生成偏好i下的路线分布建立Y个偏好下的偏好路线概率函数

式中,为Y×V矩阵,i为整数,且1≤i≤Y;V为历史记录中的路线数量,且V为整数。

针对每条路线集,根据每个用户的每条路线在每个偏好中出现的频率,生成每条路线集中的用户偏好概率函数。令浏览路线集、模拟导航路线集、比较路线集、保存路线集和执行导航路线集中用户偏好概率函数分别为:θ1,θ2,θ3,θ4,θ5。

为了总和考虑每个导航动作对推荐结果的影响,按照每条路线集的用户偏好概率函数的权重对N条路线集的用户偏好概率函数进行加权求和,得到所有用户在Y个偏好的用户偏好概率函数θ。即:

θ=w1θ1+w2θ2+w3θ3+w4θ4+w5θ5

其中,w1,…,w5分别为θ1,…,θ5的权重。优选地,采用逻辑回归法获取每条路线集的用户偏好概率函数的权重。

基于偏好路线概率函数和用户偏好概率函数得到用户路线概率函数。用户路线概率函数中包含了每个用户对每条路线有偏好的概率,这个概率值可以视为用户对路线的计分,概率值越大,表明用户对路线的偏好越高。用户的路线概率函数RS为:

式中,RS为M×V矩阵;θ为M×Y矩阵,为Y×V矩阵;Y为偏好数量,M为用户数量,V为路线数量。

在得到用户的路线概率函数之后,按照用户对每条路线感兴趣的概率,将所有路线按照降序排列生成路线推荐列表,然后根据路线推荐列表进行topN推荐,即从推荐列表中选择计分最高的N条路线推荐给用户。

在导航路径搜索过程中,本发明并不是在搜索之前建立完整的连通图,而是将连通图的建立过程融入路径搜索中。搜索过程中只构造与最优路径可能有关的连通边,提高全局路径规划的效率。具体地,使用邻接表存储连通图。使用EXPAND表存储待扩展的节点,使用SEARCH表来提高搜索效率和存储路径。在EXPAND表存储的条目如下:

EXPAND(i)={index,prev,status,gn,hn,visitedCount}

式中:index是节点在连通图点集V中的编号,prev表示上一节点,status是节点状态,即从上一节点到此节点是否被遍历过,0表示未被遍历过或者2点之间的通路不是连通边,1表示2点之间的通路是连通边。gn的值是上一节点gn值加上2节点之间通路的长度,hn表示此节点到目的地的估计值,visitedCount是节点的访问次数,用来避免重复访问相同的节点。

SEARCH表中每个节点信息如下SEARCH(i)={index,prev,gn}

式中:prev是上一节点在SEARCH表中的索引号,prev为0表示该节点是起点,gn是起点到此节点的实际路径长度。

包含初始化和路径搜索两部分。在初始化时,将目的地G放入EXPAND表中,将起点S存放到SEARCH表中,将拥堵区域中相邻的边存入连通图中;在路径搜索的过程中,需要取出评估值最小的节点进行扩展。根据节点的状态构造通路,然后在此基础上完成连通图的构造和路径的搜索。具体步骤如下:

(1)步骤1,将EXPAND表初始化为EXPAND(1)={G,S,0,DSG,0,0}

式中:DSG是起点S到目的地G的欧氏距离。将SEARCH表初始化为SEARCH(1)={S,0,0}

(2)步骤2,取出最小节点。取出评价函数值最小的节点进行扩展。评价函数定义如下f(x)=gn+hn+visitedCount×MAXDISTANCE

式中:MAXDISTANCE表示从起点到目的地可能的最大距离。这样确保不会重复访问相同的节点。在未被访问过的节点中选择gn+hn值最小的,即估计路径最短的节点来扩展。

(3)步骤3,判断节点访问次数。判断当前节点的访问次数是否等于1,如果等于1表示所有可行的路径已遍历过,查找不到1条达到目的地的路径,算法结束。

(4)步骤4,根据节点信息查找路径。根据节点的状态分为2个不同分支执行。当节点状态为0时,执行步骤5,否则执行步骤6。

(5)步骤5,遍历上一节点到当前节点的路径。构造上一节点到当前节点的通路。如果该线已存在于连通图中或与拥堵区域无冲突,更新节点状态为1,如果该通路不在连通图中,将其作为连通边添加到连通图中。如果通路与拥堵区域有冲突,通路将拥堵区域分为2个部分,分别取出2个部分中距离通路最远的顶点。如果这2个顶点不在SEARCH和EXPAND表中,将其添加到EXPAND表中。

EXPAND(size+1)={P,node.prev,0,node.prev.gn+DPP,DPG,0}

式中:P是穿越拥堵区域的顶点,node表示当前扩展的节点,DPP表示的是上一节点到顶点P的欧式距离,DPG是顶点P到目的地G的欧式距离。最后将当前节点的访问次数加1。

(6)步骤6,遍历当前节点到目的地的路径。构造当前节点到目的地G的通路。如果该线已在连通图中或者与拥堵区域没有冲突,表示已查找到路径,输出路径,算法结束。如果该线与拥堵区域有冲突,将该节点添加到SEARCH表中,同时从EXPAND表中删除。与步骤5中添加拥堵区域边界点的方法一样,添加经过拥堵区域的节点到EXPAND表中。

EXPAND(size+1)={P,node,0,node.gn+DCP,DPG,0}

式中:DCP是当前节点到拥堵区域边界点P的欧式距离。

为克服导航系统的推荐质量无法应对海量数据的增长,采用基于路线聚类和局部偏好拟合的推荐规则,包括如下步骤:

1)在离线确定的候选路线集合中,采用相似度最大化准则确定K个初始聚类中心;

2)根据相似度和最大k-means聚类算法对所有路线进行聚类;

3)在聚类基础上,寻找局部邻近用户;

4)将局部邻近用户与局部邻近用户以相似度和之比作为权值进行拟合,根据全局邻近用户与局部邻近用户对路线的计分,估计导航用户对路线的计分,完成推荐。

步骤1)具体为:

1.1)使用余弦相似度计算所有路线i,j之间的相似度sim(i,j),其中,i,j=1,2,…,n,i≠j:

其中,Ui,j表示路线i和路线j共同计分的路线集,Ui表示路线i有计分的路线集,Uj表示路线j有计分的路线集,ru,i表示导航用户u对路线i的计分,ru,j表示导航用户u对路线j的计分,聚类后使得K个聚类划分的相似度和J的值达到最大,利用pearson相似度计算。

将所有路线之间相似度最小的两条路线作为前两个初始聚类中心μ1和μ2,k=2;

1.2)计算未选为初始聚类中心的其它路线i到已被选定的每一个聚类中心μ1,μ2,…,μk的相似度sim(i,μ1),sim(i,μ2),…,sim(i,μk);

1.3)选择路线i到已被选定的聚类中心μ1,μ2,…μk的相似度中相似度最大化为路线i到聚类中心集的相似度sim(i,μ)=max{sim(i,μ1),sim(i,μ2),…,sim(i,μk)};

1.4)选取到聚类中心集的相似度最小值的路线i*为新增的第k+1个聚类中心μk+1,sim(i*,μ)=min{sim(1,μ),sim(2,μ),…sim(i,μ)…sim(n,μ)};

1.5)如果k+1<K,则赋值k=k+1,转步骤2),否则利用相似度最大化准则确定K个初始聚类中心的过程结束。

步骤2)具体为:

2.1)确定K个初始聚类中心μc,每一个聚类c的聚类中心μc为一条路线,c=1,2,…,K;

2.2)对于剩余的其他路线i,i=1,2,…,n,i≠uc,c=1,2,…,K,则根据路线i与步骤2.2)所述的聚类中心μc的相似度sim(i,μc),按相似度最大的准则,将路线i分配给与其最相似的聚类中心所代表的类c*中,sim(i,uc*)=max{sim(i,μ1),sim(i,μ2),…,sim(i,μK)};

2.3)计算每个聚类的相似度和其中,Ic表示聚类c中的所有路线;计算所有K个聚类的相似度和计算聚类内不同路线作为聚类中心时的J值,按J值最大原则,选取J值最大的路线作为新的聚类中心,即以该路线为聚类中心时,J值最大;如果J值变大,则返回步骤2.1),否则聚类结束。

步骤3)具体为:

3.1)计算导航用户之间的全局相似度,导航用户u和导航用户v在所有路线中的相似度sim(u,v),公式如下:

其中,Iuv表示导航用户u和导航用户v共同计分的路线集,Iu表示导航用户u有计分的路线集,Iv表示导航用户v有计分的路线集,ru,i表示导航用户u对路线i的计分,rv,i表示导航用户v对路线i的计分;

通过聚类的方式划分导航用户偏好,通过余弦相似度计算在每个聚类上导航用户之间的相似度simc(u,v),公式如下:

其中,c表示路线i所在的聚类,Icuv表示导航用户u和导航用户v在聚类c中共同计分的路线集,Icu表示导航用户u在聚类c中有计分的路线集,Icv表示导航用户v在聚类c中有计分的路线集,ru,i表示导航用户u对路线i的计分,rv,i表示导航用户v对路线i的计分;

3.2)选择与目标导航用户在路线i所在的聚类c上相似度最大的前N个导航用户作为目标导航用户的局部邻近用户。

所述步骤4)中,基于全局邻近用户的估计分值公式如下:

其中,p′u,i表示基于导航用户的全局邻近用户的估计分值时导航用户u对路线i的估计分值,表示导航用户u的平均分值,nbu表示导航用户u的全局邻近集合,sim(u,v)表示导航用户u和导航用户v的全局相似度,eu,v表示导航用户u和导航用户v的相似度相关加权,rv,i表示导航用户u对路线i的实际计分,表示导航用户v的平均分值;相关加权公式如下:

其中,Quv为导航用户u和导航用户v的共同计分数,T为预先设定的邻近用户共同计分数阈值。对目标导航用户u,选择前N个sim(u,v)*eu,v最大的导航用户作为邻近用户。

基于导航用户的局部邻近用户的估计分值公式如下:

其中,p″u,i表示局部邻近用户的计分得到的导航用户u对路线i的估计分值,表示导航用户u在聚类c上的平均分值,表示导航用户u在聚类c上的局部邻近集合,simc(u,v)表示导航用户u和导航用户v在聚类c上的局部相似度,rv,i表示导航用户v对路线i的实际计分,表示导航用户v在聚类c上的平均分值;

局部邻近用户与全局邻近用户以相应的权值结合后的估计分值公式如下:

pu,i=p′u,i*e′+p″u,i*e″;

局部邻近用户和全局邻近用户估计分值的权值分配通过局部邻近相似度和与全局邻近相似度和的比值设定e′和e″,公式如下:

其中,e′+e″=1。

在获取导航用户和路线之间的关系数据后,针对路线数据进行一下操作步骤:

A.将路线数据表示为导航用户-路线计分矩阵;

B.计算在所有路线上导航用户之间的相似度,寻找导航用户全局邻近用户;

C.计算路线之间的相似度,利用相似度最大化准则确定相似度和最大的k-means聚类算法的K个初始聚类中心,并将该聚类算法用于路线聚类;

D.基于路线聚类计算导航用户之间的局部相似度和局部邻近用户;

E.将全局邻近用户和局部邻近用户以相应的权值分配进行拟合,根据导航用户的全局邻近用户和局部邻近用户对路线的计分估计导航用户对路线的计分,从而产生推荐。

根据本发明又一实施例,产生推荐的方法进一步包括:

①提取特征序列:对高频目的地进行预处理,包括分词、词频和去重,得出z个高频关键词作为目的地的基础特征关键词。进一步的,以目的地用户为单位,对训练数据,测试数据进行预处理,包括分词、停用词处理。再按照时间顺序记录每个用户历史导航路线中,t个高频关键词出现的序列,将此过程抽象为离散马尔科夫链,用转移矩阵描述用户的偏好特征,并基于此对用户偏好进行估计。

在本实施例中,分词的过程为:采用中文分词系统,结合自定义用户路线库对目的地信息进行分词;停用词处理的方法为:采用快速索引查表对无用信息进行过滤,从而降低目的地信息的噪音。

②建立马尔科夫链模型

马尔科夫链模型可以表示为一个四元组:<X,K,P(C),MC>。其中,X是离散随机变量,值域为{x1,x2,...,xn},每个xi对应一个关键词,称为模型的一个状态,{x1,x2,...,xn}为用户特征关键词序列;K表示模型包含的用户分类数量;C={c1,c2,...,cK}表示用户的分类,其分布函数P(C)表示不同分类用户的概率函数;MC={mc1,mc2,...,mcK}为类马尔科夫链集合,每一个元素mck是描述分类为ck的用户导航偏好特征的马尔科夫链,计算转移矩阵Ak中的每个元素pki1j1和初始状态概率λk中的每一项pki1:

其中,Ski1j1表示用户特征关键词序列中,状态对(xi,xj)出现的次数;αki1j1为贝叶斯估计中的背景知识:假设在每一类用户偏好特征关键词序列中,所有状态对(xi,xj)的出现次数都相同,则:

αki1j1=β/n2

其中,常数β取值为问题空间域的大小n。

马尔科夫链模型的学习过程需要完成两个任务:一是对用户特征序列进行聚类;二是为每个分类生成类马尔科夫链。先将每个用户看做一个独立的分类,生成类马尔科夫链。然后对这些马尔科夫链进行聚类与合并,当聚类结果达到标准后,通过计算聚类结果所确定的网络后验概率,并确定后验概率最大的聚类结果最优。

首先使用基于最小错误率的贝叶斯判定规则,判定用户分类ck。确定了用户的分类ck后,就可以用其类马尔科夫链mck来描述用户的偏好特征,采用如下公式进行估计:

V(t)=wt-1H(t-1)×A1k+wt-2H(t-2)×A2k+…+wt-hH(t-h)×Ahk

其中,Aik为类马尔科夫链mck的转移矩阵第i行,wt-i是各自权值。H(t)表示t时刻该用户的特征关键词,也即向量H(t)表示在时间点t时的状态,即若此时用户处于状态xi,则该向量的第i维是1,其他维都是0。向量v(t)表示在时刻t时,系统中每一种状态出现的概率。在V(t)中概率值最大的那一维对应的状态,也即在该时刻用户最可能的状态。

③构造多偏好特征向量:

马尔科夫链模型建立后,在估计过程的判定用户分类步骤中,将P=P((x1,x2,…,xn)|C=ck)P(Ck)按降序排序,取前s个P值对应的类马尔科夫链对用户进行估计,得到用户下一时刻可能感兴趣的关键词序列,关键词按照相应的P值大小顺序排序,形成用户多偏好特征向量,s为大于1的正整数。

④路线推荐

根据偏好特征关键词及相应的权值,匹配路线对用户进行推荐,也即根据估计结果,即用户下一时刻可能感兴趣的关键词,根据该关键词搜索导航数据库中的相关路线,将其推荐给用户。

综上所述,本发明提出了一种基于云存储的网络数据处理方法,通过划分用户偏好,并根据用户偏好局部相似性将全局与局部邻近推荐结果相拟合,从而提高推荐精度,提高用户使用导航功能的便利性。用户终端可以按照预定义推荐规则获取推荐路线信息,满足用户的不同需求。

显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1