更改

跳到导航 跳到搜索
删除2,024字节 、 2026年10月22日 (星期四)
第48行: 第48行:  
==集体注意力流网络的构建==
 
==集体注意力流网络的构建==
 
了解集体注意力流网络相关的基本概念之后,就需要了解如何才能构造一个标准的集体注意力流网络。
 
了解集体注意力流网络相关的基本概念之后,就需要了解如何才能构造一个标准的集体注意力流网络。
−
===行为记录===
  −
  −
  −
===节点与流量===
  −
为了构建集体注意力流网络,原始行为记录一般只需要访问的时间戳和具体网址,数据可表示为类似 (time stamp, URL) 的结构。建模时,先把内容资源抽取出来作为节点,再统计任意两个节点之间的转移次数<math>f_{ij}</math>,从而得到一个带方向和权重的流量矩阵<math>F=\{f_{ij}\}_{n\times n}</math>。如果可以采集到访问的用户(Session),跟踪用户状态,那么可以分别跟踪每一个用户的跳转路径。
  −
  −
例如,只有两个用户A和B,四个站点a、b、c和d的情况下,若用户A的访问路径,从a节点跳到b节点再到c节点,用户B的访问路径,从a节点跳到b节点再到d节点,那么我们会得到<math>f_{ab}=2</math>,<math>f_{bc}=1</math>,<math>f_{bd}=1</math>,其他<math>f_{ij}=0</math>的F矩阵。
  −
  −
===引入源、汇节点===
  −
直接构建节点的流量矩阵,往往会出现节点流入、流出不平衡的现象,这时候就需要引入源节点和汇节点。
  −
  −
假设,对于节点<math>i</math>,总流入量为
  −
  −
<math>
  −
I_i=
  −
\sum_{j=1}^{N} f_{ji}
  −
</math>
  −
  −
总流出量为
  −
  −
<math>
  −
D_i=
  −
\sum_{j=1}^{N+1} f_{ij}
  −
</math>
  −
  −
那么一般情况下,都会出现
  −
  −
<math>
  −
D_i\neq I_i.
  −
</math>
  −
  −
也就是说此时,网络的流量不是平衡的。为了保证平衡性,我们需要引入源节点source和汇节点sink,也视为流网络的节点,流量矩阵<math>F=\{f_{ij}\}_{(n+2)\times (n+2)}</math>则转换为了包含节点source和汇节点sink的<math>{(n+2)\times (n+2)}</math>矩阵,若规定source节点编号为0,sink节点编号为n+1,则对于任意一个节点i,<math>0\leq i\leq n</math>有
  −
  −
<math>f_{0i}=I_i,</math>
  −
  −
<math>f_{i,n+1}=D_i.</math>
  −
  −
还是上一节的案例,只有两个用户A和B,<math>f_{ab}=2</math>,<math>f_{bc}=1</math>,<math>f_{bd}=1</math>,那么我们会规定<math>f_{source,a}=2</math>,<math>f_{b,sink}=1</math>,<math>f_{c,sink}=1</math>。我们最终会得到一个平衡的,由a、b、c和d四个站点构造的小型集体注意力流网络。
      
=== 行为记录:数据来源与预处理 ===
 
=== 行为记录:数据来源与预处理 ===
第94行: 第56行:     
* 每条原始记录的格式为:
 
* 每条原始记录的格式为:
−
** $(t,\ \textit{referrer},\ \textit{host},\ \textit{path})$
+
** <math>(t,\ \textit{referrer},\ \textit{host},\ \textit{path})</math>
−
   * $t$:时间戳(Unix time)
+
   * <math>t</math>:时间戳(Unix time)
−
   * $\textit{referrer}$:上一个被访问网站(域名)
+
   * <math>\textit{referrer}</math>:上一个被访问网站(域名)
−
   * $\textit{host}$:当前被访问网站(域名)
+
   * <math>\textit{host}</math>:当前被访问网站(域名)
−
   * $\textit{path}$:访问位置
+
   * <math>\textit{path}</math>:访问位置
 
* 预处理:根据 Blue Coat 提供的站点分类数据识别广告/投放类网站,并将其从原始数据中移除,以减少噪声与偏差影响。
 
* 预处理:根据 Blue Coat 提供的站点分类数据识别广告/投放类网站,并将其从原始数据中移除,以减少噪声与偏差影响。
   −
=== 将点击流映射为开流网络(Open Flow Network) ===
+
=== 将点击流映射为开流网络 ===
−
设共有 $N$ 个网站节点。对某个时间窗口(例如一天)内的所有点击流记录进行统计,构建一个有向加权网络,记作''开流网络''。
+
设共有<math>N</math>个网站节点。对某个时间窗口内的所有点击流记录进行统计,构建一个有向加权网络,即开放流网络。
   −
==== 2.1 建立网站字典并赋予索引 ====
+
====建立网站字典并赋予索引 ====
−
* 从所有记录中抽取不同的域名集合(网站集合)。
+
从所有记录中抽取不同的域名集合(网站集合)。为每个不同网站分配一个唯一索引,用于后续统计转移流量<math>f_{ij}</math>。
−
* 为每个不同网站分配一个唯一索引,用于后续统计转移流量 $f_{ij}$。
     −
==== 2.2 统计有向转移流量 $f_{ij}$ ====
+
====统计有向转移流量<math>f_{ij}</math>====
−
* 忽略时间戳 $t$,对给定索引 $i$ 与 $j$ 的网站对统计用户从 $i$ 跳转到 $j$ 的转移次数:
+
* 忽略时间戳<math>t</math>,对给定索引<math>i</math>与<math>j</math>的网站对统计用户从<math>i</math>跳转到<math>j</math>的转移次数:
−
** $f_{ij}$:从网站 $i$ 到网站 $j$ 的流量(流量大小由跃迁次数计)。
+
**<math>f_{ij}</math>:从网站 $i$ 到网站 $j$ 的流量(流量大小由跃迁次数计)。
−
* 若记录中出现 $\textit{referrer}$ 为空/缺失(null string),表示该跃迁在观测数据中没有来源站点,则把它视为来自系统外部的输入,把 $\textit{null}$ 映射为''源节点(source)''对应的流入。
+
* 若记录中出现<math>\textit{referrer}</math>为空/缺失(null string),表示该跃迁在观测数据中没有来源站点,则把它视为来自系统外部的输入,把<math>\textit{null}</math>映射为''源节点(source)''对应的流入。
    
==== 2.3 引入源节点与汇节点表示“离线世界” ====
 
==== 2.3 引入源节点与汇节点表示“离线世界” ====
558

个编辑

导航菜单