一种面向移动社会网络的用户出行预测方法与流程

文档序号:19589214发布日期:2020-01-03 10:02阅读:316来源:国知局
一种面向移动社会网络的用户出行预测方法与流程

本发明属于计算机数据处理技术领域,涉及移动社会网络中的信息挖掘方法,尤其涉及一种面向移动社会网络数据基于时空熵的移动用户出行预测方法。



背景技术:

随着手机和无线通讯网络的普及,基于位置的移动社会网络数据挖掘研究与应用成为全球学术界和产业界关注的焦点,相应项目包括实时监测人群密度动态分布、利用移动通话数据得到静态城市人群时空分布、家庭定位服务、团队位置跟踪服务以及个人用户定位和导航服务等等。基于位置的信息服务的关键问题之一就是对移动用户的位置进行预测。

目前,用户出行预测方法主要基于无线网络和gps,这两种定位方式都能准确实时地反映目标的位置移动。但是,他们都面临这一个共同的瓶颈问题——定位数据量稀少。随着无线通讯技术的发展,手机成为了人们社会生活的重要工具,每一次通话就是一次定位,虽然通话次数不如gps定位频繁,但是数据量巨大,因此由通话数据形成的用户离散轨迹为位置预测研究打开了新的视角。

位置预测方法主要分为个人预测模型、群体预测模型和混合预测模型。个人预测模型就是通过挖掘个人历史信息中的规律性对个人轨迹进行预测,如现有的基于人类活动周期性建立的模型等;群体轨迹预测模型就是通过挖掘群体历史信息中的规律性来对个人轨迹进行预测,如利用动态贝叶斯网络以及隐式马尔科夫模型对群体建模等;混合预测模型则是通过衡量一个用户的可预测性,来决定是采用个体预测模型还是群体预测模型。可预测性在一定程度上反映了用户的移动规律性,越规律的用户可预测性也就越高。对于高可预测性高的用户使用个人预测模型预测;对于可预测性低的用户,使用群体预测模型。归纳而言,现有预测模型在衡量用户出行的规律性和社会关系对用户出行的影响方面,存在的问题包括:

(一)用户出行规律性的衡量:用户出行的可预测性决策了是采用个体预测模型还是群体预测模型。但是,任何个体用户其行为模式中都存在规律性和非规律性的部分。例如,周一到周五用户上班的时空轨迹普遍具有较强的规律性,而周六周日休闲娱乐的轨迹可预测性较差。所以,应该根据用户在不同时空位置的可预测性来决定是采用个体预测模型还是群体预测模型;

(二)社会关系对用户出行的影响:已有研究表明,用户的社会关系对用户的出行存在潜在的应用。但是,现有的预测方法虽然在预测模型过程中从总体上考虑了社会关系对用户出行的影响,但却并未体现出具体社交对象对用户出行的影响,实际上,对于不同的社会关系,如家人、朋友、同事等,对人出行的影响方式是存在差异的,不应该一概而论。

综上所述,现有的用户出行预测方法不能很好的区分用户在不同时空位置的可预测性,并且没有考虑不同社会关系对用户出行的影响;预测结果难以体现用户在不同时空场景下出行的不确定性和社会关系对用户出行的影响,使得预测的准确性不高。



技术实现要素:

为了克服上述现有技术的不足,本发明提供一种面向移动社会网络的用户出行预测方法,通过计算用户出行的时空熵来表示用户在该时空位置的可预测性,再根据用户在该时空位置的可预测性来选择不同的预测模型并做改进,对用户出行行为进行预测;该预测方法充分考虑了用户在不同时空场景下出行的不确定性和社会关系对用户出行的影响,从而使得预测准确性更高,预测效果更佳。

本发明的原理是:针对时空熵高,即出行行为可预测性高的用户,通过选用个人预测模型并使用轨迹合并算法得到用户的频繁轨迹模式;针对时空熵低,即可预测性低的用户,则选择社会关系预测模型,首先判断用户通话对象与用户之间是否具有社会关系,然后根据社交关系的不同分别建立动态贝叶斯网络模型和结合通话对象特征的预测模型。进行预测时,具体输入为当前时间t、位置l和预测步长h,以及预测模型;输出为预测得到的基站号,代表预测得到的用户位置。

本发明提供的技术方案是:

一种面向移动社会网络的用户出行预测方法,通过利用历史数据集计算用户出行的时空熵来确定用户在不同时空场景下出行的不确定性,再根据时空熵建立预测模型对用户出行行为进行预测,包括如下步骤:

1)进行数据预处理;

根据通话数据的特征,将用户通话记录单记作call:

