发明内容
在预测社交网络内容传输方面,现有技术主要集中于链路预测,但链路预测有一个严重的缺点,它只能预测两个节点在已知的社会网络拓扑中建立链路的可能性,不能预测整体的传输路径。而在进行APP个性化推荐时,需要知晓各种类型用户对该APP的偏好程度,这就需要得出该APP的所有可能的树状传播路径。针对这一缺点,本发明提出了一种基于移动网络线下内容传播的树状路径的个性化推荐方法,从已有的海量数据中挖掘有效特征,提出原型用户的概念,建立一个良好的模型预测D2D移动社交网络中每个文件的树状传播路径,每个APP都对应了一个传输路径森林,当某类原型用户在该传输路径森林中出现较多次数时,就可以判断该类型用户可能对该APP具有潜在的偏好,从而可以将该APP推荐给这类原型用户所覆盖的所有真实用户。
一种基于移动社交网络树状传输路径的个性化推荐方法,所述方法包括:
通过合作的方式获取海量用户数据并进行清洗,对数据集中的每一条用户交互记录的各个影响因素生成One-Hot特征向量,将同一用户各个影响因素的One-Hot特征向量进行叠加和正则化,拼接生成用户特征向量作为LSTM模型的输入。为了模型的泛化和个性化推荐的需要,使用聚类算法生成原型用户,每个原型用户代表一类相似的真实用户;
根据数据集中每一条记录的MD5码提取出对应的APP传输记录,为每个APP生成一个传播路径森林;将传播路径森林中每一棵传播树的树状路径转化成序列路径,应用于LSTM模型中进行树状路径预测;
将输出的序列状的预测路径恢复成树状路径,根据恢复的树状路径推测用户偏好从而进行个性化推荐。
其中,所述针对分类结果将数据集中的每一条用户交互记录,生成One-Hot特征向量具体为:
生成内容类别,时间,地理位置,用户传输偏好的One-Hot特征向量。
所述方法还包括:树状路径的构造,具体为:
将按照APP的MD5码分组后的传输记录按照时间戳从小到大进行排序,输入排序后的日志文件并依次遍历每一条记录,在已知节点列表中搜索其发送方ID,如果发送方ID不在节点列表,创建发送方、接收方节点,添加一条发送方到接收方的边,并将发送方ID添加至根节点列表中,将接收方和发送方ID添加至节点列表中,根据日志文件生成树状传播路径。
所述方法还包括:
如果发送方ID存在,则新建一个接收方节点并添加一条由发送方到接收方的边并将接收方节点ID添加至节点列表中。
进一步地,所述将传播路径森林中每一棵传播树的树状路径转化成序列路径具体为:
遍历森林列表ForestArray,对于每一棵树来说,首先将根节点T添加至列表Q中并循环遍历,依次从Q中取出一个节点node,然后遍历其孩子节点列表,将每个孩子节点tnode添加至队列Q,并将(node,Sibiling,tnode)添加到ResultSet中;Sibiling保存了当前节点的兄弟节点,每次循环中将当前节点更新为下一个节点的兄弟节点,在一个节点子节点遍历完毕后添加虚拟节点,直至Q队列为空时停止遍历。
进一步地,所述LSTM模型具体为:
模型输入待预测节点的兄弟节点的特征向量和其父亲节点的特征向量拼接而成的向量xt,t时刻之前的历史细胞状态ct-1和其隐藏状态ht-1被在该时刻传递给LSTM中;
输出ht和ct传播到下一个LSTM单元,输出的隐藏层变量通过一个全连接层以后进入Sigmoid层,进行分类得到待预测的原型用户的类别;使用交叉熵损失函数来作为模型的训练目标并使用Adam进行梯度下降优化,多次迭代之后,模型的输出是转换为序列后的传播树。
其中,所述将输出的序列状的预测路径恢复成树状路径具体为:
将经过LSTM模型转化成序列后的传播树T存储在列表Array,对于每一棵树首先将根节点T添加至队列Q并开始循环遍历,依次从Q中取出一个节点node,遍历Array,将虚拟节点V-NODE之前的节点加入队列Q中,并依次添加node节点到这些节点的边,然后添加一个虚拟节点V-NODE并添加node节点到这个虚拟节点的边,直至Q队列为空停止遍历。
本发明提供的技术方案的有益效果是:
1、本发明是基于现实世界大规模数据集构建移动社交网络,通过考虑传播文件内容,传播时间,传输的地理位置和用户的传输偏好建立模型,首次以自上而下的顺序预测线下内容传播的树状路径,并且在预测准确率等性能上优于现有的其他模型技术;
2、根据模型预测出的每个APP的树状传输路径森林可以得到偏好该APP的原型用户,对这类原型用户所涵盖的所有真实用户进行个性化推荐,推荐的精度较高。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。
D2D通信技术:D2D技术,也称为终端直连。D2D通信技术是指两个用户直接进行通信。它的提出是相较于用户-基站架构提出的,在传统蜂窝网络中基站就是服务器,用户设备就是客户端,用户需要通过基站获取网络中的文件。但在D2D网络中用户之间通过“发送-接收”的方式自组织形成一个不经过基站的D2D移动社交网络。在由D2D通信用户组成的移动社交网络中,每个用户都可以自由地发送和接收文件,并且具有类似路由转发的功能。相较于传统蜂窝网络,D2D技术可以使一个用户的移动设备不通过基站直接从其他用户的移动设备获取所需文件,两个用户节点可以直接进行通信,从而卸载蜂窝网络的流量,进而减少网络时延,提高用户体验质量(QoE)。此外,D2D技术具有较强的鲁棒性,因此使用该技术可以在特殊时期完成关键信息的传输。
LSTM深度神经网络:神经网络是一种模仿生物神经网络的工作原理的数学模型,用于对函数进行估计和近似。神经网络的本质其实是一种映射,其本质是对于输入进行映射,映射为输出数据,与函数的功能相类似。由于本方法旨在对文件的树状传播路径进行预测,因此使用LSTM神经网络来训练模型。
LSTM的核心是贯穿整个过程的细胞状态,来保证信息在传播过程中不易丢失,并能通过遗忘门、输入门和输出门对细胞状态进行信息的删除或者添加。这样的模型使输入信息并没有直接与输出信息耦合,因此在梯度求解时不会产生与传统RNN(RecurrentNeural Network,循环神经网络)类似的梯度消失和梯度爆炸等级联现象,因此保证了信息的长时间(神经网络中的长距离)传播。
实施例1
以往的研究和发明没有提出基于移动社交网络树状路径的个性化推荐方法。针对这一点,本发明提出了考虑多特征的LSTM神经网络模型来训练和预测D2D社交网络中文件传播的路径。此外,为了使这个模型也适用于现有网络用户以外的用户,本发明将所有用户划分为多类原型用户,定义并使用原型用户进行树状路径预测,更有利于模型的泛化。
为了说明本发明的树状路径预测,本节首先定义了本发明所面向的典型问题,然后提出了解决这一场景下典型问题的求解方法。
(1)问题描述
将树状传播路径预测描述为一个决策过程。
其中,网络中的所有APP可以表示为:
其中,
代表所有APP组成的集合,a
i表示第i个APP。
一系列原型用户可以表示为:
其中,
代表所有原型用户组成的集合,u
i表示第i类原型用户。
在树状传播路径预测问题中,目标是为每一个APP文件ai生成一个扩散路径序列P(ai),定义元组(ωt,t)表示给定应用程序在步骤t时传递给了原型用户ωt,P(ai)可表示为:
P(ai)={(ω1,1),(ω2,2),…,(ωt,t),…}
最终根据本方法设定的预设规则将链式结构转化为树状路径,根据预测得到的树状路径对用户进行个性化推荐。
(2)求解方法
基于LSTM神经网络,本方法提出了考虑当前传输的文件内容,时间和用户的地理和传输偏好对D2D线下内容传播的树状路径进行预测,解决上述问题的步骤为:
步骤1:通过合作的方式获取海量用户数据,进行数据清洗,获取清洗后的数据集;
步骤2:将数据集中的APP按照文件的性质将文件进行分类;
步骤3:对数据集中的每一条用户交互记录依次生成内容类别,时间,地理位置,用户传输偏好的One-Hot特征向量,将同一用户各个影响因素的One-Hot特征向量进行叠加和正则化,拼接生成用户特征向量用于LSTM模型的输入,然后使用聚类算法将一组相似的用户划分为一类原型用户,在步骤6进行预测时,其模型的输出就对应于其中一类原型用户;
步骤4:根据数据集中每一条记录的MD5码提取出对应的APP的传输记录,为每个APP生成一个传播路径森林;
步骤5:将传播路径森林中每一棵传播树的路径树状路径转化成序列路径,使其可以应用于LSTM模型中;
步骤6:使用LSTM模型进行树状路径预测,预测出的用户节点均为步骤3中的某一类原型用户;
其中,LSTM模型为本领域技术人员所公知,本发明实施例对此不做赘述。
步骤7:将步骤6输出的序列状的预测路径恢复成树状路径,根据恢复的树状路径推测用户偏好,进行个性化推荐。
实施例2
本发明结合了移动社交网络中的用户的地理位置,传输偏好特性和文件传播的时间和内容特性提出了线下D2D网络文件树状传播路径预测的模型,并验证了这个模型的预测性能最好。该方法包括以下几个步骤:
(1)数据预处理,获取预处理后得数据集
收集移动社交网络中的相关数据,并对数据进行预处理。其中一些信息在本发明中没有涉及,并且会造成数据冗余。所以在本发明中只筛选出了9列有效数据,分别为文件类型,MD5码,发送者ID,接收者ID,时间,IP,国家,GPS和文件的大小。除此之外,为了数据的完整性和实验的准确性,将错误的、缺失的信息也清洗掉。
其中,上述MD5码为本领域技术人员所公知,本发明实施例对此不做赘述。
(2)基于预处理后的数据集、Apkpure软件,使用map映射对APP进行分类
为了获取用户对应用程序的偏好,从Apkpure(为一公知的应用商店类的软件,为本领域技术人员所公知)中收集APP的名称和类型,根据文件的MD5码使用map映射对数据集中传输的APP进行分类。将所有的APP分为48类,其中每个APP对应于一个特定的类别(例如:社交类、金融类等)。
其中,map映射为本领域技术人员所公知,本发明实施例对此不做赘述。
(3)原型用户类别生成
针对数据集中的每一条传输记录,依次生成内容类别,时间,地理位置,用户传输偏好的One-Hot(独热编码)特征向量,其中内容类别向量为48维,时间向量为24维,地理位置向量为T维(经验证T=80时效果最好),传输偏好向量为2维,每一个特征只有一位处于状态1,其余均为状态0。
通过对同一用户各个影响因素的One-Hot向量进行叠加和正则化,然后拼接生成用户特征向量。由于数据集中涉及到的用户数量很多,若在路径预测时使用具体的用户来预测会使准确性降低,也会增加复杂度,并且不利于本发明所提出的预测模型的泛化,因此,基于这些原因和个性化推荐的需要要将一组相似的用户划分为一类原型用户,以表示用户的特征,所以根据每个用户的特征向量使用K-means算法将所有用户聚类为T类原型用户(经实验验证当T=80时,模型的效果最好)。
(4)树状路径构造
通过相应的APP的MD5码提取出相应的记录,为每个APP生成一个传播路径森林。在构建树状路径传播时,考虑时间的先后顺序对数据进行处理,具体步骤如下:
按照文件的名称将日志文件进行分组,将分组后的传输记录按照时间戳从小到大进行排序。初始化根节点列表和节点列表为空,输入排序后的日志文件并依次遍历每一条记录,在已知节点列表中搜索其发送方ID,如果发送方ID存在,则新建一个接收方节点并添加一条由发送方到接收方的边并将接收方节点ID添加至节点列表中。如果发送方ID不在节点列表中,则创建发送方节点和接收方节点,并添加一条发送方到接收方的边,并将发送方ID添加至根节点列表中,还要把接收方和发送方ID添加至节点列表中,最终根据日志文件生成树状传播路径。
(5)树状传输路径转化成序列路径
为了解决传播树的宽度和深度的不确定性,树状传输路径的每一层都增加了一个虚拟节点来表示当前层横向子节点拓展的结束。采用宽度优先(BFS)遍历传播树。具体步骤如下:
初始化队列Q和列表Sibling和ResultSet为空。遍历森林列表ForestArray,对于每一棵树T来说,首先将根节点T添加至列表Q中并开始循环遍历,每次依次从Q中取出一个节点node,然后遍历其孩子节点列表,将其每个孩子节点tnode添加至队列Q,并将(node,Sibiling,tnode)添加到ResultSet中。Sibiling保存了当前节点的兄弟节点,开始赋值为根节点T。每次循环中将当前节点更新为下一个节点的兄弟节点。在一个节点子节点遍历完毕后添加虚拟节点V-NODE。直至Q队列为空时停止遍历。
(6)构建LSTM模型进行树状路径预测
除了当前用户节点属性之外,历史传播路径在决定APP是否将被进一步传播以及如果是这样的情况下接下来应该传给谁扮演关键角色。这是一个递归问题,使用改进版的RNN——LSTM来训练模型,具体的步骤如下:
在某一时刻t,模型输入待预测节点的兄弟节点的特征向量和其父亲节点的特征向量拼接而成的向量xt,t时刻之前的历史细胞状态ct-1和其隐藏状态ht-1被在该时刻传递给LSTM中。虚拟节点的特征向量是随机的。输出ht和ct传播到下一个LSTM单元,输出的隐藏层变量通过一个全连接层以后,进入一个Sigmoid层,进行分类得到待预测的原型用户的类别。使用交叉熵损失函数来作为模型的训练目标并使用Adam进行梯度下降优化,多次迭代之后,模型的输出是转换为序列后的传播树。
其表示如下:
it=σ(W(i)xt+Uiht-1+b(i))
ft=σ(W(f)xt+Ufht-1+b(f))
ot=σ(W(o)xt+Uoht-1+b(o))
ct=it⊙σ(W(c)xt+Ucht-1+b(c))+ft⊙ct-1
ht=ot⊙tanh(ct)
其中,xt是当前时刻输入模型的兄弟节点和父亲节点拼接而成的向量,W(i),W(o),W(f),W(c)和b(i),b(o),b(f),b(c)代表需要被优化的权重矩阵和偏置向量,⊙表示元素乘法。it表示输入门向量,ot表示输出门向量,ft代表着遗忘门向量,ct代表记忆细胞,ht表示隐藏层状态,Uf,Ui,Uo,Uu表示前一时刻ht-1的权重矩阵。
(7)树状路径恢复
将经过LSTM模型转化成序列后的传播树T存储在列表Array,初始化根节点为T,初始化队列Q为空。对于每一棵树首先将根节点T添加至队列Q并开始循环遍历,依次从Q中取出一个节点node,遍历Array,将虚拟节点V-NODE之前的节点加入队列Q中,并依次添加node节点到这些节点的边,然后添加一个虚拟节点V-NODE并添加node节点到这个虚拟节点的边,直至Q队列为空时停止遍历。
对步骤(7)得到的每个APP的树状传播路径森林中出现较多的某类原型用户所代表的所有实际用户进行个性化推荐。
实施例3
本发明实施例提出一个在线下移动社交网络中内容传播预测模型有助于制定有效的个性化推荐方案。此外还可以减少网络中的资源浪费和设计有效的缓存策略。通过实验效果可以看出,在引入时间,地理位置,传输偏好和内容特征建立的线下移动社交网络的树状路径预测模型具有优秀的效果。
本发明使用mAPall,APterminal,mAPreal,准确度(Accuracy),Macro-F1和损失值(loss),平均绝对误差(MAE),加权树编辑距离(MWED)和树的原型用户平均覆盖率(MPCL)这9个评价指标对线下移动社交网络的树状路径预测的效果进行评估。
其中,mAPall是所有包括终端类的所有原型用户类别的平均精度均值,APterminal表示终端用户类的平均精度,mAPreal表示真实的80类原型用户的平均精度均值,准确度是预测正确的样本数占样本总数的比例,loss是交叉熵损失函数值,MAE是预测值和观测值之间绝对误差的平均值,WMED是指真实树和预测树的编辑距离与节点目的商,MPCL是每一层所含类别数占原类别数的比重的平均值。实验结果表明,较其他模型相比,本文提出的模型的性能最好。从而根据预测出的APP对应的树状传输路径森林找到偏好使用并传播该APP的用户原型,这些用户原型所代表的真实用户具有相似性并且均对该APP有潜在的兴趣,便可在制定个性化推荐时将该APP推荐给这些用户,这种方法更具有解释性并且推荐精度更高。
表1传播树生成精度
本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。