基于用户兴趣相似度的社交网络协作缓存方法及装置转让专利

申请号 : CN201710622358.1

文献号 : CN107404530B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张天魁朱光宇

申请人 : 北京邮电大学

摘要 :

本发明提供一种基于用户兴趣相似度的社交网络协作缓存方法及装置,包括:获取N个用户节点的兴趣偏好信息;根据N个用户节点的兴趣偏好信息对N个用户节点进行聚类得到L个用户簇;获取M个网络内容的流行度;统计N个用户节点的拓扑影响因子;根据缓存策略对经过N个用户节点的用于请求数据的兴趣包和兴趣包对应的数据包完成缓存操作,缓存策略包括:第一区域用于缓存用户节点请求过的网络内容,第二区域用于缓存社交网络中流行度最高的网络内容,第三区域用于以预设概率缓存途径用户节点的用户节点所在用户簇内其他用户节点请求的网络内容。本发明提供的基于用户兴趣相似度的社交网络协作缓存方法及装置提高了缓存命中率。

权利要求 :

1.一种基于用户兴趣相似度的社交网络协作缓存方法,其特征在于,包括:

根据社交网络内N个用户节点的内容请求历史,获取所述N个用户节点的兴趣偏好信息,所述兴趣偏好信息包括所述用户节点对M个网络内容的感兴趣程度,所述M和所述N为正整数;

根据所述N个用户节点的兴趣偏好信息对所述N个用户节点进行聚类得到L个用户簇,所述L为正整数;

获取所述M个网络内容的流行度,所述流行度包括所述N个用户节点对所述网络内容的感兴趣程度;

统计所述N个用户节点的拓扑影响因子,所述拓扑影响因子包括所述用户节点到所述用户节点所在用户簇内其他用户节点距离倒数的和;

根据缓存策略对经过所述N个用户节点的用于请求数据的兴趣包和所述兴趣包对应的数据包完成缓存操作,所述缓存策略包括:每个所述用户节点的缓存空间划分为三个区域:第一区域、第二区域和第三区域;所述第一区域用于缓存所述用户节点请求过的网络内容,所述第二区域用于缓存所述社交网络中流行度最高的网络内容,所述第三区域用于以预设概率缓存途径所述用户节点的所述用户节点所在用户簇内其他用户节点请求的网络内容;

所述兴趣包中包括:发送所述兴趣包的用户节点所在用户簇的编号、所述兴趣包途经过节点的拓扑影响因子之和以及发送所述兴趣包的用户节点的拓扑影响因子;所述兴趣包到达所述数据包所在的命中节点后,将所述用户簇的编号、所述兴趣包途经过节点的拓扑影响因子之和传递给所述数据包;

所述根据缓存策略对经过所述N个用户节点的用于请求数据的兴趣包和所述兴趣包对应的数据包完成缓存操作,包括:当所述兴趣包沿着沿途节点的路径广播时,所述路径上的用户节点根据所述兴趣包携带的发送所述兴趣包的用户节点所在用户簇的编号和所述兴趣包途经过节点的拓扑影响因子之和以及发送所述兴趣包的用户节点的拓扑影响因子,对所述兴趣包进行缓存判决;

当所述兴趣包对应的数据包沿反向路径回传时,所述反向路径上与发送所述兴趣包的用户节点处在同一用户簇的用户节点,根据所述数据包携带的发送所述兴趣包的用户节点所在用户簇的编号和所述兴趣包途经过节点的拓扑影响因子之和以及所述命中节点的拓扑影响因子,对所述数据包进行缓存判决;

所述对所述兴趣包进行缓存判决包括:

步骤A:根据所述用户簇的编号判断所述兴趣包请求的网络内容是所述用户簇感兴趣的内容,则从兴趣包中获取所述兴趣包途经过节点的拓扑影响因子之和,再加入自身用户节点的影响因子,得到新的兴趣包途经过节点的拓扑影响因子之和,写入所述兴趣包并转发所述兴趣包;

步骤B:判断所述兴趣包是否命中,若命中,对比发送所述兴趣包的用户节点与自身用户节点的拓扑影响因子大小,并将比较结果写入所述兴趣包;

所述对所述数据包进行缓存判决包括:

步骤C:判断所述数据包是否为所述用户节点所在用户簇感兴趣的内容,若否则直接转发,若是则执行步骤D;

步骤D:判断所述数据包是否为所述用户节点请求的,若是则对比发送所述兴趣包的用户节点与自身用户节点的拓扑影响因子大小,如果自身用户节点的拓扑影响因子大,则将所述数据包存储在所述第一区域;若自身用户节点的拓扑影响因子小,则执行步骤E;

步骤E:判断所述数据包的内容是否为前Q个最流行的内容,若是则将所述数据包存储在所述第二区域;若不是则以自身用户节点的拓扑影响因子与所述兴趣包途经过节点的拓扑影响因子之和的比值为概率存储所述数据包至所述第三区域。

2.根据权利要求1所述的方法,其特征在于,所述根据所述N个用户节点的兴趣偏好信息对所述N个用户节点进行聚类得到L个用户簇包括:根据所述N个用户节点的兴趣偏好信息通过二分网对N个所述用户节点进行兴趣聚类得到L个用户簇,所述二分网的第一侧为所述N个用户节点,所述二分网的第二侧为所述M个网络内容。

