为什么要建立一个面向应用的拓扑结构层
所谓面向应用的拓扑结构层,实际上是一种由SNS平台为特定APP开发的数据结构。这个数据结构维持了数据挖掘之后的结果。
一、观察
观察当前国内外的开放性的SNS平台/网站(以后简称为SNS网站),可以发现:
1、对于个人来说,SNS网站目前提供两种网络:一个是与好友形成的网络,一个是加入的群组。(本文把群组与好友形成的网络都简称为网络,除非特别说明)
2、个人用户还有两个隐性的网络:一个所在学校、公司、地区;一个是与其它安装同一个APP的用户。
3、个人用户也可以发起一个活动(Events),因而创建了一个网络。
4、这些信息都可以通过API获取(有些部分的)。
二、问题
那么,现在就有一个问题,APP开发者如何利用信息?目前可以调用的API:
1、friends.get,friends.getFriends,得到用户的好友列表。在整个好友网络中,是第一跳的(采用IP路由的术语)。
2、groups.getMembers,得到一个群组的成员列表。显然,这个群组是完全图。
3、users.getInfo,得到用户所在学校、公司、地区。
4、friends.getAppUsers,得到一个用户的指定APP的好友ID列表。
5、events.getMembers,得到一个活动的成员列表。
目前国内SNS网站只提供了三个API,分别是1、3、4。即使是facebook,也还在不断的改进中,例如,networks页不再提供,与中国文化不同。(对于中国的SNS网站,group相当于BBS的版块,而在中国,group有几个极需解决的问题,一个是水化,一个是潜水,一个是枪手)。(friends、group、app都是一个图,这三者属于重复定义,用户群交叉,容易使app开发者和用户感到困惑。事实上,目前SNS网站的大部分群组都极不活跃,目前的app的交互能力非常弱,关于这些问题的解决,有必要在数据结构与逻辑上重新定义,以后有时间再专门分析。)
我在5G上写过一个极其简单的脱离SNS平台的挖掘用户数据的方法:
1、数据准备,构建一个稀疏矩阵
2、进行连通性分析,将用户划分为子图。
3、补足,取得每个用户的好友信息,例如用户A的好友A1认识用户B的好友B1,则人为添加一个链路(方法1)。
如果用户A与用户B或者他们的好友同属于一个网络(目前SNS网站的叫法)或者群组,则作为一个连接(方法2)。
4、计算介数,并通过介数发现社区与社区中心。
5、为每一条边赋值(以相互浏览的和为权),构造一个无向图。
6、计算最大流/最小割,分析传播阻尼。
但是,这种方法对于用户数量较少的APP还可以。如果用户数量很大,这种方法就非常的不经济。虽然APP开发者自己可以缓存数据,由于用户关系等数据经常变动,如果还需要对用户日志等数据作进一步分析,那么就无法保证结果的精确性与有效性。因而对于用户数量巨大的APP,这种方法事实上不可行。偏偏这种APP的商业价值可能非常大。
三、分层的重要性
因此,只有由SNS网站进行数据分析和提供分析结果(姑且不论所用到的数据分析方法):
1、建立一个数据结构
SNS网站如何向APP开发者提供分析处理之后的数据?单纯地提供几条API能够反映所得到的数据吗?对于一个APP而言,它的用户本身就构成了一个网络(图)。在进行用户分析后,所得到的数据的组织形式应该更进一步地体现网络(图)这种特性,并满足传播、交互、查询、用户加入、可扩展等相关的需求。
可以看到,APP用户是SNS网站全部用户的子集。当把这两个用户集合分别抽象为两个图时,为特定的APP建立的数据结构实际上就叠加在SNS层上。这也符合目前的三层架构。(本文暂且不讨论这个数据结构的具体细节)
2、这种数据结构的优势
相对于群组与好友网络,面向应用的拓扑结构具有这样一些优势。如果某个APP具有很强的粘性,可以说明这个APP的用户有很强的指向性。SNS之所以被广泛地关注,在于它形成一个泛化的全局好友网络,从而有可能用于消息传播与网络营销。哈佛大学的社会心理学家Stanley Milgram所设计的连锁信件实验常常被用来说明SNS的传播能力。但是,这是一种盲目搜索方法,开销大,代价高,过程不可控,用户需要花大量时间处理消息。与此相反,如果APP具有很强的粘性,并且在为APP建立数据结构时就考虑到这些情况,那么就可以实现有信息搜索。
3、视图的一致性
之所以单独列出这一条,是发现,当前的SNS网站有5种网络定义。虽然这5种网络定义,提供了更多的选择,但是,也造成一定的混乱。有的正在消失,例如,facebook不再提供network pages。据说国外BBS并不是太流行。并且在国内某些SNS网站上,绝大部分群组极度不活跃。目前,好友网络的活跃程度最高,压制了其它类型的网络。但是,由于好友网络的传播过程的不可控,直接商用难度很高。甚至有隐私之患(facebook因而取消了一个广告项目)。这里,并不是反对好友网络,相反,这正是SNS的来源。对于APP开发者来说,足以造成不必要的混乱。所以有必要提供视图的一致性。作为个人观点,不赞成APP主要地直接地依赖好友网络。
这一点还没有完全想好,应该与业务逻辑、代码复用有关,先放在这里吧(以后找机会再讨论)。
四、小结
本文主要讨论了在应用层与当前的SNS层之前建立一个面向应用的拓扑结构层的必要性。这个拓扑结构层实际上是一个数据结构。目前的SNS网络提供了5种网络,其中以好友网络最为活跃。但是,好友网络的传播过程的不可控,使得直接商用比较困难。而围绕粘性强的APP建立传播网络,可以利用APP的方向性。在建立这个数据结构时就考虑传播、交互、查询等要求。本文没有涉及到这种数据结构的具体细节,也没有包括建立这种数据结构所需的数据挖掘算法,有待以后进一步讨论。
分享到:
相关推荐
网络拓扑结构绘制程序是IT领域中一个非常实用的工具,主要用于设计、规划和展示计算机网络的布局。它能够帮助网络管理员、IT专业人员以及系统架构师清晰地理解网络设备之间的连接关系,便于管理和维护。本文将围绕这...
论文研究了面向新能源发电的直流电网组网外送拓扑结构和运行特性,为新能源发电的直流电网组网外送拓扑结构设计和应用提供了参考。同时,论文也表明了VSC-LCC HVDC拓扑结构在抑制暂态过电压、抵御换相失败、改善故障...
本文介绍了一种面向云计算虚拟机资源拓扑结构的任务调度方法,这种调度策略能够更好地考虑虚拟机之间的物理拓扑关系以及虚拟机的处理能力,从而优化任务分配,提高云计算服务的整体性能。 云计算的核心优势在于其...
该方法提出了一个利用递归搜索的电网拓扑分析模块,应用中表明这种电网拓扑分析方法具有较大的实用性和推广价值。 电网拓扑分析是电力系统许多智能系统的基础,其功能是根据当前电网开关状态的变化对电网进行快速...
"TopologyMake组件"可能是一个专门为创建和展示拓扑图设计的库或工具,提供了易于使用的API和接口供开发者调用。 拓扑图在电信网管系统中起着至关重要的作用。它以图形化的方式展示了网络设备、服务器、交换机、...
网络拓扑排序是其中的一个关键概念,主要用于处理有向无环图(DAG,Directed Acyclic Graph)的问题。在这个设计中,我们将深入探讨C++语言实现网络拓扑排序的源程序。 网络拓扑排序是将有向无环图的节点按照起点到...
1. **创建新项目**:打开Visual Studio,选择“新建项目”,然后在“Windows Forms应用程序”模板中创建一个新的项目。 2. **添加FlowChart控件**:在设计视图中,从工具箱中拖动一个FlowChart控件到窗体上。这个...
在现代工程设计和制造...通过研究和分析,可以得出结论:面向CAD系统的连续体结构形状与拓扑优化方法在提高产品设计质量和制造效率方面具有显著优势,为工程设计领域提供了新的优化工具和方法,具有广泛的应用前景。
1. 拓扑优化技术:是一种基于数学优化理论的设计方法,通过改变结构的拓扑结构来优化其性能。 2. 多目标拓扑优化:是指同时优化多个目标函数的拓扑优化问题,需要确定子目标权重系数和综合目标函数。 3. 折衷规划...
在地理信息系统(GIS)中,多边形拓扑关系的建立是至关重要的一个环节,它涉及到数据的组织、空间分析以及地图制图等多个方面。本文将深入探讨如何使用MFC(Microsoft Foundation Classes)库来实现这个功能,以及从...
拉普拉斯矩阵是图论中的一个重要概念,用于表示图的拓扑结构信息。 4. 拉普拉斯谱计算:计算拉普拉斯矩阵的特征值,这些特征值能提供对象拓扑关系的定量描述,被称作拓扑特征值。 5. 特征值嵌入:将计算出的拓扑...
目前国内外对配送网络构建方面的研究还不够深入,本文利用图论和GIS技术对配送网络拓扑结构的构建方法进行研究,实现其自动化构建功能,建立物流配送系统所需的空间属性数据库,并应用于一个基于GIS的面向大规模城市...
### 3G网络结构拓扑图解析 #### 核心概念与组件介绍 3G(第三代移动通信系统)网络的设计旨在提供比其前身更快的数据传输速率,并支持多种媒体形式和服务。这一部分将深入探讨3G网络的核心组件及其交互方式。 ###...
这表明文档旨在提供一个全面且易于理解的网络拓扑结构资源。 - **标签**: “图 最全的 网络拓扑”进一步确认了文档的内容主要围绕网络拓扑结构展开,并且强调了其全面性和图形化的展示形式。 #### 二、网络模型与...
本项目"Flex+Java开发拓扑图"是一个利用Flex作为前端展示层,Java作为后端数据处理层来实现动态拓扑图的应用实例。 Flex是一种基于ActionScript(AS)的开源框架,主要用于创建富互联网应用程序(RIA)。它允许...
这个插件允许开发者在Java应用程序中创建和展示复杂的网络或系统拓扑结构。 JTopo是由ZKWeb团队开发的一个开源的Java拓扑图库,它提供了丰富的功能来构建动态和交互式的拓扑图。以下是一些关键知识点: 1. **Java...
本文主要研究的是面向三维微处理器的新型片上网络(NoC)拓扑结构,称为3D E-Mesh。利用三维集成电路(3D IC)中的硅通孔(TSV)技术,该拓扑结构设计适用于10层以上的硅片堆叠的三维集成电路。3D E-Mesh旨在结合TSV...