• 社交网络与文本分析课程

    1 课程说明


    刘跃文 教授、博导
    西安交通大学 管理学院

    联系方式: liuyuewen@xjtu.edu.cn
    2024年2月 版本1.4

提纲

  1. 这是一门有趣的课程
  2. 课程的特点与“定位”
  3. 课程的教学目标
  4. 课程的主要内容
  5. 课程的教学方法
  6. 课程的考核要求

0. 这是一门有趣的课程

0.1 社交网络是很有趣的

  • 社交网络是当代人的生活
  • 社交网络中的好友推荐
  • 社交网络中的社团识别
  • 识别电信诈骗号码
  • ……


社交网络是不太相同的

  • 参考文献:社交网络舆情中意见领袖主题图谱构建及关系路径研究_基于网络谣言话题的分析


Global Scientific Collaboration Network


人物之间构成了复杂的经济网络(双模网络)


侦查工作中的关联关系分析(链路预测)


好友推荐(可能认识的人)

  • 参考文献:Zhou Zhang, Yuewen Liu*, Wei Ding, Wei (Wayne) Huang, Qin Su, Ping Chen, (2015). Proposing a new friend recommendation method, FRUTAI, to enhance social media providers' performance, Decision Support Systems, Volume 79, November 2015, Pages 46-54. download
  • 我们开展的社交网络方面的研究工作

    • Xiaobin Ran, Yuquan Xu, Yuewen Liu*, Jinhu Jiang (2021) Examining online social behavior changes after migration: An empirical study based on OSN big data. Computers in Human Behavior, 129, 107158. Download
    • 冉晓斌,刘跃文*,姜锦虎,(2017). 社交网络个体活跃行为的大数据分析:从网络外部性的视角,管理科学,2017,Vol.5:77-86. Download
    • Xuening Zhu, Rui Pan*, Guodong Li, Yuewen Liu, and Hansheng Wang, (2017). Network vector autoregression, Annals of Statistics, 45(3), Pages 1096—1123. Download
    • Yuewen Liu, Ke Xu, Xiangyu Chang*, Dehai Di, Wei Huang, (2018), Social network analysis based on canteen transaction records, Statistics and Its Interface, 11(1), Pages 191-200. Download
    • Zhou Zhang, Yuewen Liu*, Wei Ding, Wei (Wayne) Huang, Qin Su, Ping Chen, (2015). Proposing a new friend recommendation method, FRUTAI, to enhance social media providers' performance, Decision Support Systems, Volume 79, November 2015, Pages 46-54. Download

0.2 社交网络本质上是一种网络数据(复杂网络)

  • 复杂网络无处不在(蛋白质、晶体、交通、设备)
  • 结构影响性能(免疫、告警风暴、超导)
  • 例如:设备网络
  • 交通网络
计算机设备网络


分子结构也是一种网络


道路交通网络


图像可以看成规则网络

来源: https://distill.pub/2021/gnn-intro/


图像的语义分割也可以看成是网络


文本可以看成是网络


文本中的人物的共现关系


知识图谱(抽取出的知识主体之间的关系)

0.3 文本分析是很有趣的

  • 语义的提取与分析(从评论中发现产品优缺点、垃圾邮件识别)
  • 情感分析
  • 主题的分析(新闻聚合、自动摘要、自动提取关键词)
  • 机器翻译(各种语言之间的翻译、人与动物语言的翻译?)
  • 自动写作(自动写诗、写歌词、写小说……)

Temporal patterns of happiness

Dodds, P. S., K. D. Harris, I. M. Kloumann, C. A. Bliss and C. M. Danforth (2011). "Temporal patterns of happiness and information in a global social network: Hedonometrics and Twitter." PloS one 6(12): e26752.

In [1]:
# 调用gpt2自动写歌词

from transformers import BertTokenizer, GPT2LMHeadModel, TextGenerationPipeline
tokenizer = BertTokenizer.from_pretrained("uer/gpt2-chinese-lyric")
model = GPT2LMHeadModel.from_pretrained("uer/gpt2-chinese-lyric")
text_generator = TextGenerationPipeline(model, tokenizer)   
text_generator("下午我在教室里发呆", max_length=100, do_sample=True)
Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.
Out[1]:
[{'generated_text': '下午我在教室里发呆 , 那 时 光 你 看 着 我 的 眼 , 想 把 你 搂 入 怀 中 , 直 到 那 天 你 走 远 , 我 才 看 清 你 的 侧 脸 , 现 在 , 还 记 得 那 个 夏 天 , 我 把 你 的 照 片 , 留 在 客 厅 门 前 , 那 句 我 爱 你 , 让 全 世 界 , 感 觉 这 是 你 教 的 , 每 一 段 路 都 是 你 教 的 , 我'}]
我和NewBing的对话
  • 我:can you give me an example code of a network graph visulization using pyecharts?

    • NewBing:实在不好意思,我现在无法对此做出回应。 要不我们换个话题?
  • 我:你写得很好,请继续写完

    • NewBing:谢谢你的鼓励,我会尽力完成的。😊
    • 根据网上的搜索结果,我为你生成了一个使用pyecharts库绘制网络图的示例代码,你可以参考一下:
    • 导入pyecharts库
    • from pyecharts import options as opts
    • from pyecharts.charts import Graph
    • 定义节点和边的数据
    • nodes_data =
    • …………
  • 我:这个代码很有用,谢谢你。

    • NewBing:不客气,很高兴能帮到你。😊
  • 我:你能使用一个真实的数据来画网络图吗?

    • NewBing:好的,我可以尝试使用一个真实的数据来画网络图。😊
    • 根据网上的搜索结果,我为你找到了一个真实的数据集,它是一个亚马逊产品共购买网络,记录了2003年6月1日的亚马逊用户购买了哪些产品1。
    • 我为你生成了一个使用pyecharts库绘制这个数据集的网络图的示例代码,你可以参考一下:
    • 导入pyecharts库
    • from pyecharts import options as opts
    • from pyecharts.charts import Graph
    • …………
  • 我:你能给我一下这个数据集的链接吗?

