这个模型主要是基于高中所学的空间向量,只不过由三维可能扩展成了超维空间
话不多说,直接上图:
假如我们有这样一个需求,搜索关键词然后根据相关性进行排序,比如有这样三个关键词:
我们分别给这三个关键词设置权重,假设管理员设置一个默认的权重(在真实情况这权重肯定比这复杂)
关键词 | |
女人 | 8 |
喜欢 | 3 |
什么 | 5 |
假设我们有4个网页,如何在用户进行搜索这3个关键词的时候,将这4个网页进行排序
网页1里根据里面的文字中关键词出现频率,其权重如下:
关键词 | |
女人 | 5.4 |
喜欢 | 6.6 |
什么 | 8.8 |
网页2:
关键词 | |
女人 | 8.3 |
喜欢 | 3 |
什么 | 4 |
网页3:
关键词 | |
女人 | 2 |
喜欢 | 5.3 |
什么 | 8.8 |
网页4:
关键词 | |
女人 | 2 |
喜欢 | 3 |
什么 | 4 |
我们可以给出一个形象的三维图:
我们可以清晰地看到,这4个网页,与默认的那个向量存在着夹角,可以使用余弦夹角公式计算:
这样就可以计算出每个网页的值,也就作为打分公式,值越接近1说明,与默认的那个相关性最强,这就可以进行排序了
网页 | 得分 |
网页1 | 0.882 |
网页2 | 0.804 |
网页3 | 0.592 |
网页4 | 0.682 |
上面选择3个特征是为了方便画图,毕竟4维我们是没法进行画图的,也就是超维的情况可以进行类推
当然现实中的网页排序比这个复杂很多,但是基本思想就是如此