call={<t1,tower1>,<t2,tower2>,…,<ti,toweri>,…,<tn,towern>}

其中ti表示时间,精确到小时,toweri表示接收通话信息的基站号。

对原始通话数据预处理的工作主要是对数据进行去冗余化和去基站化。去冗余化是把在一个小时内连续在同一基站位置有多次定位的通话记录去冗余,只保留一个记录。去基站化是去除通话时发生的基站转换;发生了基站转换是指,将用户移动上限设为120km/h,任何基站间最小移动速度高过该上限的都视作发生了基站转换。

2)利用历史数据集计算得到用户出行的时空熵;

用户在<t,tower>下,当预测步长为h时,其时空熵的计算包括如下步骤:

步骤一:在历史数据集中,统计用户在时间点t,基站tower下经过时间h后的转移模式,统计得到以这样一个五元向量<t,tower,t+h,towerx,count>表示的转移模式,其中towerx为用户在t+h时间点的位置,count表示这样的五元组的出现次数。

步骤二:根据如下公式计算towerx在五元组中的出现频率:

p=p{tower′=towerx|tower=tower,time=t}(式3)

式3中,p为条件概率,表示用户在时间t在基站tower的前提下t+h出现在towerx的概率;tower′为计算出现频率的基站。

步骤三:再根据公式4,得到用户在<t,tower>下,预测步长为h时的时空熵。其中c表示五元组集合的大小:

(式4)

式4中,entropy<t,tower>为用户在<t,tower>下,预测步长为h时的时空熵;pi为式3计算的条件概率,i为五元向量组集合中towerx的其中一个值;c为表示五元组集合的大小。

3)根据设定的时空熵阈值和步骤2)中得到的时空熵,建立预测模型,通过预测模型预测得到用户下一时刻的转移位置;

具体地,时空熵阈值是通过训练数据得到的,阈值训练具体是:开始取值为0.5,通过上下浮动测试得出具体取值;优选地,时空熵阈值为0.4到0.6。在本发明实施例中,时空熵阈值为0.45;若时空熵大于阈值,则建立个人预测模型进行预测;若时空熵小于阈值,则进一步判断是否存在社交关系,若有社交关系,则建立基于社交关系的出行预测模型进行预测;若无社交关系,则通过动态贝叶斯网络模型进行预测。

针对上述面向移动社会网络的用户出行预测方法,利用个人预测模型进行对用户出行行为进行预测时,输入:当前时间t、位置l和预测步长h;输出:预测得到的基站号,该基站号代表用户预测位置;进行预测的具体过程如下:

11)根据用户在相邻时间点t-1和t的轨迹,即<t-1,towerx><t,towery>这段轨迹,在个体预测模型中匹配出符合条件的基站形成备选预测结果集,适配条件是在个体运动频繁模式中存在模式(towerx–>towery),则在该模式中towery后第h个基站位置为备选预测结果,所有符合匹配条件的备选预测结果形成备选预测结果集;

12)对备选结果集中的每一个结果进行支持度计算;

支持度的计算公式如下:

(式14)

式14中,α和β为比例系数;n为备选预测结果的个数,peroccurrence,sumoccurrence分别为每个备选预测结果在个体预测模型中对应的频度和n个备选结果的频度和;pertimedis、sumtimedis分别为每个备选预测结果对应的时间差和n个备选结果时间差的和,时间差反映了一个历史频繁模式对应发生时刻和当前真实转移发生时刻之间的时间差,显然,从同一个地方出发,会因为时间的不同使得下一时刻的转移位置不同。比如同样是从单位出发,中午可能去食堂,下午可能回家。加入时间差对备选预测结果的影响,总是能得到最符合真实情况的转移结果。

13)取支持度最高的基站作为预测结果输出。

针对上述面向移动社会网络的用户出行预测方法,若时空熵小于阈值,则进一步判断通话对象和用户是否存在社交关系;通话对象和用户的关系判断具体采用现有文献(moyu,wenjunsi,guojiesong,zhenhuili,johnyen:whowereyoutalkingto-mininginterpersonalrelationshipsfromcellphonenetworkdata.asonam2014:485-490)记载的方法,得到通话对象和用户是否是陌生人关系;若为陌生人则通话对象和用户之间无社交关系,若为非陌生人则通话对象和用户之间有社交关系。

若用户与通话对象之间的关系为陌生人,即无社交关系,则从历史数据中取用户在t时刻的位置tower;并为用户建立动态贝叶斯模型预测其转移位置;建立动态贝叶斯模型采用现有文献(nanzhao,wenhaohuang,guojiesong,kunqingxie:discretetrajectorypredictiononmobiledata.apweb2011:77-88)记载的方法建立。

