基于手机传感器的朋友推荐方法与流程

文档序号:17924916发布日期:2019-06-15 00:21阅读:140来源:国知局
基于手机传感器的朋友推荐方法与流程

本发明涉及社交网络服务领域,尤其涉及一种基于手机传感器的朋友推荐方法。



背景技术:

随着在线社交网络的爆炸性增长,微博、微信等应用服务在现实生活中极大地拓展了使用者的社交圈。但是,目前的应用仍存在以下需要解决的问题。(1)通过扫描二维码等手段,在不同的社交场景中添加新朋友变得越来越方便,因此当面对庞大而复杂的朋友网络时,人们很难有效地管理自己的通讯录列表。手动分组或标记所有联系人很麻烦,这导致许多通讯录中的朋友缺少标签。即使通讯录列表中有一些标签如家人和同学,也是粗粒度的。目前已有一些通讯录管理方法。但是,这些方案都基于用户预先定义的信息,无法实现智能化管理联系人列表。(2)目前,朋友推荐已成为社交网络系统的关键部分。以前的朋友推荐主要基于在线社交网络,这不能完全反映人们在物理世界中的社交关系。目前,有将背景和爱好等个人特征被广泛用于朋友推荐。而基于位置的社交发现网络被提议用于发现附近的人。但是,这些方案没有足够关注人们在物理世界中的互动。因此,如何提供一种能利用人们在物理世界中的互动状态进行朋友推荐的方法是需要解决的问题。



技术实现要素:

基于现有技术所存在的问题,本发明的目的是提供一种基于手机传感器的朋友推荐方法,能基于人们在物理世界中的互动活动进行朋友推荐,提升推荐朋友的准确性。

本发明的目的是通过以下技术方案实现的:

本发明实审方式提供一种基于手机传感器的朋友推荐方法,包括:

步骤1,采集数据:采集手机传感器的传感器数据;

步骤2,清洗数据:通过对所述传感器数据依次进行排序、插值和过滤处理,去除所述传感器数据中的噪音;

步骤3,对所述步骤2清洗后的传感器数据分别进行用户行为识别处理和用户交互检测处理,通过所述用户行为识别处理识别出用户所进行的社交活动,向用户所在的推荐区域内进行同一类活动的其他用户进行共同活动朋友推荐;通过所述用户交互检测处理检测出与用户发生社交活动交互的其他用户,向检测出的发生社交活动交互的其他用户进行交互活动朋友推荐。

由上述本发明提供的技术方案可以看出,本发明实施例提供的基于手机传感器的朋友推荐方法,其有益效果为:

通过对采集的手机传感器数据进行特定方式清洗去除噪声后,分别通过用户行为识别处理和用户交互检测处理,识别出用户的社交活动,并向用户所在的推荐区域内进行同一类活动的其他用户进行共同活动朋友推荐;以及检测出与用户发生社交活动交互的其他用户进行交互活动朋友推荐。该方法基于人们在物理世界中的相同和交互的活动进行对应的朋友推荐,提升推荐朋友的准确性,也提升了通讯录管理的智能化。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的基于手机传感器的朋友推荐方法的流程图;

图2为本发明实施例提供的推荐方法中的对羽毛球活动的最佳截止频率的残差分析示意图;

图3为本发明实施例提供的推荐方法中对于不同活动的社交交互组识别的准确率示意图;

图4为本发明实施例提供的推荐方法所应用的集中式系统构成示意图;

图5为本发明实施例提供的推荐方法所应用的分布式系统构成示意图;

图6为本发明实施例提供的推荐方法中的深度学习网络结构及其投票机制的示意图;

图7为本发明实施例提供的推荐方法中的来自不同群组的加速度计数据中的峰值检测示意图。

图8为本发明实施例提供的推荐方法中对三种网络结构的识别精度和模型大小比较示意图。

具体实施方式

下面结合本发明的具体内容,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

如图1所示,本发明实施例提供一种基于手机传感器的朋友推荐方法,包括:

