知识表示:很多个臭皮匠锤烂一个诸葛亮
文章目录
- 导读
- 定义
- 意义
- 凭什么能锤烂
- 设计思想
- 余弦距离
- 欧式距离
- 共同点
- 不同点
- 用这些来解决问题
导读
我从短暂的人生当中学到一件事:越是玩弄计谋,就越会发现人类的能力是有极限的,除非超越人类。所以,我不做人了!(拿出知识表示)
定义
皮归皮,该讲的东西还是得讲清楚。为什么说知识表示能够超越人类?不难发现,在人类历史长河中,如果一个问题一旦形式化、模型化,这个玩意就开始疯狂内卷,一发不可收拾。火药传开到全世界之后,没多久就从观赏变成了杀伤;塑料发明后,马上就发现了环境危机;Web
技术在上世纪末被提出之后,本世纪初就已经玩烂了;机器学习虽然一开始没被重视,才不到一百年,中国CV
方向的985985985、211211211硕士毕业生都已经找不到工作了……那么知识表示又是什么?也会被形式化然后结束内卷的一生吗?
知识表示是指把知识客体中的知识因子与知识关联起来,便于人们识别和理解知识。知识表示是知识组织的前提和基础,任何知识组织方法都是要建立在知识表示的基础上。知识表示有主观知识表示和客观知识表示两种。
——摘自百度百科【知识表示】
说白了,就是将人类到目前为止所学到的所有知识全部用形式化的、模型化的表达方式展现出来。如果成功了,或许不需要三个臭皮匠,只需要一台个人PC
机哪怕是离线都能锤烂一个诸葛亮,更何况我们还能联网,还能并行计算,还能分布式集群……
意义
如果说知识表示除了能够超越人类还能干什么的话,那就是基于只是表示的知识组织了。
知识组织是揭示知识单元(包括显性知识因子和隐性知识因子),挖掘知识关联的过程或行为,最为快捷地为用户提供有效知识或信息。这些活动通常由图书管理员、档案管理员、专业人士或者计算机完成。
——摘自百度百科【知识组织】
实际上就是说,我们在实现了知识表示的基础之上,我们可以使用知识组织联系起来。就像是之前的一个梗:
一对色盲夫妇生下了一个不是色盲的孩子,于是丈夫离婚了。
乍一看,好像就是很平常的事情。结婚、生子、离婚。怎么了嘛?
但是知识组织就会把色盲的特点、人类染色体的特点、这个段子全部联系在一起:
由于在人类染色体上色盲基因在XXX染色体上隐性表达,我们可以记为XaX^aXa。于是色盲夫妇就可以使用XaYX^aYXaY和XaXaX^aX^aXaXa分别表示丈夫和妻子。于是剩下的小孩子如果是男性只能是XaYX^aYXaY,女性则只能是XaXaX^aX^aXaXa,全都是色盲。而现在出现了不是色盲的孩子。
是不是突然感觉信息量爆炸?从科学的角度看,有可能是世界级欧皇,抽中了概率极低的基因突变;但是似乎更可能会怀疑丈夫被绿了吧?
凭什么能锤烂
你可能会说,诸葛亮和臭皮匠之间的差距实在是太大了,哪怕是全部的臭皮匠堆在一起也没有一个诸葛亮好,就像是很多个国内CCC刊加起来怎么也比不过一个SCISCISCI的III区一样。
但是,在知识表示中,很多个臭皮匠堆在一起,就成为了一个巨大的智库。最大的优点,就是臭皮匠之间有一定的相似度,就像是有些学的工科有些学的文科有些学的理科,工科之间可以相互交流、文科之间可以相互交流、理科之间可以相互交流;同时理科文科之间协作可以实现更多的可能。
也就是说:
如果说一个诸葛亮都能考虑一些情况,那么很多个臭皮匠就能够在诸葛亮的前提之上,在多出更多的可能。一个诸葛亮算到了草船借箭,更多的臭皮匠一不小心还能量产来福枪。(大人,时代变了!)
另一个很显著的优点就是:一个诸葛亮只能对少量几件事进行统筹规划,而很多个臭皮匠能够独立地思考问题,一个人思考少数几个,很多人思考相当多的问题。简直就是计算机集群了不是么?
要说的学术一点,那就是这样:
知识表示学习的优点:显著提升计算效率,知识库的三元组表示实际就是基于独热表示的,在这种表示方式下,需要设计专门的图算法计算实体间的语义和推理关系,计算复杂度高、可扩展性差。而表示学习得到的分布式表示,能够高效地实现语义相似度计算等操作,显著提升计算效率;有效缓解数据稀疏;实现异质信息融合。
——摘自知乎用户Kaikai在知乎上发布的文章《知识图谱—知识表示(一)》
设计思想
那么,知识表示是如何实现这些优势的?
我们都知道,普通的知识图谱都是三元组,也就是实体、关系和客体三个凑起来的元组。简单的根据元组的要求塞入我们所获取的数据集,也就只能单纯的推出来哪些实体和哪些实体有着一定的关系。就拿JOJOJOJOJOJO来举例吧:
图片摘自贴吧用户七翼千羽XM(该账号已注销,所以没有链接)发布的帖子:尝试画了一下两个世界的JOJO家谱
从这张图里面你能获得什么信息?也就只是单纯的谁和谁有关系。这也是三元组知识图谱的局限。
那么,是不是还能够从各种各样的关系网中推理到什么东西?当然。还记得高中的时候学到的向量表示法吗?三维向量就是这么表示:
A⃗=(x0,y0,z0)\vec{A}=(x_0,y_0,z_0)A=(x0,y0,z0)
而知识图谱里面的知识也是使用三维向量表示的:
I⃗=(主体,关系,客体)\vec{I}=(主体,关系,客体)I=(主体,关系,客体)
既然是三维向量,那么就一定能够使用矢量计算。剩下的问题既然能够变成使用数学模型解决的问题,那就算不上是问题了。
余弦距离
若a⃗\vec{a}a和b⃗\vec{b}b构成夹角θ\thetaθ,那么a⃗\vec{a}a和b⃗\vec{b}b之间的余弦距离就是:
d=1−cosθ=1−a⃗∗b⃗∣∣a⃗∣∣∗∣∣b⃗∣∣d=1-\cos\theta=1-\frac{\vec{a}*\vec{b}}{||\vec{a}||*||\vec{b}||}d=1−cosθ=1−∣∣a∣∣∗∣∣b∣∣a∗b
当然,如果不是用在这里处理三维向量,而是求解高维向量之间的相关度,也可以写成:
d=1−∑i=1nAi∗Bi∑i=1nAi2∗∑i=1nBi2d=1-\frac{\sum^n_{i=1}A_i*B_i}{\sqrt{\sum^n_{i=1}A_i^2}*\sqrt{\sum^n_{i=1}B_i^2}}d=1−∑i=1nAi2∗∑i=1nBi2∑i=1nAi∗Bi
这样或许更容易变成代码一些。
欧式距离
听起来就觉得应该是欧拉做出来的东西,然后马上想到了那个令人闻风丧胆的欧拉公式:eix=cosx+isinxe^{ix}=\cos{x}+i\sin{x}eix=cosx+isinx。是不是马上就开始头疼了?
放心啦,欧式距离实际上就是我们平常看到的距离公式:
d=(x1−x2)2+(y1−y2)2+…=∑i=1n(Ai−Bi)2d=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2+\ldots}=\sqrt{\sum^n_{i=1}(A_i-B_i)^2}d=(x1−x2)2+(y1−y2)2+…=i=1∑n(Ai−Bi)2
如果你熟悉泛函分析,那么也可以将多元素元组看成多维列向量,写成下面的公式:
d=∣∣A−B∣∣2d=||A-B||_2d=∣∣A−B∣∣2
看起来更简洁不是吗?
共同点
两者既然是使用数学模型进行的处理,那一定是需要进行一定程度的量化的。就像自然语言处理中的情感标记、图像分析中的态势感知等情境下对每一个样本进行人工标记一样。
不同点
既然摆在一起,那肯定是各有千秋,且能分别解决不同的问题。虽然两者都需要对向量进行一定程度的量化,但也有完全不相同的地方。
余弦距离能够将两个向量之间的差距使用角度表示出来,所以更注重方向上的差别,是两者间的相对差距;欧式距离能够将两个向量之间的差距使用坐标表示出来,所以更注重相对于统一的参考系的差别,是绝对的差距。这也意味着在依据相关性进行的知识推理中,余弦距离更占优势;而在推荐系统中根据观看次数进行的行为分析中,欧式距离更占优势。
用这些来解决问题
有了这些相关性计算方法之后,问题就好解决很多了。
你完全不是二次元也没有关系,如果把萌娘百科全部的知识用知识图谱联系在一起,那么就能够使用图谱进行相关性演算。如果搜索The World
,就会看到JOJO的迪奥和东方Project的咲夜。而如果只是单纯的图谱,那应该就只会出现迪奥,因为只有他说过这句话。
同样的,诸葛亮能够算出东风,不过是发现了一些容易发现的现象(当然在史实中这件事并不存在);而臭皮匠们则是实实在在的发现了相当多的现象,并且联系起来进行相关性分析,然后推算出了利益最大化的决策。看起来比诸葛亮厉害多了不是吗?
在实际中,也是有很多的用处。推荐系统中根据你的行为进行相关推荐,用的就是余弦距离,用的是物品之间的余弦相似度计算,不过大家听得更多的应该是协同过滤这个名词;同时在对视频网站中用户行为进行分析的时候往往会使用欧式距离,对更精细的播放量进行计算,判断用户是否是该视频网站的重度使用者,并以此为标准进行聚类(我也怀疑这是滴滴平台进行大数据杀熟的操作)。
是不是有点能理解了呢?
知识表示:很多个臭皮匠锤烂一个诸葛亮相关推荐
- bagging算法_集成算法——三个“臭皮匠”级算法优于一个“诸葛亮”级算法
最近在打算法竞赛的时候用到了集成算法,效果还不错,索性就总结了一篇集成算法的文章,希望能帮到正在转行的数据分析师们.集成算法核心思想集成算法的核心思想是通过构建并结合多个学习器来完成学习任务,也就是通 ...
- 三千臭皮匠:集体能否产生智慧?
"三个臭皮匠,抵得上一个诸葛亮."众人的智慧,就一定胜过个人的智慧吗?东吴的孙权帐下,高人策士满堂,哪个比臭皮匠差?诸葛亮孤身一人,却舌战群儒,以三寸不烂之舌,说得东吴联刘抗曹.这 ...
- C语言实现臭皮匠排序stooge sort 算法(附完整源码)
臭皮匠排序stooge sort 算法 臭皮匠排序stooge sort 算法的完整源码(定义,实现,main函数测试) 臭皮匠排序stooge sort 算法的完整源码(定义,实现,main函数测试 ...
- 对话|俞栋:在人工智能的很多应用场景,语音识别是一个入口
俞栋博士1998 年加入微软公司,现任微软研究院首席研究员,兼任浙江大学兼职教授和中科大客座教授.语音识别和深度学习方向的资深专家,出版了两本专著,发表了 160 多篇论文,是 60 余项专利的发明 ...
- 感兴趣的很多,擅长的却没一个
你可能对很多事情都感兴趣,编程.园艺.花艺.烘焙.烹调.摄影.写作.心理咨询.手绘.插画.思维导图.讲书--但有哪一样事情,变成了你的专长,能为你带来收益? 这就是大多数"想想族" ...
- 【超级干货】鸟哥笔记VS知乎刘锤:一个运营牛人的进化论
送给真正的互联网人一顿干货早餐 [小咖导读]作者:鸟哥笔记.知乎刘锤.运营具体都会做些什么?从基础的层面来讲,运营要关注和涉及的工作通常包括了如下三方面--拉新.留存.促活.超级干货的一篇文章,强烈推 ...
- 很多小伙伴找我说要一个Python制作的消灭星星小游戏,必须给你们安排好!!
相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 对了大家可以关注小编的公众号哟~~ Python日志 开发环境 Python版本:3.6.4 相关模块: pygame模块: 以及一些P ...
- html同时播放多个文件夹,怎么把很多文件一起同时放入一个文件夹内
2005-07-28 怎样才能把想要的资料放到我的文件夹里我 最简单的方法是点文件选项,选择另存为时会跳出一个画面,如图001,这时你可以找到"保存在",后面就是你想存放文件的路径 ...
- 清理C盘(浪费了很多时间,终于找到了一个比较高效的方法)
之前由于仗着C盘空间大,任性的往上面装了很多软件(200G). 终于在昨天,C盘飘红了!!!哭唧唧 本来用360的磁盘清理器清理了一下午,以为终于能多点儿空间,结果他妹的越清空间越小,最后直接给我清到 ...
最新文章
- java高并发下的数据安全
- 计算机基础扎实,到底是说什么?
- centos 6.5 安装mysql 5.6.35–libc.so.6(GLIBC_2.14)(64bit),libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
- PHP-递归扫描目录和删除目录
- Java查询图书信息
- Converter Tutorial
- 实体经济不改变经营思路和销售模式
- Git与GitHub学习笔记(一)如何删除github里面的文件夹?
- 特征金字塔:FPN网络 - Pytorch实现
- MachineLearning:一、什么是机器学习
- Silverlight游戏设计(Game Design):(十四)练习用游戏素材资源的获取及相关工具使用心得
- 踩坑之路---JWT验证
- 如何快速搭建php网站,如何轻松建站?站点一键部署搭建(详细教程)
- 在Linux平台中调试C/C++内存泄漏方法 (腾讯和MTK面试的时候问到的)
- Scala历史版本在哪里??
- 巧妙使用css美化网页
- 东北大学C语言课程题库题解专栏目录
- iOS开发篇(二)自定义评分星级条RatingBar
- Python代码cProfile耗时分析及可视化
- 对接亚马逊 SP-API(Amazon Selling Partner API) 第四章:签名