若用户和通话对象之间为非陌生人,则应该充分考虑通话对象的特征,建立基于社交关系的出行预测模型,建模具体过程如下:

31)为每个基站号计算一个sa(socialattraction)值;

计算sa值之前先根据用户的历史通话数据统计用户出现过的基站及出现次数,形成以<tower,ctower>为元素的集合set,其中tower为基站号,ctower为基站tower在历史通话数据中出现的次数,并记集合set的大小为size。同理也为用户的通话对象生成相应的集合set′,并且对应相应的和size′;

然后利用如下公式为每一个基站toweri计算一个sa值:

(式31)

式31中,α,β为比例系数。

32)取得用户t时刻所在基站tower的satower,对每一个sa值不为0的基站towerx计算从tower转移到towerx的概率:

33)选择最大的towerx作为预测结果。

建立hcmm模型具体采用现有文献(c.boldrini,a.passarella,hcmm:modellingspatialandtemporalpropertiesofhumanmobilitydrivenbyusers’socialrelationships,comput.commun.2010)记载的hcmm模型建立方法

与现有技术相比,本发明的有益效果是:

现有的用户出行预测方法不能很好的区分用户在不同时空位置的可预测性,并且没有考虑不同社会关系对用户出行的影响;预测结果难以体现用户在不同时空场景下出行的不确定性和社会关系对用户出行的影响,使得预测的准确性不高。本发明提供一种面向移动社会网络的用户出行预测方法,通过计算用户出行的时空熵确定用户在该时空位置的可预测性,根据用户在该时空位置的可预测性来选择不同的预测模型并做改进;针对时空熵高,即可预测性高的用户,通过选用个人预测模型并使用轨迹合并算法得到用户的频繁轨迹模式;针对时空熵低,即可预测性低的用户,则选择社会关系预测模型,首先判断用户通话对象与用户之间是否具有社会关系,然后根据社交关系的不同分别建立动态贝叶斯网络模型和结合通话对象特征的预测模型。本发明提供的技术方案能够区分用户在不同时空位置的可预测性,并且考虑不同社会关系对用户出行的影响;因此,预测结果体现了用户在不同时空场景下出行的不确定性和社会关系对用户出行的影响,从而使得预测准确性高,预测效果更佳。

附图说明

图1是本发明实施例提供的面向移动社会网络的用户出行预测方法的流程框图。

具体实施方式

为了更加清楚地介绍本发明的目的和技术方案,下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。

本发明提供一种面向移动社会网络的用户出行预测方法,通过计算用户出行的时空熵来确定用户在不同时空场景下出行的不确定性,再根据时空熵建立预测模型对用户出行行为进行预测,包括如下步骤:

1)进行数据预处理;

2)计算得到用户出行的时空熵;

3)根据设定的时空熵阈值和步骤2)中得到的时空熵,建立预测模型;

具体地,时空熵阈值是通过训练数据得到的,阈值训练具体是:开始取值为0.5,通过上下浮动测试得出具体取值;优选地,时空熵阈值为0.4到0.6。在本发明实施例中,时空熵阈值为0.45;若时空熵大于阈值,则建立个人预测模型进行预测;若时空熵小于阈值,则进一步判断是否存在社交关系,若有社交关系,则建立基于社交关系的出行预测模型进行预测;若无社交关系,则通过动态贝叶斯网络模型进行预测。

以下结合具体实施例对不同预测模型进行说明。尽管不同实施例对预测模型的选择不同,但对于数据预处理准备和时空熵的计算过程是相同的。

第一部分:数据预处理

根据通话数据的特征,对用户可以得到如下通话记录单:

call={<t1,tower1>,<t2,tower2>,…,<ti,toweri>,…,<tn,towern>}

其中ti表示时间,精确到小时,toweri表示接收通话信息的基站号。对原始通话数据预处理的工作主要是对数据进行去冗余化和去基站化。

冗余指的是原始通话数据中存在冗余的通话记录信息,如用户在同一个小时内在同一基站位置连续定位多次,这在统计轨迹频繁模式时会造成干扰,比如一个用户每天在时间点t都会在tower1基站有一次通话记录,但突然某一天在时间点t在tower2基站连续有20多次通话记录,导致基站tower2在时间点t的出现频度大于tower1,即使得tower2成为了用户在时间点t的规律位置,是不合理的。为了能让频度反映规律性,需要把在一个小时内连续在同一基站位置有多次定位的通话记录去冗余,只保留一个记录即可。

