计算社会初探

计算社会科学关注的重点主要是使用信息存储、分析技术研究社会科学领域中的各种问题,发现社会运行规律

Posted by T.L on August 5, 2016

“计算社会科学”的学科概念已提出四年多,但国内信息科学界的很多学者认为计算社会科学基本等同于社会计算 ,或者干脆将计算社会科学看作社会计算的一部分,我认为为计算社会科学与社会计算之间确有交叉 ,但两者同时也有不同的侧重面向。社会计算关注的重点有两个:

  • 其一是关注信息技术在社会活动中的应用 ,关注在信息技术中如何嵌入人文知识使之更好地服务于社会活动;
  • 其二是为社会科学领域研究提供研究工具,重点关注信息技术的使用和发展。

计算社会科学关注的重点主要是使用信息存储、分析技术研究社会科学领域中的各种问题,发现社会运行规律

计算社会在发现社会规律过程中的处理流程如下:

  1. 数据
  2. 处理
    • 社会网络分析
    • 社会建模
    • 数据挖掘
    • 机器学习
  3. 统计知识,验证知识

数据

计算社会科学以计算机等现代计算科学技术工具获取和分析海量社会化数据,数据形式主要包括文本 、图像 、视频和音频等,其大部分来源于Web网络信息,还有一部分来源于传感设备。
传统的关系型数据库并不能够支持海量数据,要获取海量大数据,肯定是从网页数据的获取:各种爬虫 爬虫 例如: 在R软件中有很多包可以方便爬取,比如RCurl拿网页,xmlParse对标准XML文件解析,XPath匹配想要的内容,如抓取财经数据http://vip.stock.finance.sina.com.cn/q/go.php/vIR_CustomSearch/index.phtml 这里很容易能够拿到表格里的内容: 财经数据

实例分析

计算社会科学领域研究者眼中的社会网络分析对象,主要包括对虚拟社会网络下的人物节点分析 、社群挖掘和社会图关系分析。

人物节点

个体网络行为分析市根据具体网络行为来分析人物个体,比如2015年首届天池大数据大赛的题目“阿里移动推荐算法”。 根据前一个月的用户行为数据来预测一个月后的行为,这就是社会挖掘,相关方法可以参见前五名的ppt1。 此外https://tianchi.shuju.aliyun.com/competition/index.htm?spm=5176.100170.1234.3.iKoqeh中的淘宝穿衣搭配算法、新浪互动微博算法也是对个体节点进行社会挖掘的实例。

社群挖掘

社群挖掘是社会网络分析的另一研究重点,社群通常由性质相似或功能相近的人物节点构成, 在一定程度上反映了个体自发、无序行为背后的局部弱规则性和全局有序性口因此,发现虚拟网络中有意义的 、相对稳定的社群对网络信息的搜索与挖掘 、信息的推荐以及网络演化与扩散的预测具有重要价值 。 实例:广东公共交通大数据竞赛 主要面向人群:各种分类的通勤人群

社交网络图分析/计算

社交图 如上社交网络图在计算机存储的方式使用传统的关系型数据库的话会产生性能问题。比如要查询Richard指向谁,直接通过索引查询就可以找到其他人;但要查找谁指向Richard,就会引发数据库的全表扫描。但从图中明显只要判别下入度就可以了。

Neo4J
Neo4J是当前主流的图数据库产品,其社交网络图表示如下: Neo4J 简单分析图数据库,有几个特点:

  1. 图在节点上记录数据(节点的属性,property)
  2. 节点由关系组织成图,关系也具有属性
  3. 寻路(Traversal,另一意思是遍历)在图上定位由节点组成的路径
  4. 索引(index)将属性映射到节点或关系
  5. 图数据库管理系统管理图其上的索引

GraphX