3.一种基于用户兴趣相似度的社交网络协作缓存装置,其特征在于,包括:

兴趣偏好信息获取模块,所述兴趣偏好信息获取模块用于根据社交网络内N个用户节点的内容请求历史,获取所述N个用户节点的兴趣偏好信息,所述兴趣偏好信息包括所述用户节点对M个网络内容的感兴趣程度,所述M和所述N为正整数;

聚类模块,所述聚类模块用于根据所述N个用户节点的兴趣偏好信息对所述N个用户节点进行聚类得到L个用户簇,所述L为正整数;

流行度获取模块,所述流行度获取模块用于获取所述M个网络内容的流行度,所述流行度包括所述N个用户节点对所述网络内容的感兴趣程度;

统计模块,所述统计模块用于统计所述N个用户节点的拓扑影响因子,所述拓扑影响因子包括所述用户节点到所述用户节点所在用户簇内其他用户节点距离倒数的和;

缓存模块,所述缓存模块用于根据缓存策略对经过所述N个用户节点的用于请求数据的兴趣包和所述兴趣包对应的数据包完成缓存操作,所述缓存策略包括:每个所述用户节点的缓存空间划分为三个区域:第一区域、第二区域和第三区域;所述第一区域用于缓存所述用户节点请求过的网络内容,所述第二区域用于缓存所述社交网络中流行度最高的网络内容,所述第三区域用于以预设概率缓存途径所述用户节点的所述用户节点所在用户簇内其他用户节点请求的网络内容;

所述兴趣包中包括:发送所述兴趣包的用户节点所在用户簇的编号、所述兴趣包途经过节点的拓扑影响因子之和以及发送所述兴趣包的用户节点的拓扑影响因子;所述兴趣包到达所述数据包所在的命中节点后,将所述用户簇的编号、所述兴趣包途经过节点的拓扑影响因子之和传递给所述数据包;

所述缓存模块具体用于:当所述兴趣包沿着沿途节点的路径广播时,所述路径上的用户节点根据所述兴趣包携带的发送所述兴趣包的用户节点所在用户簇的编号和所述兴趣包途经过节点的拓扑影响因子之和以及发送所述兴趣包的用户节点的拓扑影响因子,对所述兴趣包进行缓存判决;

当所述兴趣包对应的数据包沿反向路径回传时,所述反向路径上与发送所述兴趣包的用户节点处在同一用户簇的用户节点,根据所述数据包携带的发送所述兴趣包的用户节点所在用户簇的编号和所述兴趣包途经过节点的拓扑影响因子之和以及所述命中节点的拓扑影响因子,对所述数据包进行缓存判决;

所述对所述兴趣包进行缓存判决包括:

步骤A:根据所述用户簇的编号判断所述兴趣包请求的网络内容是所述用户簇感兴趣的内容,则从兴趣包中获取所述兴趣包途经过节点的拓扑影响因子之和,再加入自身用户节点的影响因子,得到新的兴趣包途经过节点的拓扑影响因子之和,写入所述兴趣包并转发所述兴趣包;

步骤B:判断所述兴趣包是否命中,若命中,对比发送所述兴趣包的用户节点与自身用户节点的拓扑影响因子大小,并将比较结果写入所述兴趣包;

所述对所述数据包进行缓存判决包括:

步骤C:判断所述数据包是否为所述用户节点所在用户簇感兴趣的内容,若否则直接转发,若是则执行步骤D;

步骤D:判断所述数据包是否为所述用户节点请求的,若是则对比发送所述兴趣包的用户节点与自身用户节点的拓扑影响因子大小,如果自身用户节点的拓扑影响因子大,则将所述数据包存储在所述第一区域;若自身用户节点的拓扑影响因子小,则执行步骤E;

步骤E:判断所述数据包的内容是否为前Q个最流行的内容,若是则将所述数据包存储在所述第二区域;若不是则以自身用户节点的拓扑影响因子与所述兴趣包途经过节点的拓扑影响因子之和的比值为概率存储所述数据包至所述第三区域。

4.根据权利要求3所述装置,其特征在于,所述聚类模块具体用于,

根据所述N个用户节点的兴趣偏好信息通过二分网对N个所述用户节点进行兴趣聚类得到L个用户簇,所述二分网的第一侧为所述N个用户节点,所述二分网的第二侧为所述M个网络内容。

说明书 :

基于用户兴趣相似度的社交网络协作缓存方法及装置

技术领域

[0001] 本发明涉及计算机网络技术,尤其涉及一种基于用户兴趣相似度的社交网络协作缓存方法及装置。

背景技术

[0002] 社交无线网络是由大量无线智能设备组成的网络,是由智能手机、平板电脑或者电子书阅读器等电子通信设备在物理上聚集形成了具备一定特点的网络,社交无线网络内的成员具有相似或相同的网络内容需求。随着智能终端设备的迅猛发展以及大量终端应用的开发使用,用户对数据的需求越来越大,也导致了网络流量的迅速增长。社交网络的用户对数据的需求经常大于社交网络所提供的有限带宽,因此,如何通过内容共享提高网络内容分发的效率成为社交网络中急需解决的问题。
[0003] 现有技术中通过基于用户兴趣的缓存策略,获取社交网络内每个成员自身的兴趣特点,增大每名用户自身感兴趣内容的缓存可能性,提高缓存命中率以减少网络开销。
[0004] 采用现有技术,由于社交网络中每个电子通信设备的缓存空间都是有限的,当用户感兴趣的内容数量大于该电子通信设备缓存空间大小时,缓存的命中率不高。