步骤1,采集数据:采集手机传感器的传感器数据;

步骤2,清洗数据:通过对所述传感器数据依次进行排序、插值和过滤处理,去除所述传感器数据中的噪音;

步骤3,对所述步骤2清洗后的传感器数据分别进行用户行为识别处理和用户交互检测处理,通过所述用户行为识别处理识别出用户所进行的社交活动,向用户所在的推荐区域内进行同一类活动的其他用户进行共同活动朋友推荐;通过所述用户交互检测处理检测出与用户发生社交活动交互的其他用户,向检测出的发生社交活动交互的其他用户进行交互活动朋友推荐。

上述方法的步骤3中,向用户所在的推荐区域内进行同一类活动的其他用户进行共同活动朋友推荐:

以用户所在位置(可gps地理位置信息对用户定位)为圆心并按设定半径覆盖的用户周围的圆形区域为用户所在的推荐区域,向用户所在的推荐区域内进行同一类活动的其他用户进行共同活动朋友推荐。如:用户周围1km内作为用户所在的推荐区域内,该半径值可根据实际情况调整,并不限于1km,也可以是500m、1.5km等;本用户对同一类活动的其他用户活动的标识符可从共同连接的服务器端获取,也可以用户之间之间通信获取;

上述方法的步骤3中,向用户所在的推荐区域内进行同一类活动的其他用户进行共同活动朋友推荐为:

将用户所在的推荐区域内与该用户进行同一类社交活动的其他用户,在该用户通讯录中划分为同一个群类,在同一个群类的用户之间进行朋友推荐。这种共同活动朋友推荐,属于一种粗粒度朋友推荐,可以推荐给多个用户。

上述方法的步骤3中,向检测出的发生社交活动交互的其他用户进行交互活动朋友推荐为:

向检测出的发生社交活动交互(如两个人在一起打羽毛球)的其他用户进行朋友推荐,将所述其他用户的通讯录条目置顶。这种交互活动朋友推荐属于一种细粒度朋友推荐,推荐的精准度更高。

上述方法的步骤2中,对所述传感器数据的排序处理为:根据传感器数据的产生时间对数据进行排序;

对所述传感器数据的插值处理为:通过对传感器数据进行插值使1秒钟的时间段内有50个数据点;

对所述传感器数据的过滤处理为:

计算最佳截止频率:按设定的系列截止频率过滤传感器数据,计算过滤后的传感器数据和过滤前传感器数据之间的残差,再计算残差的均方根误差,拟合均方根误差的指数方程曲线,曲线的尾部为噪音的残差,取拟合指数曲线降低95%的截止频率作为最佳截止频率;

采用双向巴特沃斯低通滤波器,使用计算出的所述最佳截止频率对所述传感器数据进行低通滤波去除噪声。

上述方法的步骤3中,对清洗后的传感器数据进行用户行为识别处理的方式如下:

将清洗后的传感器数据划分成多个片段,每个片段由2.56秒时长采集的数据组成;

通过短时傅里叶变换将分成多个片段的清洗后的传感器数据变换为频率和相位数据;

通过深度学习网络结构提取得到所述频率和相位数据中的特征,并对所述特征进行识别得出用户所进行的社交活动。

上述的行为识别处理中,所用的深度学习网络结构如图6所示,的第一层是卷积连接的网络,后面连接着由多个具有线性瓶颈的倒残差结构,所述线性瓶颈的倒残差结构包含逐点卷积、深度可分卷积和跳过连接。该深度学习网络结构涉及的卷积连接的网络、倒残差结构等均可以采用现有的。

上述方法的步骤3中,对清洗后的传感器数据进行用户交互检测处理的方式如下:

检测本用户与对应用户的传感器数据进行两个用户行为检测,先分别对本用户与对应用户的传感器数据进行处理,均依次进行分割数据和提取时间戳的处理,其中,

步骤31,分割数据为:按设定分割数据的窗口大小和重叠比例对清洗后的所述传感器数据进行分割,分割成多个数据片段;