去基站化,手机在进行通讯时,由于信号、基站容量等客观问题,并不总是选择距离最近的基站,这使得话单记录的基站位置并不能很好的反映用户的位置,所以有必要去除通话时发生的基站转换,发生了基站转换是指,由于人类的移动上限是120km/h,任何基站间最小移动速度高过该上限的都视作发生了基站转换。根据基站的经纬度,可以计算出两个基站之间的最小球面距离dismin,利用公式

dismin=r×arccos(cos(wtower)×cos(wtower)×cos(jtower-jtower)+sin(wtower)×sin(wtower))(式1)

式1中,r为地球半径,(wtower,jtower)为基站tower对应的经纬度。

然后再利用公式2,求出基站toweri,towerj之间的转移速度,对于转移速度大于速度上限120km/h的,用toweri,towerj继续和下一个通话记录对应的基站位置towerk计算转移速度,直到判断出toweri,towerj哪一个是错误定位并将错误定位的基站号舍弃。

(式2)

式2中,为基站toweri,towerj之间的转移速度;分别为用户在toweri,towerj位置时的时间。

第二部分:时空熵的计算

用户在<t,tower>下,当预测步长为h时的时空熵的计算结合实施例说明如下:

步骤一:在历史数据集中,统计用户在时间点t,基站tower下经过时间h后的转移模式,统计得到以这样一个五元向量<t,tower,t+h,towerx,count>表示的转移模式,其中towerx为用户在t+h时间点的位置,count表示这样的五元组的出现次数。

步骤二:根据如下公式计算towerx在五元组中的出现频率:

p=p{tower′=towerx|tower=tower,time=t}(式3)

式3中,p为条件概率,表示用户在时间t在基站tower的前提下t+h出现在towerx的概率;tower′为计算出现频率的基站。

步骤三:再根据公式4,得到用户在<t,tower>下,预测步长为h时的时空熵。其中c表示五元组集合的大小:

(式4)

式4中,entropy<t,tower>为用户在<t,tower>下,预测步长为h时的时空熵;pi为式3计算的条件概率,i为五元向量组集合中towerx的其中一个值;c为表示五元组集合的大小。

第三部分:预测模块

对于不同的应用场景,由于用户时空熵的不同,预测模型的选择也不同。下面结合具体的实施例作进一步说明:

实施例一:

预测输入:用户1的手机号,当前时间点t和预测步长h

步骤一:根据用户1的手机号查询用户1的历史通话记录,结合时间点t和预测步长h,计算出用户的时空熵为0.8;

步骤二:根据训练数据得到的阈值为0.45,可以得出用户的时空熵大于阈值,所以使用个人预测模型预测;

步骤三:在使用个人预测模型预测时,需取用户在时间点t-1和t时刻的位置。然后构建个人预测模型;

构建个人预测模型过程如下:

a)将用户1每天的通话数据以小时为粒度表示成一天24个小时的基站号数组,得到用户的离散轨迹集g;

将用户1每天的通话数据以小时为粒度表示成一天24个小时的基站号数组,对于一个小时内有多个通话位置的,随机取一个;对于一个小时内没有通话数据的,数组对应值取null,即最终可以将一天的原始通话数据以轨迹的形式表示出来:

g={<0,tower0>,<1,tower1>,…,<23,tower23>}(式11)

对所有的历史通话数据这样处理后就得到了用户的离散轨迹集。

b)对用户原始离散轨迹集中任意两条轨迹计算它们的相似度s(gi,gj);

c)选择相似度最高的ρ%,对轨迹进行合并,得到集合g2

d)对g2集合中的任意两条轨迹计算相似度并合并相似度最高的ρ%,得到轨迹集合g3

e)对得到的轨迹集合重复执行计算相似度和合并相似度最高的ρ%,直到得到轨迹集合得到的为合并轨迹集合;

f)最后得到目标离散轨迹集合,目标离散轨迹集合由原始轨迹集合和合并轨迹集合两部分构成。算法结束。

上述构建个人预测模型的过程中,ρ%为可调参数,实验证明ρ%为30%时效果最佳;

上述构建个人预测模型的过程中,两条轨迹gi,gj的相似度定义如下:

(式12)

式12中,gi,gj为用户两天的轨迹,gi,k是一天中第k个小时对应的基站号,并且distance(gi,k,gj,k)定义如下:

distance(gi,k,gj,k)=r×arccos(cos(wi)×cos(wj)×cos(jj-ji)+sin(wi)×sin(wj))(式13)

式13中,gi,k对应的经纬度为(wi,ji),r为地球半径。

通过上述构建好的个人预测模型,输入:当前时间t、位置l和预测步长h,个体预测模型;输出:预测得到的基站号,代表预测得到的用户位置;进行预测的具体过程如下:

a)根据<t-1,towerx><t,towery>这段轨迹在个体预测模型中匹配出符合条件的基站形成备选预测结果集,适配条件是在个体运动频繁模式中存在模式(towerx–>towery),则在该模式中towery后第h个基站位置为备选预测结果,所有符合匹配条件的备选预测结果形成备选预测结果集;

b)对备选结果集中的每一个结果进行支持度计算;支持度的计算公式如下:

(式14)

式14中,α和β为比例系数;n为备选预测结果的个数,peroccurrence,sumoccurrence分别为每个备选预测结果在个体预测模型中对应的频度和n个备选结果的频度和;pertimedis、sumtimedis分别为每个备选预测结果对应的时间差和n个备选结果时间差的和,时间差反映了一个历史频繁模式对应发生时刻和当前真实转移发生时刻之间的时间差,显然,从同一个地方出发,会因为时间的不同使得下一时刻的转移位置不同。比如同样是从单位出发,中午可能去食堂,下午可能回家。加入时间差对备选预测结果的影响,总是能得到最符合真实情况的转移结果。

c)取支持度最高的基站作为预测结果输出。

实施例二:

预测输入:用户2的手机号,当前时间点t和预测步长h;

步骤一:根据用户2的手机号查询用户2的历史通话记录,结合时间点t和预测步长h,计算出用户的时空熵为0.4;

步骤二:根据训练数据得到的阈值0.45可以得出用户的时空熵小于阈值;

步骤三:判断通话对象和用户的关系,假设得出用户和通话对象之间的关系是陌生人;

通话对象和用户的关系判断具体采用现有文献(moyu,wenjunsi,guojiesong,zhenhuili,johnyen:whowereyoutalkingto-mininginterpersonalrelationshipsfromcellphonenetworkdata.asonam2014:485-490)记载的方法,得到通话对象和用户是否是陌生人关系;若为陌生人则通话对象和用户之间无社交关系,若为非陌生人则通话对象和用户之间有社交关系;

步骤四:由于用户与通话对象之间的关系为陌生人,即无社交关系,则从历史数据中取用户在t时刻的位置tower;并为用户建立动态贝叶斯模型预测其转移位置。动态贝叶斯网络的建模过程如下:

动态贝叶斯网络由两个部分构成(b1,b→),其中b1是定义了先验概率p(z1)的贝叶斯网络,b→是定义了p(zt+h|zt)的有向无环图,其中

(式21)

式21中,表示在时间片t对应的第i个结点.表示在图中的父节点。在我们的模型中

建立动态贝叶斯模型采用现有文献(nanzhao,wenhaohuang,guojiesong,kunqingxie:discretetrajectorypredictiononmobiledata.apweb2011:77-88)记载的方法建立,模型构建的算法如下:

输入:输入用户轨迹集s={t1,t2,….,tn},其中

输出:动态贝叶斯网络

a)for一天中的每一个小时h

b)for出现过的每一个基站cell

c)dbn.p(z(i+h)%c|zi)=计算相隔h个时间片的有向图的转移概率,即动态贝叶斯网络中结点gi,g(i+h)%c之间的转移概率

d)输出动态贝叶斯网络

预测过程直接根据用户在t时刻的位置tower,在图中找到概率最大的转移模式作为预测结果。

实施例三:

预测输入:用户3的手机号,当前时间点t和预测步长h

步骤一:根据用户3的手机号查询用户3的历史通话记录,结合时间点t和预测步长h,计算出用户的时空熵为0.4;

步骤二:根据训练数据得到的阈值0.45可以得出用户的时空熵小于阈值;

步骤三:判断通话对象和用户的关系,假设得出用户和通话对象之间的关系是非陌生人;

步骤四:若用户和通话对象之间为非陌生人,则应该充分考虑通话对象的特征,建立基于社交关系的出行预测模型,建模具体过程如下:

a)为每个基站号计算一个sa(socialattraction)值;

计算sa值之前先根据用户的历史通话数据统计用户出现过的基站及出现次数,形成以<tower,ctower>为元素的集合set,其中tower为基站号,ctower为基站tower在历史通话数据中出现的次数,并记集合set的大小为size。同理也为用户的通话对象生成相应的集合set′,并且对应相应的和size′;

然后利用如下公式为每一个基站toweri计算一个sa值:

(式31)

式31中,α,β为比例系数。

b)取得用户t时刻所在基站tower的satower,对每一个sa值不为0的基站towerx计算从tower转移到towerx的概率:

选择最大的towerx作为预测结果。

需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

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