GraphX是 Spark中用于图(e.g., Web-Graphs and Social Networks)和图并行计算(e.g., PageRank and Collaborative Filtering)的API,可以认为是GraphLab(图像处理模型的开源图计算框架)和Pregel(google图算法引擎)在Spark(Scala)上的重写及优化,跟其他分布式图计算框架相比,GraphX最大的贡献是,在Spark之上提供一栈式数据解决方案,可以方便且高效地完成图计算的一整套流水作业。GraphX最先是伯克利AMPLAB的一个分布式图计算框架项目,后来整合到Spark中成为一个核心组件。 Graphx是Spark生态中的非常重要的组件,融合了图并行以及数据并行的优势,虽然在单纯的计算机段的性能相比不如GraphLab等计算框架,但是如果从整个图处理流水线的视角(图构建,图合并,最终结果的查询)看,那么性能就非常具有竞争性了。 GrahpX 其中GraphLab是图算法库,图中使用的是PageRank算法,可以参见: PageRank

PageRank可以被用来挖掘意见领袖,除此之外,目前GraphLab最新版本已支持 PageRank、数三角形、最大连通图和最短路径等 6种经典的图算法。这些算法的代码实现,目的和重点在于通用性。如果要获得最佳性能,可以参考其实现进行修改和扩展满足业务需求。

社会建模

社会建模技术由信息科学家和数学家提出并发展完善起来,是指对社会空间中个体或群体的心理和行为交互模式人际关系、社群结构等复杂社 会性问题 ,进行抽象描述并建立仿真模型。通 过仿真模型 ,研究者可以模拟社会演化进程、社会现象 的发展 、人类社会行为及其变化过程 ,可进 一 步结合实验分析或为现实提供决策支持。

目前 ,在社会科学领域应用最广泛的仿真模型是基于智能主体的社会仿真模型(agent—based models,ABMs),ABMs模型可以很好地模拟信息传 播 、社会规范的出现、集群行为等人类现象。

基于ABMs模 型 ,研究人员发展出在计算机上建立“人工社会 (artificialsociety)”的构想 。人类社会是由大量真实社会个体构成的复杂系统 ,人工社会则是在计算机上模拟出的由大量虚拟社会个体模 型构成的复杂系统。其研究思路是在计算机中建立多个Agent模型 ,对不同特性的Agent设定不同的运行规则,让这些Agent相互作用并遵循一定规则运行,最后通过观察大量Agent相互作用的涌现属性,找到人工社会的规律 ,并用这些规律理解和解释现实人类社会中的宏观现象。 关于Agent的概念和特征可以参见下图 Agent

每个Agent都有简单的规则,这里拿鸟群飞行模拟为例:一个鸟群各个体初始位置杂乱无章,但每个个体都有如下三个规则:

  1. Cohesion: each agent steers toward the average position of its nearby “flockmates,”
  2. Separation: each agent steers to avoid crowding local flockmates, and
  3. Alignment: each agent steers towards the average heading of local flockmates.

初始位置和500次迭代后的位置如图: flymate

初始的混沌状态按照几个简单的规则就能让整个系统处于稳定状态2,通过这个模型对系统的影响,可以判别规则的合理性和可行性。

复杂人类社会模型目前还不存在,有的只是对单一现象的研究模型,这里推荐一款游戏《模拟城市》,虽然是利用已知规律来建模,但其设计思想和画面风格很适合将来投身于社会建模的人群。 SC1 SC2 SC3 SC4

  1. 这里搜集了前五名的ppt,这五位都利用用了深度学习、数据分析、统计的方法来挖掘数据。详见阿里移动推荐算法大赛冠军答辩PPT 

  2. 类似动力系统中的元胞自动机,元胞自动机用于研究经济危机的形成与爆发过程、个人行为的社会性,流行现象,如服装流行色的形成等。在生物学中,元胞自动机的设计思想本身就来源于生物学自繁殖的思想,因而它在生物学上的应用更为自然而广泛。例如元胞自动机用于肿瘤细胞的增长机理和过程模拟、人类大脑的机理探索(Victor.Jonathan.D.,1990)、艾滋病病毒HIV的感染过程(Sieburg,H.B.. 1990)、自组织、自繁殖等生命现象的研究以及最新流行的克隆 (Clone)技术的研究等 (ErmentroutG。B。,1993)。