步骤32,提取时间戳为:对每个数据片段提取波峰所在的位置,将每个波峰位置的时间戳提取出来保存成向量;

在经过上述处理分别得到本用户与对应用户的向量后,依次进行下述处理:

步骤33,计算向量之间的距离:利用动态规划处理计算出两个用户对应向量之间的距离,将计算多对向量得出的距离组成特征向量;

步骤34,分类识别:对得到的所述特征向量进行二分类的真和假判断,真表示两个用户是在一起进行活动,假表示两个用户不是在一起活动。

本发明的方法,是一种朋友推荐并进行通讯录管理的方法,能充分利用人们在物理世界中的互动信息,实现朋友自动标注和朋友推荐,并能基于共同活动(例如体育活动,聚会或会议活动等)来管理用户通讯录。

下面对本发明实施例具体作进一步地详细描述。

本发明实施例提供一种基于手机传感器的朋友推荐方法,该方法能实现的作用如下:

采集智能手机和智能手表中的加速度计和陀螺仪数据,gps位置信息数据,对这些数据进行处理来识别出用户的动作,也就是判断用户在做什么事情(如可以识别出:打羽毛球,打篮球,打乒乓球,跑步,走路,坐下,躺下,站立等这些常见的活动).在此基础上,基于活动的识别结果和用户的位置信息,可以向用户推荐附近的做相同活动的人做朋友.另一方面,当球场上有很多组人都在打羽毛球时,可以判断和用户打球的人是谁,比如球场上同时存在用户a和用户b单打,用户c和用户d单打,可以识别出a和b在一起打球,而不是a和c在一起打球。

该基于手机传感器的朋友推荐方法,具体包括以下步骤:

(1)采集数据:

手机中有加速度计和陀螺仪等传感器硬件,当手机发生晃动时,这些传感器会产生力的变化,通过读取这些变化的数值,能实现手机传感器数据的采集(类似电子秤的数据采集);该采集数据的方式可采用已有的技术,不再具体说明;

(2)清洗数据:

由于手机等硬件设备的制造差异,以及用户持有设备时会有很多不经意的小动作(比如晃动转动手机)等原因,会导致采集的传感器数据产生非常多的噪音;另外,对于安卓操作系统而言,它本身的采样频率也是不可以固定的,而是上下波动变化,一般系统的采样频率都会大于软件指定的采样频率.还有一个原因是数据通讯和读写方面,这个过程并不能保证是同步的,很容易发生数据包的丢失和数据乱序,因此数据写入文件中的顺序不能保证按照时间的先后顺序写入。因此,为解决上述问题,本发明在该清洗数据步骤中,首先对数据进行排序,根据时间戳(数据产生的时间)的大小来对数据进行排序,排序的算法可采用现有的算法(比如快速排序算法),然后对排序后的传感器数据进行插值,比如采样频率为50赫兹,即一秒钟采集50个数据点,通过对数据进行插值,可以保证1秒钟的时间段内有50个数据点,插值算法也可采用现有算法(比如样条插值算法);

经过以上处理后,开始对数据进行过滤,滤除数据中的噪音.由于用户的任意行为和各种设备会产生不同频率的噪音,为了过滤噪音,同时保持数据的原始性,本发明提出了利用残差分析的方法,首先使用一系列的截止频率(比如10hz,20hz,30hz一直到50hz)来过滤数据,然后计算过滤后的数据和过滤前数据之间的残差.然后再计算残差的均方根误差和所使用的对应截止频率来进行残差分析,分析过程是拟合残差结果数据的指数方程曲线,曲线的尾部认为是噪音的残差,取拟合指数曲线降低95%的截止频率作为最佳截止频率(参见图2).这样,在原始传感器数据上应用双向巴特沃斯低通滤波器对数据进行过滤,该滤波器使用的截止频率就是上述计算出的最佳截止频率,对于每一种活动,都分别计算一个最佳截止频率来过滤数据中的噪音;

(31)用户行为识别:

将收集到已清洗后的传感器数据划分成多个片段,每个片段由2.56秒时长采集的数据组成,即128个数据点(50hz的频率),由于用户的社交活动产生的传感器信号是非平稳的,本发明对上述数据使用短时傅里叶算法进行变换数据,这样原始数据就变成了频率和相位数据;

通过一个深度学习网络结构(参见图6),其中,stft就是短时傅里叶变换,conv表示卷积网络,invertedresidualwithelinearbottleneckblock就是线性瓶颈的倒残差结构)来提取频率和相位数据中的特征,这个神经网络的结构中,第一层是卷积连接的网络,后面连接着由多个具有线性瓶颈的倒残差结构,线性瓶颈的倒置残差块包含了逐点卷积,深度可分卷积和跳过连接;这种结构的组合可以减少计算操作和允许内存有效实现有向无环图的计算;在最后一部分中,使用逐点卷积来缩小归一化指数函数分类器层的通道数;

将短时傅里叶变换的结果提供给图6所示的深度学习网络结构,该深度学习网络结构的体系结构包含一个带有32个滤波器的卷积层,后面连接三层反向残差和线性瓶颈块。扩展因子是输入通道和输出通道之间的比率,在该深度学习网络结构中可以使用扩展因子产生线性瓶颈。在实验中根据经验将扩展因子设置为4。

这是一个具体的网络结构的大小,input表示输入矩阵的维度,t表示扩展银子,c表示输出的通道大小,s是步长,这些是operator(上述的包含的网络结构)中用到的参数.

对于每个传感器数据片段,可以得到一个分类结果;考虑用户的社交活动一般是持久和随机的,单个传感器数据片段的分类结果不可靠,本发明采用将从归一化指数函数分类器获得的结果的进行多数人投票的方法,以获得稳健的识别结果;比如一分钟的数据可以分为23段(60/2.56),每一段通过神经网络可以得到一个识别结果,判断这一分钟数据识别的结果为23个结果中最多的那个结果。

(32)用户交互检测(与上述的用户行为识别是并列的关系):

同一组中的人员彼此之间有交互(比如两个人一起打球),他们的传感器数据将包含一些相关性.动态时间规整算法可以通过拉伸时间轴和计算两个时间序列点的距离之和来匹配不同长度的时间序列,这称为翘曲路径距离。本发明采用的用户交互检测是一种基于翘曲路径距离提取社交互动特征的算法:

步骤321,分割数据:按设定分割数据的窗口大小和重叠比例来对数据进行分割,比如0-1000,可以切分成0-100,90-190,180-280,(窗口大小100,重叠10%)...这样一个很长的数据段被划分成很多小的数据片段;

步骤322,提取时间戳:采集的传感器数据画出来是一个波浪形状的图案,对每个数据片段提取波峰所在的位置(某个数据点),这个数据点会有时间戳,将每个波峰时间戳提取出来保存成向量,这样对用户a而言,多个数据段会产生很多个向量,对用户b,多个数据段也会产生很多个向量;

步骤323,计算向量之间的距离:利用动态规整算法来计算对应向量(a的对应向量和b的对应向量)的距离,首先初始化距离矩阵的边界值,然后用动态规划算法来求两个向量之间的最小距离;每一对向量会计算出一个距离,很多对向量计算得到的距离组成所需要的特征向量;

步骤324,分类识别:对上述得到的特征向量进行二分类,即真和假的判断,真表示两个用户在一起进行活动,假表示两个用户不是在一起活动的.(当然,算法还可以应用于三个及以上的用户判别),这个二分类算法采用现有的梯度提升树分类算法来进行分类,梯度提升树使用了300个提升阶段(算法用到的一个参数)。

本发明实施例提供基于手机传感器的通讯录管理及朋友推荐方法,用于实现社会活动挖掘,是一种轻量级活动识别模型和一种通过含有噪声的传感器数据识别用户社交活动的方法。