发明内容

[0005] 本发明提供一种基于用户兴趣相似度的社交网络协作缓存方法及装置,提高了缓存的命中率。
[0006] 本发明提供一种基于用户兴趣相似度的社交网络协作缓存方法,包括:
[0007] 根据社交网络内N个用户节点的内容请求历史,获取所述N个用户节点的兴趣偏好信息,所述兴趣偏好信息包括所述用户节点对M个网络内容的感兴趣程度,所述M和所述N为正整数;
[0008] 根据所述N个用户节点的兴趣偏好信息对所述N个用户节点进行聚类得到L个用户簇,所述L为正整数;
[0009] 获取所述M个网络内容的流行度,所述流行度包括所述N个用户节点对所述网络内容的感兴趣程度;
[0010] 统计所述N个用户节点的拓扑影响因子,所述拓扑影响因子包括所述用户节点到所述用户节点所在用户簇内其他用户节点距离倒数的和;
[0011] 根据缓存策略对经过所述N个用户节点的用于请求数据的兴趣包和所述兴趣包对应的数据包完成缓存操作,所述缓存策略包括:
[0012] 每个所述用户节点的缓存空间划分为三个区域:第一区域、第二区域和第三区域;所述第一区域用于缓存所述用户节点请求过的网络内容,所述第二区域用于缓存所述社交网络中流行度最高的网络内容,所述第三区域用于以预设概率缓存途径所述用户节点的所述用户节点所在用户簇内其他用户节点请求的网络内容。
[0013] 在本发明一实施例中,所述兴趣包中包括:发送所述兴趣包的用户节点所在用户簇的编号、发送所述兴趣包的用户节点的拓扑影响因子和所述兴趣包途经过节点的拓扑影响因子之和;所述兴趣包到达所述数据包所在的命中节点后,将所述用户簇的编号、所述兴趣包途经过节点的拓扑影响因子传递给所述数据包;
[0014] 所述根据缓存策略对经过所述N个用户节点的所述用户节点发送的用于请求数据的兴趣包和所述兴趣包对应的数据包完成缓存操作,包括:
[0015] 当所述兴趣包沿着沿途节点的路径广播时,所述路径上的用户节点根据所述兴趣包携带的发送所述兴趣包的用户节点所在用户簇的编号和所述兴趣包途经过节点的拓扑影响因子之和以及发送所述兴趣包的用户节点的拓扑影响因子,对所述兴趣包进行缓存判决;
[0016] 当所述兴趣包对应的数据包沿反向路径回传时,所述反向路径上与发送所述兴趣包的用户节点处在同一用户簇的用户节点,根据所述数据包携带的发送所述兴趣包的用户节点所在用户簇的编号和所述兴趣包途经过节点的拓扑影响因子之和以及所述命中节点的拓扑影响因子,对所述数据包进行缓存判决。
[0017] 在本发明一实施例中,所述对所述兴趣包进行缓存判决包括:
[0018] 步骤A:根据所述用户簇的编号判断所述兴趣包请求的网络内容是所述用户簇感兴趣的内容,则从兴趣包中获取所述兴趣包途经过节点的拓扑影响因子之和,再加入自身用户节点的影响因子,得到新的兴趣包途经过节点的拓扑影响因子之和,写入所述兴趣包并转发所述兴趣包;
[0019] 步骤B:判断所述兴趣包是否命中,若命中,对比发送所述兴趣包的用户节点与自身用户节点的拓扑影响因子大小,并将比较结果写入所述兴趣包;
[0020] 所述对所述数据包进行缓存判决包括:
[0021] 步骤C:判断所述数据包是否为所述用户节点所在用户簇感兴趣的内容,若否则直接转发,若是则执行步骤D;
[0022] 步骤D:判断所述数据包是否为所述用户节点请求的,若是则对比发送所述兴趣包的用户节点与自身用户节点的拓扑影响因子大小,如果自身用户节点的拓扑影响因子大,则将所述数据包存储在所述第一区域;若自身用户节点的拓扑影响因子小,则执行步骤E;
[0023] 步骤E:判断所述数据包的内容是否数据前Q个最流行的内容,若是则将所述数据包存储在所述第二区域;若不是则以自身用户节点的拓扑影响因子与所述兴趣包途经过节点的拓扑影响因子之和的比值为概率存储所述数据包至所述第三区域。
[0024] 在本发明一实施例中,所述根据所述N个用户节点的兴趣偏好信息对所述N个用户节点进行聚类得到L个用户簇包括:
[0025] 根据所述N个用户节点的兴趣偏好信息通过二分网对N个所述用户节点进行兴趣聚类得到L个用户簇,所述二分网的第一侧为所述N个用户节点,所述二分网的第二侧为所述M个网络内容。
[0026] 本发明提供一种基于用户兴趣相似度的社交网络协作缓存装置,包括:
[0027] 兴趣偏好信息获取模块,所述兴趣偏好信息获取模块用于根据社交网络内N个用户节点的内容请求历史,获取所述N个用户节点的兴趣偏好信息,所述兴趣偏好信息包括所述用户节点对M个网络内容的感兴趣程度,所述M和所述N为正整数;
[0028] 聚类模块,所述聚类模块用于根据所述N个用户节点的兴趣偏好信息对所述N个用户节点进行聚类得到L个用户簇,所述L为正整数;
[0029] 流行度获取模块,所述流行度获取模块用于获取所述M个网络内容的流行度,所述流行度包括所述N个用户节点对所述网络内容的感兴趣程度;
[0030] 统计模块,所述统计模块用于统计所述N个用户节点的拓扑影响因子,所述拓扑影响因子包括所述用户节点到所述用户节点所在用户簇内其他用户节点距离倒数的和;
[0031] 缓存模块,所述缓存模块用于根据缓存策略对经过所述N个用户节点的用于请求数据的兴趣包和所述兴趣包对应的数据包完成缓存操作,所述缓存策略包括:
[0032] 每个所述用户节点的缓存空间划分为三个区域:第一区域、第二区域和第三区域;所述第一区域用于缓存所述用户节点请求过的网络内容,所述第二区域用于缓存所述社交网络中流行度最高的网络内容,所述第三区域用于以预设概率缓存途径所述用户节点的所述用户节点所在用户簇内其他用户节点请求的网络内容。
[0033] 在本发明一实施例中,所述兴趣包中包括:发送所述兴趣包的用户节点所在用户簇的编号、发送所述兴趣包的用户节点的拓扑影响因子和所述兴趣包途经过节点的拓扑影响因子之和;所述兴趣包到达所述数据包所在的命中节点后,将所述用户簇的编号、所述兴趣包途经过节点的拓扑影响因子传递给所述数据包;
[0034] 所述缓存模块具体用于:当所述兴趣包沿着沿途节点的路径广播时,所述路径上的用户节点根据所述兴趣包携带的发送所述兴趣包的用户节点所在用户簇的编号和所述兴趣包途经过节点的拓扑影响因子之和以及发送所述兴趣包的用户节点的拓扑影响因子,对所述兴趣包进行缓存判决;
[0035] 当所述兴趣包对应的数据包沿反向路径回传时,所述反向路径上与发送所述兴趣包的用户节点处在同一用户簇的用户节点,根据所述数据包携带的发送所述兴趣包的用户节点所在用户簇的编号和所述兴趣包途经过节点的拓扑影响因子之和以及所述命中节点的拓扑影响因子,对所述数据包进行缓存判决。
[0036] 在本发明一实施例中,所述对所述兴趣包进行缓存判决包括:
[0037] 步骤A:根据所述用户簇的编号判断所述兴趣包请求的网络内容是所述用户簇感兴趣的内容,则从兴趣包中获取所述兴趣包途经过节点的拓扑影响因子之和,再加入自身用户节点的影响因子,得到新的兴趣包途经过节点的拓扑影响因子之和,写入所述兴趣包并转发所述兴趣包;
[0038] 步骤B:判断所述兴趣包是否命中,若命中,对比发送所述兴趣包的用户节点与自身用户节点的拓扑影响因子大小,并将比较结果写入所述兴趣包;
[0039] 所述对所述数据包进行缓存判决包括:
[0040] 步骤C:判断所述数据包是否为所述用户节点所在用户簇感兴趣的内容,若否则直接转发,若是则执行步骤D;
[0041] 步骤D:判断所述数据包是否为所述用户节点请求的,若是则对比发送所述兴趣包的用户节点与自身用户节点的拓扑影响因子大小,如果自身用户节点的拓扑影响因子大,则将所述数据包存储在所述第一区域;若自身用户节点的拓扑影响因子小,则执行步骤E;
[0042] 步骤E:判断所述数据包的内容是否数据前Q个最流行的内容,若是则将所述数据包存储在所述第二区域;若不是则以自身用户节点的拓扑影响因子与所述兴趣包途经过节点的拓扑影响因子之和的比值为概率存储所述数据包至所述第三区域。
[0043] 在本发明一实施例中,所述聚类模块具体用于,
[0044] 根据所述N个用户节点的兴趣偏好信息通过二分网对N个所述用户节点进行兴趣聚类得到L个用户簇,所述二分网的第一侧为所述N个用户节点,所述二分网的第二侧为所述M个网络内容。
[0045] 本发明提供一种基于用户兴趣相似度的社交网络协作缓存方法及装置,其中方法包括:根据社交网络内N个用户节点的内容请求历史,获取N个用户节点的兴趣偏好信息,兴趣偏好信息包括用户节点对M个网络内容的感兴趣程度,M和N为正整数;根据N个用户节点的兴趣偏好信息对N个用户节点进行聚类得到L个用户簇,L为正整数;获取M个网络内容的流行度,流行度包括N个用户节点对网络内容的感兴趣程度;统计N个用户节点的拓扑影响因子,拓扑影响因子包括用户节点到用户节点所在用户簇内其他用户节点距离倒数的和;根据缓存策略对经过N个用户节点的用于请求数据的兴趣包和兴趣包对应的数据包完成缓存操作。本发明提供的基于用户兴趣相似度的社交网络协作缓存方法及装置能够根据用户的兴趣分布,将社交网络中的用户聚类,并利用内容中心网络内的缓存技术,使相似兴趣的用户共享缓存空间资源,存储更多的互不相同却都感兴趣的内容,以减少缓存内容副本的冗余,达到提高社交网络内缓存空间利用率,降低网络内容获取时延的效果,并提高了缓存命中率。

