Vector Space Model (向量空间模型)

向量空间模型(vector space model)在信息检索和搜索引擎中应用非常广泛。这个模型的关键是矩阵的建立,这就用到了之前一篇的 tf-idf 方法。下面先介绍两种矩阵:

Binary Incidence Matrix(二元关联矩阵):



其中,行表示的是 term,列表示的是 document, 假如第i个document中出现了第j个term,就将相应的位置记为1,否则为0。这样,每个document被表示成维度为 |V| 的二进制向量。其中,|V| 为 term 的数目。

Count Matrix (计数矩阵):



这里,第i行第j列表示的是第j个document中出现第i个term的数目。这样,每个document被表示成维度为 |V| 的计数向量,且都为非负整数。

下面,就到了最关键的部分。基于tf-idf,我们将得到Weight Matrix (权重矩阵)。



这里,第i行第j列表示的是第j个document中第i个term的 tf-idf 值。这样,每个document 被表示成维度为 |V| 的实数矩阵。

我们将terms 视为空间(space)里面的轴(axes),documents视为这个空间(space)里里面的点(points)或者向量(vectors),得到的将是一个非常高纬度的向量空间。从上面的矩阵可以看出,每个向量(vector)非常稀疏,因为有很多为0的值(entries)。

那我们怎么比较请求(query)和 document 之间的相似度呢?我们需要对documents的相似度做一个排序。

计算相似度有很多方法,这里我们主要介绍欧式距离(Euclidean distance)和余弦(Cosine)方法。

欧式距离(Euclidean distance):



但是,通过欧氏距离来计算相似度的方法并不好,它没有将向量的长度考虑进来。采用Cosine方法,可以很好地解决这个问题。


Cosine:

Step 1: 归一化向量。归一化后的向量是原向量跟向量长度的比值。

Step 2: 计算 document 向量和 query 向量之间的相似度;



其中,



对于归一化后的向量,可以直接计算Cosine 相似度:



向量空间模型(vector space model)在信息检索和搜索引擎中应用非常广泛。这个模型的关键是矩阵的建立,这就用到了之前一篇的 tf-idf 方法。下面先介绍两种矩阵:

Binary Incidence Matrix(二元关联矩阵):



其中,行表示的是 term,列表示的是 document, 假如第i个document中出现了第j个term,就将相应的位置记为1,否则为0。这样,每个document被表示成维度为 |V| 的二进制向量。其中,|V| 为 term 的数目。

Count Matrix (计数矩阵):



这里,第i行第j列表示的是第j个document中出现第i个term的数目。这样,每个document被表示成维度为 |V| 的计数向量,且都为非负整数。

下面,就到了最关键的部分。基于tf-idf,我们将得到Weight Matrix (权重矩阵)。



这里,第i行第j列表示的是第j个document中第i个term的 tf-idf 值。这样,每个document 被表示成维度为 |V| 的实数矩阵。

我们将terms 视为空间(space)里面的轴(axes),documents视为这个空间(space)里里面的点(points)或者向量(vectors),得到的将是一个非常高纬度的向量空间。从上面的矩阵可以看出,每个向量(vector)非常稀疏,因为有很多为0的值(entries)。

那我们怎么比较请求(query)和 document 之间的相似度呢?我们需要对documents的相似度做一个排序。

计算相似度有很多方法,这里我们主要介绍欧式距离(Euclidean distance)和余弦(Cosine)方法。

欧式距离(Euclidean distance):



但是,通过欧氏距离来计算相似度的方法并不好,它没有将向量的长度考虑进来。采用Cosine方法,可以很好地解决这个问题。


Cosine:

Step 1: 归一化向量。归一化后的向量是原向量跟向量长度的比值。

Step 2: 计算 document 向量和 query 向量之间的相似度;



其中,



对于归一化后的向量,可以直接计算Cosine 相似度:



猜你喜欢

转载自blog.csdn.net/u010859324/article/details/78513305