发明人对三种神经网络结构的性能进行了比较,结果如图8所示。采用的无投票网络的准确率为94.5%,而本发明在三分钟数据段上通过投票方式实现社交活动识别的准确度达到100%。将训练好的模型保存到文件中,模型大小显示在图的右轴。所提出的模型的大小仅为网络结构名称为lstms的四分之一,即416kb,适用于移动设备。与传统的现有神经网络相比,本发明的深度学习网络结构可以降低存储器需求和计算操作,同时实现竞争准确性。轻量级神经网络适合部署在资源受限的设备中(如智能手机、智能手表等)。

为了获得细粒度的社会群体信息,基于同一个社交活动中的人总是拥有相同的目标,并将其他人的反应考虑在内的认识,本发明只使用加速度计和陀螺仪传感器数据来挖掘用户的社交互动信息,(其中也使用了gps位置信息,作用是划定一定的区域范围作为用户所在的推荐区域,这样也实现了使加速计和陀螺仪数据仅在一定的区域范围内进行数据传输和计算,减低设备的功耗和数据流量)。首先对三个坐标轴中的加速度的平方求和,并且算术平方根是装置的校正加速度。然后,将传感器数据传递到双向巴特沃斯低通滤波器,通过残差分析获得的不同截止频率(对羽毛球活动的截止频率分析示意如图2所示)。

在步行,打乒乓球和打羽毛球的实验中,采用截止频率分别是2hz,8hz和10hz。实现了所提出的社交互动特征来创建交互特征的目标。对于不同的活动,计算同一组人的交互特征和不同社交群体中人的非交互特征。与许多分类算法相比,本发明选择使用梯度提升树分类算法和300个增强阶段来进行二元分类。然后,在10倍交叉验证中实施梯度提升分类器以进行统计分析。为了评估本发明提出的解决方案的可扩展性,在独立于人的培训方案中实施以下实验。来自不同人的原始数据集被随机分成三个大小相等的子集。保留一个子集作为测试数据,其余子集用于训练模型。在训练数据或测试数据中单独生成社交交互特征。然后,实施具有300个增强阶段的梯度提升树分类器以检测不同的组。该过程重复3次,每个子集一次用作测试数据。

之后使用准确度、召回率、精度和f1来衡量所提出的社会群体检测方法的性能。计算平均值和标准差以产生单一估计,结果如图3所示,其中a1表示两个人一起走路,a2表示两个人一起打乒乓球,a3表示两个人一起打羽毛球。为探索同步活动,如人们一起散步,以及在两个用户组和四个用户组中打乒乓球或打羽毛球等异步活动。实验中使用的窗口大小为300,重叠为0.6。对于两个人一起行走,社会群体检测的平均准确率为92.2%,召回率为96.3%,精确度为90.2%。本发明提出的方法实现了较高的社会群检测准确率和较低的错配率,可用于通讯录维护,设备配对和朋友自动标注等情况。对于异步活动,在两人活动场景中,本发明提出的方法也可以达到92.6%的检测乒乓球组的准确率。因为打乒乓球的节奏使得用户之间的互动相对紧凑,并且社交互动功能更加可辨。在四人活动场景中,由于复杂的变换和交互,检测精度相对低于两个人的情景。然而,本发明的方法仍然达到了四个人一起行走的召回率为95.4%,乒乓球为95.3%,羽毛球为90.2%。本发明提出的方法可以用于朋友推荐应用程序,其中可以推荐不在同一组但执行相同活动的人作为朋友。

本发明的推荐方法可应用于图4所示的集中式架构系统中,用户的原始传感器数据被上传到服务器,首先在服务器上识别用户的社交活动,然后根据用户的活动信息和位置信息将用户分成几个群集。然后利用本发明提出的基于用户运动传感器数据的物理活动的社交群体检测算法以细粒度的方式检测用户的社交群组。