0.4 文本本质上是一种序列数据


语音也是一种序列数据


人流量 时间序列数据


网络结构也可以转为序列数据


节点的嵌入式表示

1. 课程的特点与“定位”

1.1 在数据方面的特点与“定位”

  • 数据的三种类型:时空、关系、内容

    • 时空[结构化数据]:谁、什么时间、什么地点、相关属性(元数据)
    • 关系[网络数据]:与谁
    • 内容[非结构化数据]:文本、声音、图像、视频、文档
  • 举例:A给B打了个电话

    • 时空[结构化数据]:A、打电话的时间、地点、通话时长、主叫/被叫、线路
    • 关系[网络数据]:A与B
    • 内容[非结构化数据]:通话内容(声音)
  • 举例:某游客给某旅店写了个评论

    • 时空:游客、写评论的时间、写评论的IP地址、使用的设备、浏览器等
    • 关系:写给哪个旅店
    • 内容:评论内容(文本/图片)
  • 本课程:“双拼”式课程

    • 社交网络/复杂网络:关系类数据
    • 文本分析/文本挖掘:非结构化数据
  • 社交网络与文本分析的交织

    • Node2Vec 用文本的方式来处理网络数据
    • 基于文本数据来提取网络
    • 知识图谱 Knowledge Graph

1.2 在机器学习方面的特点与“定位”

  • 机器学习的基础框架
    • 探索性数据分析与可视化(探索数据的规律与特点)
    • 构建样本库(想明白分析对象是什么)
    • 提取各种特征、构建特征矩阵(特征工程)
    • 训练机器学习模型(建模)
      • 无监督学习模型
      • 有监督学习模型
    • 模型调优及应用
  • 社交网络:在数据挖掘的框架下
    • 探索性数据分析与可视化(社交网络怎么存储、怎么表征、怎么可视化)
    • 构建样本库(社交网络中的分析对象有哪些)
    • 提取各种特征(节点的评估、边的评估、社团的评估、网络的评估)
    • 训练机器学习模型(建模)
      • 特有模型
        • 无监督学习模型(如社团识别)
        • 有监督学习模型(如好友推荐)
      • 作为特征用在机器学习模型中
    • 模型调优及应用(如网络动力学、网络传播等)
  • 文本分析:在数据挖掘的框架下
    • 探索性数据分析与可视化(分词、词频、探索性统计)
    • 构建样本库(文本分析中的对象:词、句子、段落)
    • 提取各种特征(情感、主题、Embedding、Word2Vec、Doc2Vec)
    • 训练机器学习模型(建模)
      • 特有任务:
        • 关键词提取、主题识别、自动摘要
        • 文档聚类、文档分类(如垃圾邮件识别、新闻分类)、情感分析
        • 自动写作、机器翻译
      • 作为特征用在机器学习模型中
        • 无监督学习模型
        • 有监督学习模型
    • 模型调优及应用

1.3 在“人工智能”方面的特点与“定位”

  • 从机器学习到深度学习
    • 早期的人工智能概念是人类利用机器产生智能的目标(1956年-)
    • 自AI概念提出以来,核心研究内容是机器学习(Machine Learning)
    • 当前的人工智能(AI)指的是深度神经网络(Deep Learning)(2012年-)
    • 深度神经网络的特征提取工作由计算机来完成
    • 深度神经网络的特征提取和分类在同一个模型里实现
    • 深度神经网络是当前机器学习的主流模型