附图说明

[0046] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0047] 图1为本发明基于用户兴趣相似度的社交网络协作缓存方法实施例的流程示意图;
[0048] 图2为本发明用户-内容二分网实施例的结构示意图;
[0049] 图3为本发明用户-内容二分网兴趣向下映射实施例的示意图;
[0050] 图4为本发明用户-内容二分网兴趣向上映射实施例的示意图;
[0051] 图5为本发明兴趣包处理方法实施例的流程示意图;
[0052] 图6为本发明数据包处理方法实施例的流程示意图;
[0053] 图7为本发明基于用户兴趣相似度的社交网络协作缓存装置实施例的结构示意图。

具体实施方式

[0054] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0055] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0056] 下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0057] 图1为本发明基于用户兴趣相似度的社交网络协作缓存方法实施例的流程示意图。本实施例的执行主体可以是社交网络中的网络控制节点或中央控制单元等,能够对所有用户节点进行管理控制的节点或装置。如图1所示,本实施例方法包括如下步骤:
[0058] S101:根据社交网络内N个用户节点的内容请求历史,获取N个用户节点的兴趣偏好信息,兴趣偏好信息包括用户节点对M个网络内容的感兴趣程度,M和N为正整数。
[0059] 具体地,社交网络内包括N个用户节点,每个用户节点根据用户的需要向社交网络其他用户节点请求感兴趣的数据内容,每个用户节点都会存储该用户节点所有请求过的内容。则在S101中,每个用户节点根据存储的该用户节点的内容请求历史,得到该用户节点的兴趣偏好信息。例如:S101中社交网络的管理控制装置为网络控制单元,则在S101中,网络控制单元获取所有用户节点统计的兴趣偏好信息。兴趣偏好信息包括该用户节点对M个网络内容的感兴趣程度,其中感兴趣程度可通过用户对网络内容的访问次数或频率来确定。例如:某用户节点的内容历史请求中,三分之二的内容历史请求都用于请求当天股票相关的网络内容,其他三分之一的内容历史请求用于请求当天新闻相关的网络内容,则确定该用户节点对股票的网络内容感兴趣程度为三分之一,用户节点的兴趣偏好信息为对股票的感兴趣程度为三分之二。
[0060] S102:根据N个用户节点的兴趣偏好信息对N个用户节点进行聚类得到L个用户簇,L为正整数。
[0061] 具体地,根据S101中的到的N个用户节点的兴趣偏好信息对N个用户节点进行聚类,按照用户节点不同的兴趣偏好信息将用户节点聚类为L个用户簇。L为小于等于N的正整数。用户间的兴趣距离越小,说明他们的兴趣靠的越近,兴趣相似度就高,有更大的几率聚类在一个用户簇内。例如:社交网络中包括了3个用户,其中两人对股票内容感兴趣,一人对新闻内容感兴趣,则根据3人感兴趣的内容聚类得到两个用户簇,股票用户簇和新闻用户簇。
[0062] 可选地,在S102中,根据N个用户节点的兴趣偏好信息对N个用户节点进行聚类得到L个用户簇具体可包括:根据N个用户节点的兴趣偏好信息通过二分网对N个用户节点进行兴趣聚类得到L个用户簇,二分网的第一侧为N个用户节点,二分网的第二侧为M个网络内容。
[0063] 具体地,图2为本发明用户-内容二分网实施例的结构示意图。如图2所示,图2通过用户-内容二分网获取用户节点间的兴趣偏好信息。二分网是用于反应活动参与者与活动之间关系的网络。如图2中二分网的一侧为三名用户节点u1、u2和u3,二分网的另一侧为四个网络内容v1、v2、v3和v4,用户的兴趣量通过x1,x2和x3标识。它们之间的连线以及连线的加权值表示用户对该内容的感兴趣程度。例如下图中,用户u1对内容v2、v3感兴趣,并且对v2的感兴趣程度是x1/3,对v3的感兴趣程度是2x1/3。
[0064] 图3为本发明用户-内容二分网兴趣向下映射实施例的示意图。图4为本发明用户-内容二分网兴趣向上映射实施例的示意图。如图3和图4所示,本实施例中通过用户-内容二分网中两侧的兴趣映射过程,实现用户兴趣相似度的计算。如图3所示,每个用户的兴趣量x1,x2,x3将被向下加权映。例如,内容v1在向下加权映射后将得到0·x1+x2/4+3x3/5的兴趣量,简记为(0,1/4,3/5)。如图4所示,每个兴趣以同样的归一化后的权重比例映射到二分网上方。经过图3和图4的映射过程后,根据图中权重整理得到二分网完整映射后的兴趣量分布,
[0065]
[0066] 在上述分布基础上,一般地,设二分网存在n个用户,m个内容,则用户-内容之间的兴趣映射过程可表达为:
[0067] x′=T·x
[0068] 其中, T=[tij]n×n为兴趣映射矩阵。
[0069] 设用户对内容的分布矩阵为:
[0070]
[0071] 其中,兴趣分布矩阵的列向量和为一,即用户对不同内容的感兴趣程度之和为1。
[0072] 设矩阵D的第r行的行向量dr=D(r,:),那么兴趣映射矩阵T的计算可以由下式计算出:
[0073]
[0074] 其中,T为对称矩阵。由于兴趣在分配前后应保持不变,令
[0075] x′=T·x=x
[0076]
[0077] 移项后得到
[0078]
[0079] 则在包括n个用户节点和m个内容的网络中,定义有限维矩阵S为用户兴趣相似度矩阵,S中的sij用来描述用户ui与用户uj之间的用户兴趣相似度:
[0080]
[0081] 定义矩阵G为用户兴趣距离矩阵,gij用来描述用户i与用户j之间在兴趣拓扑上相互间的距离:
[0082]
[0083] 一种可选的聚类方式为,根据得到的兴趣距离矩阵G,结合K-Medoids算法对用户进行聚类。其中,K-Medoids算法包括以下步骤:
[0084] 步骤1、在n个用户中,随机选择k个用户作为初始的簇中心。
[0085] 步骤2、选取一个未分簇的用户,由兴趣距离矩阵找出距该用户最近的簇中心,然后将该用户加入该簇。
[0086] 步骤3、更新这个改动过的簇的簇中心,使簇内用户到新的簇中心的距离的和最小。
[0087] 步骤4,直至所有用户都被分簇完毕时继续至步骤5。
[0088] 步骤5、遍历想要分簇的簇数目的可能值(改变k值)返回步骤1,直至簇中心间距离和与k个簇内距离中心的距离和的和的比值足够小,完成用户聚类。
[0089] S103:获取M个网络内容的流行度,流行度包括N个用户节点对网络内容的感兴趣程度。
[0090] 具体地,网络内容的流行度关注网络内容角度的流行程度,每个网络内容的流行程度通过社交网络内用户节点对该内容的感兴趣程度来体现。例如:根据S101中获取的兴趣分布矩阵D统计内容的流行程度,即内容yr的流行度为D矩阵第r行行向量dr各个分量的和,即每个用户ur对内容yr感兴趣程度的和,r=1,...m。
[0091] S104:统计N个用户节点的拓扑影响因子,拓扑影响因子包括用户节点到用户节点所在用户簇内其他用户节点距离倒数的和。
[0092] S105:根据缓存策略对经过N个用户节点的用于请求数据的兴趣包和兴趣包对应的数据包完成缓存操作。
[0093] 其中,兴趣包中包括:发送兴趣包的用户节点所在用户簇的编号、发送兴趣包的用户节点的拓扑影响因子和兴趣包途经过节点的拓扑影响因子之和;兴趣包到达数据包所在的命中节点后,将用户簇的编号、兴趣包途经过节点的拓扑影响因子传递给数据包;则当兴趣包沿着沿途节点的路径广播时,路径上的用户节点根据兴趣包携带的发送兴趣包的用户节点所在用户簇的编号和兴趣包途经过节点的拓扑影响因子之和以及发送兴趣包的用户节点的拓扑影响因子,对兴趣包进行缓存判决;
[0094] 当兴趣包对应的数据包沿反向路径回传时,反向路径上与发送兴趣包的用户节点处在同一用户簇的用户节点,根据数据包携带的发送兴趣包的用户节点所在用户簇的编号和兴趣包途经过节点的拓扑影响因子之和以及命中节点的拓扑影响因子,对数据包进行缓存判决。
[0095] 缓存策略可以包括:每个用户节点的缓存空间划分为三个区域:第一区域、第二区域和第三区域;第一区域用于缓存用户节点请求过的网络内容,第二区域用于缓存社交网络中流行度最高的网络内容,第三区域用于以预设概率缓存途径用户节点的用户节点所在用户簇内其他用户节点请求的网络内容。具体地,记第一区域为A区域,第二区域为B区域,第三区域为C区域。则:
[0096] A区域将缓存用户节点自身请求的内容或感兴趣的内容,并且同一簇内不同用户节点的A区域将存储互不相同的内容。当出现第二个用户节点请求用户簇内已被缓存的内容时,二者中更接近用户簇的簇中心的用户节点将缓存此内容。这是为了使内容将更容易被获取。
[0097] 本实施例中通过应用于A区的一种内容转移机制实现A区域的缓存。首先,计算用户簇内每个用户节点的拓扑影响因子,即该节点到各个簇内节点的距离的倒数的和。随后,当请求用户广播兴趣包时,兴趣包将携带该拓扑影响因子。当兴趣包到达命中节点后,命中节点将首先判断缓存的内容是否在自己的A区域。若不在,则直接提供内容并在相应字段写入0。若在,接着对比自己与请求节点的拓扑影响因子大小。若命中节点自己的拓扑影响因子更大,那么它将在数据包中加入自己的拓扑影响因子。若命中节点的拓扑影响因子较小或相等,它将在数据包相应字段写入0,并将此内容移出命中节点自己的A区域转入C区域。当请求节点收到数据包后,它将对比数据包传过来的拓扑影响因子字段,并获知能否将内容存下在A区域。
[0098] B区域将用来存储社交网络的用户簇内的前q个流行度最高的网络内容。首先网络控制节点将内容依据统计出来的流行度从大到小排序,并根据节点缓存空间大小CS0和节点感兴趣的内容总数I0,取前q=λ·CS0个最流行的内容作为被允许存在B区域的内容,其中比例系数λ=CS0/I0。也即B区域最多存储 个内容。不同用户节点的B区域可能会存储相同的最流行的内容。
[0099] C区域将用于概率缓存路过的用户簇内其他节点请求的内容。概率缓存的概率由拓扑影响因子决定。兴趣包将对所有路径节点的拓扑影响因子求和并传递给数据包。当数据包返回时,途中节点将计算各自的缓存概率Pr=自身拓扑影响因子/拓扑影响因子和。C区域默认使用的最近最少使用算法(Least Recently used,简称:LRU)找出被替换的内容。
[0100] 可选地,A,B,C个区域的大小是动态变化的。网络开始运行后,节点的缓存空间逐渐被缓存的内容占满。缓存空间中的A、B、C区域以不确定的比例存在,而大部分的内容将会是C区域的内容,即路过该节点的内容。在此之后,节点自身的请求行为将可能导致A区域扩张,路过的最流行的那部分内容将导致B区域扩张。缓存空间满之后再存储在A、B区域的内容将替换C区域的内容。这意味着,当该节点的拓扑影响因子很大,且该节点请求很多感兴趣的内容时,C区域有可能被A区域完全挤占。节点缓存空间分配所有的可能性如下:C、C+B、C+B+A、B+A、C+A、A。
[0101] 可选地,上述实施例中的社交网络为内容中心网络(Content Centric Networking,CCN)。其中,在CCN网络中,当节点接收到一个表示数据内容请求的兴趣包时,首先根据兴趣包内容名字查询内容缓存(Content Store,CS),如果缓存中有被请求的内容,则响应该请求;如果CS中没有被请求的内容,则查找待定兴趣表(Pending Interest Table,PIT),如果PIT中有该内容名字条目,则在该内容名字条目中增加兴趣包进来的接口,并丢弃该兴趣包;如果PIT中没有该内容名字条目,则查找转发信息表(Forwarding Information Base,FIB),如果在FIB中找到,则按照查找到的所有接口转发兴趣包,并在PIT中记录。如果FIB中也没有该内容名字条目,则丢弃该兴趣包。当节点接收到一个数据包时,根据数据包的内容名字,首先在CS中查找,如果有则丢弃该数据包;否则在PIT中查找,如果有则根据查找到的接口转发出去,然后按一定规则将数据包缓存在内容缓存中;如果在PIT中没有匹配,则丢弃该数据包。
[0102] 具体地,在上述实施例中,对兴趣包进行缓存判决包括:
[0103] 步骤A:根据用户簇的编号判断兴趣包请求的网络内容是用户簇感兴趣的内容,则从兴趣包中获取兴趣包途经过节点的拓扑影响因子之和,再加入自身用户节点的影响因子,得到新的兴趣包途经过节点的拓扑影响因子之和,写入兴趣包并转发兴趣包;
[0104] 步骤B:判断兴趣包是否命中,若命中,对比发送兴趣包的用户节点与自身用户节点的拓扑影响因子大小,并将比较结果写入兴趣包;
[0105] 具体地,图5为本发明兴趣包处理方法实施例的流程示意图;如图5所示,兴趣包将额外携带的信息有:簇编号、途径节点的拓扑影响因子的和(和的初始值是请求者的拓扑影响因子)、请求者自己的拓扑影响因子。广播出去的兴趣包将携带这些信息寻找内容提供者。当兴趣包到来时,当前节点根据簇编号判断兴趣包请求的是否是簇内的感兴趣的内容。如果是感兴趣的内容,当前节点读出影响因子和并加上自己的影响因子,再写入到兴趣包,再转发。当前节点判断是否命中,若命中,对比请求者和自己的拓扑影响因子大小,并将比较结果写入数据包(如果命中节点自己的大,则写入自己的拓扑影响因子;如果命中节点自己的小或相等,则写入0)。
[0106] 对数据包进行缓存判决包括:
[0107] 步骤C:判断数据包是否为用户节点所在用户簇感兴趣的内容,若否则直接转发,若是则执行步骤D;
[0108] 步骤D:判断数据包是否为用户节点请求的,若是则对比发送兴趣包的用户节点与自身用户节点的拓扑影响因子大小,如果自身用户节点的拓扑影响因子大,则将数据包存储在第一区域;若自身用户节点的拓扑影响因子小,则执行步骤E;
[0109] 步骤E:判断数据包的内容是否数据前Q个最流行的内容,若是则将数据包存储在第二区域;若不是则以自身用户节点的拓扑影响因子与兴趣包途经过节点的拓扑影响因子之和的比值为概率存储数据包至第三区域。其中,Q为小于M的正整数。
[0110] 具体地,图6为本发明数据包处理方法实施例的流程示意图;如图6所示,数据包将携带的额外信息有簇编号、途径节点的拓扑影响因子的和、命中节点拓扑影响因子反馈。当数据包返回时,沿途节点将判断存或不存。当前节点首先判断数据包是否是同簇感兴趣的。若否,则直接转发。若是,进入下一步。当前节点接着判断数据包是否是自己请求的。若是,当前节点对比提供者拓扑影响因子反馈与自身的拓扑影响因子,如果自己的大就存于A区域然后接收数据并在需要时转发;如果自己的小则进入下一步;当前节点判断内容是否属于前q个最流行的内容。如果是,则存于B区域,之后接收数据或转发;如果不是,则以自身影响因子与路径影响因子和的比值为概率,对内容进行概率缓存,存于C区域。
[0111] 本实施例提供的基于用户兴趣相似度的社交网络协作缓存方法,能够根据用户的兴趣分布,将社交网络中的用户聚类,并利用内容中心网络内的缓存技术,使相似兴趣的用户共享缓存空间资源,存储更多的互不相同却都感兴趣的内容,以减少缓存内容副本的冗余,达到提高社交网络内缓存空间利用率,降低网络内容获取时延的效果,并提高了缓存命中率。
[0112] 图7为本发明基于用户兴趣相似度的社交网络协作缓存装置实施例的结构示意图。如图7所示,本实施例装置包括:兴趣偏好信息获取模块701、聚类模块702、流行度获取模块703、统计模块704和缓存模块705。其中,兴趣偏好信息获取模块701用于根据社交网络内N个用户节点的内容请求历史,获取N个用户节点的兴趣偏好信息,兴趣偏好信息包括用户节点对M个网络内容的感兴趣程度,M和N为正整数;聚类模块702用于根据N个用户节点的兴趣偏好信息对N个用户节点进行聚类得到L个用户簇,L为正整数;流行度获取模块703用于获取M个网络内容的流行度,流行度包括N个用户节点对网络内容的感兴趣程度;统计模块704用于统计N个用户节点的拓扑影响因子,拓扑影响因子包括用户节点到用户节点所在用户簇内其他用户节点距离倒数的和;缓存模块705用于根据缓存策略对经过N个用户节点的用于请求数据的兴趣包和兴趣包对应的数据包完成缓存操作。其中,缓存策略包括:每个用户节点的缓存空间划分为三个区域:第一区域、第二区域和第三区域;第一区域用于缓存用户节点请求过的网络内容,第二区域用于缓存社交网络中流行度最高的网络内容,第三区域用于以预设概率缓存途径用户节点的用户节点所在用户簇内其他用户节点请求的网络内容。
[0113] 本实施例提供的装置,用于执行图1所示实施例中的方法,其具有相同的技术特征和技术效果,在此不再赘述。
[0114] 兴趣包中包括:发送兴趣包的用户节点所在用户簇的编号、发送兴趣包的用户节点的拓扑影响因子和兴趣包途经过节点的拓扑影响因子之和;兴趣包到达数据包所在的命中节点后,将用户簇的编号、兴趣包途经过节点的拓扑影响因子传递给数据包;
[0115] 缓存模块具体用于:当兴趣包沿着沿途节点的路径广播时,路径上的用户节点根据兴趣包携带的发送兴趣包的用户节点所在用户簇的编号和兴趣包途经过节点的拓扑影响因子之和以及发送兴趣包的用户节点的拓扑影响因子,对兴趣包进行缓存判决;
[0116] 当兴趣包对应的数据包沿反向路径回传时,反向路径上与发送兴趣包的用户节点处在同一用户簇的用户节点,根据数据包携带的发送兴趣包的用户节点所在用户簇的编号和兴趣包途经过节点的拓扑影响因子之和以及命中节点的拓扑影响因子,对数据包进行缓存判决。
[0117] 可选地,上述实施例中,
[0118] 对兴趣包进行缓存判决包括:
[0119] 步骤A:根据用户簇的编号判断兴趣包请求的网络内容是用户簇感兴趣的内容,则从兴趣包中获取兴趣包途经过节点的拓扑影响因子之和,再加入自身用户节点的影响因子,得到新的兴趣包途经过节点的拓扑影响因子之和,写入兴趣包并转发兴趣包;
[0120] 步骤B:判断兴趣包是否命中,若命中,对比发送兴趣包的用户节点与自身用户节点的拓扑影响因子大小,并将比较结果写入兴趣包;
[0121] 对数据包进行缓存判决包括:
[0122] 步骤C:判断数据包是否为用户节点所在用户簇感兴趣的内容,若否则直接转发,若是则执行步骤D;
[0123] 步骤D:判断数据包是否为用户节点请求的,若是则对比发送兴趣包的用户节点与自身用户节点的拓扑影响因子大小,如果自身用户节点的拓扑影响因子小,则将数据包存储在第一区域;若自身用户节点的拓扑影响因子大,则执行步骤E;
[0124] 步骤E:判断数据包的内容是否数据前Q个最流行的内容,若是则将数据包存储在第二区域;若不是则以自身用户节点的拓扑影响因子与兴趣包途经过节点的拓扑影响因子之和的比值为概率存储数据包至第三区域。
[0125] 可选地,在上述实施例中,兴趣偏好信息获取模块具体用于,根据N个用户节点的兴趣偏好信息通过二分网对N个用户节点进行兴趣聚类得到L个用户簇,二分网的第一侧为N个用户节点,二分网的第二侧为M个网络内容。
[0126] 本实施例提供的装置,用于执行上述实施例中的方法,其具有相同的技术特征和技术效果,在此不再赘述。
[0127] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0128] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。