我们都知道,人工智能产品由数据、算力、算法三部分组成。作为一名传统行业的产品经理,数据和算力好歹看词汇能够知其一,唯独这个高高在上的算法让人伤透了脑筋。自从个人入门AI产品经理以来,在网络上搜索了大量的学习资料,却始终知其云不知其所以云,算法就一定是晦涩难懂的吗?
我想说,NO!让我们一起来揭开算法神秘的面纱。
什么是算法?
算法就是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令。算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
简单理解,算法和红烧鲫鱼的处理流程很类似,如下图:
计算机算法,是用计算机解决问题的方法、步骤。解决不同的问题,需要不同的算法。
具体理解什么是算法,一个非常典型的例子,排序就是一个很经典的算法,杂乱无章的数字堆在一起,我们要一从大到小给它排列出来。然后,我们会规定一个过程,让这串数据进去,然后整齐从大到小的出来,这就是一个算法。我们可以如何做呢?有无数种方法,最简单的让每个数据从左到右与旁边数据比较,每次遇到比自己大的,就右移一格,遇到不如自己的,就不动,这样下来,然后那个小的继续比较,这样最小的那个就沉到最后,这样再对剩下的数处理,往复循环,就可以从小到大的出来。当然我们可以发明无数过程实现这个东西,比如插入法,堆排序等,但是万变不离其综的是,一个可以自动实现的过程,每一步按照一定规则行进,得到一个我们想要的结果。我们可以看到算法是把人的逻辑过程给自动化了。
今天,我们要介绍一种信息检索中最常用的算法——TF-IDF。
【TF-IDF】
在信息检索中,TF-IDF(词频-逆文档频率)是一种统计方法,用以评估一个单词在一个文档集合或语料库中的重要程度。经常被用作信息检索、文本挖掘以及用户模型的权重因素。tf-idf的值会随着单词在文档中出现的次数的增加而增大,也会随着单词在语料库中出现的次数的增多而减小。TF-IDF是如今最流行的词频加权方案之一。
TF-IDF的各种改进版本经常被搜索引擎用作在给定用户查询时对文档的相关性进行评分和排序的主要工具。TF-IDF可以成功地用于各种主题字段的停用词过滤,包括文本摘要和分类。
应用场景:如何针对某个查询,找到最相关的网页?
什么是TF?
需要根据网页的长度,对关键词的次数进行归一化,也就是用关键词的次数除以网页的总字数。我们把这个商称为“关键词的频率”,或者“单文本词频”(TF:Term Frequency)。
短语“原子能的应用”可以分成三个关键词:原子能,的,应用。
例如,某个网页上一共有1 000个词,其中“原子能”、“的”和“应用”分别出现了2次、35次和5次,那么它们的词频就分别是0.002、0.035 和0.005。将这三个数相加,其和0.042就是相应网页和查询“原子能的应用”的“单文本词频”。
什么是IDF?
假定一个关键词w在DW个网页中出现过,那么DW越大,w的权重越小,反之亦然。在信息检索中,这个权重称为“逆文本频率指数”(IDF:Inverse Document Frequency)。
这个概率解释得更通俗一点:
一个词预测主题的能力越强,权重越大,反之,权重越小。
停止词的权重为零。
比如,假定中文网页数是D=10亿。停止词“的”在所有网页中都出现,即DW=10亿,那么它的IDF=log(10亿/10亿)=log(1)=0 ; 假如“原子能”在200万个网页中出现,即DW=200万,那么它的IDF=log(200万/10亿)=log(500)=8.96 ; 假如通用词“应用”在5亿个网页中出现,即DW=5亿,那么它的IDF=log(5亿/10亿)=log(2)=1 . 0.01792
什么是TF-IDF?
因此,上述相关性的计算公式就由词频的简单求和变成了加权求和,即
TF1·IDF1 + TF2·IDF2 + …… + TFn·IDFn
在上面的例子中,该网页和“原子能的应用”的相关性为0.0161,其中“原子能”贡献了0.0126,而“应用”只贡献了0.0035.这个比例和我们的直觉就比较一致了。
通过大量网页的计算,我们就可以把相关性最高的网页作为检索结果呈现给用户,这是最直接的评分和排序的应用。