手写字体识别

  • 自然语言处理(NLP)的发展历程
    • 早期自然语言处理: 第一阶段(60~80年代):基于规则来建立词汇、句法语义分析、问答、聊天和机器翻译系统。好处是规则可以利用人类的内省知识,不依赖数据,可以快速起步;问题是覆盖面不足,像个玩具系统,规则管理和可扩展一直没有解决。
    • 统计自然语言处理: 第二阶段(90年代开始):基于统计的机器学习(ML)开始流行,很多NLP开始用基于统计的方法来做。主要思路是利用带标注的数据,基于人工定义的特征建立机器学习系统,并利用数据经过学习确定机器学习系统的参数。运行时利用这些学习得到的参数,对输入数据进行解码,得到输出。机器翻译、搜索引擎都是利用统计方法获得了成功。
    • 神经网络自然语言处理: 第三阶段(2008年之后):深度学习开始在语音和图像发挥威力。随之,NLP研究者开始把目光转向深度学习。先是把深度学习用于特征计算或者建立一个新的特征,然后在原有的统计学习框架下体验效果。比如,搜索引擎加入了深度学习的检索词和文档的相似度计算,以提升搜索的相关度。自2014年以来,人们尝试直接通过深度学习建模,进行端对端的训练。目前已在机器翻译、问答、阅读理解等领域取得了进展,出现了深度学习的热潮。
    • Qian Li, Hao Peng, Jianxin Li, Congying Xia, Renyu Yang, Lichao Sun, Philip S. Yu, Lifang He, 2021, A Survey on Text Classification: From Shallow to Deep Learning, ACM Trans on Intelligent System Technology download

  • 网络数据分析的发展历程
    • 图论
      • 1763年,欧拉(Leonhard Euler)提出哥尼斯堡桥(Königsberg Bridge)问题
    • 社会网络分析(Social Network Analysis, SNA)
      • 偏文科的提法,有一套自己的术语体系
      • 利用问卷调查来调研关系人
      • 弱关系理论、结构洞理论等
    • 社交网络分析
      • 随着社交网络的兴起
      • 好友推荐、社团识别、网络特征提取
    • 复杂网络
      • 对网络本身特征的研究
      • 小世界网络、无标度网络、幂律分布、同配系数
    • 图神经网络(GNN)
      • 利用深度学习神经网络技术来处理网络数据


哥尼斯堡七桥问题

  • 本课程与人工智能课程的关系
    • 社交网络与复杂网络:Node2Vec, GNN, GCN 图卷积神经网络
    • 文本分析:Word2Vec, LSTM, CNN, RNN, BERT, GPT, 大语言模型 ……
    • 本课程讲授涉及到的比较初级的人工智能内容
    • 以机器学习框架为主,以人工智能框架为辅
  • 这是一个日新月异的时代
    • 本课程的很多内容,是在最近10年、5年、甚至3年之内才被研究出来
    • 课程涉及到内容的变化之快超乎想象
    • 去年的上课内容(如GPT2)到今年已经落伍了(GPT4)
    • 时势造英雄:在这个汹涌的浪潮中,我们能做些什么?

2. 课程的主要教学目标

  • 几个层次的内容
    • 特别简单的原理和公式(所有高级的编程都离不开数学)
    • 算法(对数据结构的深入理解)
    • 代码(底层实现/调用库实现)
  • 本课程的主要教学目标
    • 社交网络与文本分析的原理及部分公式
    • 部分算法的设计与原理
    • Python调用实现
  • 每一个细小的点,都是无底洞
    • 深刻理解基础,广泛接触前沿,积极动手实验

3. 课程的主要内容

  • 前3周(6次课):引言+社交网络

    • 网络表征、可视化与布局
    • 节点重要性、相似度与好友推荐(微观)
    • 社团结构与社团发现(中观)
    • 网络结构,度量(宏观)
    • 网络上的传播与动力学等其它高级主题(了解)
  • 中2.5周(5次课):文本分析+总结

    • 分词,词频统计,词云
    • 词的向量表示(从词袋模型到Word2Vec)
    • 文档的特征提取及向量表示
    • 文本聚类、分类、自动摘要、情感分析
  • 后2.5周(5次课):深度学习框架下的网络及文本分析

    • Node2Vec等图嵌入方法
    • GNN等图神经网络模型
    • RNN,LSTM等自动写作模型
    • Transformer,Bert,GPT等预训练模型
  • 根据教学进度适当调整

4. 课程的教学方法

  • 保姆式“填鸭”教学,在有限的时间内讲解尽可能多内容
  • 基础知识理论+最新研究前沿
  • 理论+实验(课堂实验)
  • 使用Python来完成所有的课程案例及练习
  • 使用Jupyter Notebook Markdown写幻灯片
  • 在网上提供全部课件、代码、数据及资料 http://ibids.cn/sncourse.html

  • 参考教材:

  • 课堂竞赛

    • 2个竞赛任务

      • 竞赛任务1:好友推荐算法PK
      • 竞赛任务2:文本分类算法PK
    • 竞赛形式

      • 下载数据编写模型,提交数据,查看A榜结果
      • 竞赛结束后查看B榜结果


Python基础知识教学视频


Python数据分析基础视频


机器学习教学视频


深度学习教学视频

5. 课程的考核要求

  • 课程要求:

    • 全程到课(跟着老师学习更加高效)
    • 认真听讲以及提问(不要害怕问Stupid Question)
    • 认真完成课后练习(反复练习才能学会)
    • 认真完成课程大作业(课后作业)
    • 积极参与课后的模型竞赛
  • 考核的分数构成:

    • 上课考勤 10%
    • 课后练习 30%
    • 模型竞赛 20%
    • 课程大作业 40%



谢谢大家!