本发明的推荐方法也可应用于图5所示的分布式系统中,可以根据用户的位置信息对用户进行群组划分,比如距离用户周围1公里范围内的活动用户。用户a的社交活动首先被识别为自己的本地设备a中的进行活动识别,并标记成活动标识符,然后使用乱码电路协议来加密活动标识符以便防止用户活动信息泄露。用户b的设备b收到请求后,将检查a中的加密标识符是否与b相同。如果两个标识相同,则设备b可以选择接受数据传输请求,然后计算并传输数据特征到设备a进行社交群组检测,同时向a请求检测结果。否则,b将拒绝来自a的连接并将彼此标记为已经通讯。社交群组检测在a中计算,结果将发送给b。然后a可以将b标记为已通信。一旦b得到a的结果,b也可以标记a为已经通信。经过一段时间后,a和b会定期进行广播通信,来通知设备的信息和配对结果。这样,假设a和b在同一组中,a和用户c的设备c不在同一组中,一旦a和c通信,则b不需要与c通信,因为b可以推断出从a接收广播后,b和c不在同一组中。

上述推荐方法中,采用的深度学习网络结构及其投票机制(参见图6)中,将计算数据片段的短时傅里叶变换,并将结果传递进入卷积层,然后是进入堆叠的线性瓶颈的倒置残差块。线性瓶颈的倒置残差块包含逐点卷积,深度可分卷积和跳过连接。这种结构的组合可以减少计算操作和允许内存有效实现有向无环图的计算。在最后一部分中,使用逐点卷积来缩小归一化指数函数分类器层的通道数。对于每个传感器数据片段,可以得到一个分类结果。最后,从归一化指数函数分类器获得的结果的进行多数人投票的方法,以获得稳健的识别结果。

图7示意了来自不同群组的加速度计数据中的峰值检测,其中,通过智能手表收集用户在活动中的数据,第一列图的活动为散步,第二列为打羽毛球,第三列为打乒乓球。上面的两行使用蓝线表示两个人在同一组中处于活动状态,第三行使用绿线表示用户不与上述两个用户一起执行活动。

实施例1:

用户的智能手机和智能手表安装数据采集软件,在进行社交活动时进行佩戴智能手表,软件会自动收集用户的加速计和陀螺仪传感器数据以及用户的位置信息.这些信息可以通过移动网络上传到服务器,在服务器上可以通过本发明提出的社交行为活动识别算法对传感器数据进行智能识别,从而可以识别出用户在进行什么社交活动.结合用户上传的位置信息,可以将进行同一类活动的用户划分为同一个群类,在同一个群类的用户可以进行朋友推荐;然后,利用本发明提出的社交交互特征算法,在服务器上可以对原始传感器数据进行特征提取,然后利用梯度提升树分类器对用户是否在一起进行社交活动进行识别;最后,服务器将识别的结果发送给用户手机客户端.客户端可以根据识别的结果进行通讯录维护,朋友推荐.系统软件可以为每一个用户生成一段唯一的用户识别码,用户识别码和用户的通讯录信息相关联.可以通过唯一用户识别码对用户的通讯录进行增加删除,查询和修改。

实施例2:

用户的智能手机和智能手表安装数据采集软件,用户的传感器数据被保存在手机本地.利用tensflow开源软件实现用于社交活动识别设计的深度学习网络结构,用户的社交行为可以在手机上进行识别,然后将识别的结果转换为用户活动的标识符.用户手机可以在一定范围内进行广播通讯,将标识符发送给其他用户,对具有相同标志符的用户进行匹配(此步骤也可以通过服务器来实现广播用户活动的标识符);然后,执行本发明提出的社交交互特征生成算法生成数据的特征.对于具有同一标识符的用户群组,用户间可以传递社交交互特征,然后使用梯度提升分类器进行识别,从而判断用户是不是在一起进行社交活动.客户端可以根据识别的结果进行通讯录维护,朋友推荐.系统软件可以为每一个用户生成一段唯一的用户识别码,用户识别码和用户的通讯录信息相关联.可以通过唯一用户识别码对用户的通讯录进行增加删除,查询和修改。

本领域普通技术人员可以理解:实现上述实施例方法中的全部或部分流程是可以通过程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

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