说到程序员着装,大家会想到什么?
自然是格子衬衫了。
但一个外国程序员,终于对此厌倦,他不想再穿格子衬衫或条纹衬衫,于是他打开了亚马逊网站,输入了关键词“无条纹衬衫”(shirt without stripes),结果却是这样的:
为什么几乎全部都是带条纹的衬衫啊?
“一定是我打开的姿势不对!”
或者只是亚马逊的自然语音处理(NLP)技术不够好吧。
他又接着尝试了谷歌和微软的搜索引擎,结果却还是这样:
反正结果就算不是衬衫,也一定带条纹,甚至还搜出了球衣。
如果把关键词换成“没有格子的衬衫”(shirt without plaid),结果还是让人失望。
是不是感到这个世界满满的恶意?程序员想买个没有格子的衬衫怎么就这么难!
接着,这位程序员把搜索结果上传到GitHub,短短十个小时就获得了300星。
更让人没想到是,这件小小的事情影响范围还在扩大,几个小时就在Hacker News上带了400多条评论。
看来有相同槽点想吐的人,并不少。
并且事情也“闹大”了。
大家发现,何止搜索引擎,现在你只需一个“不”就能让AI助手变“人工智障”。
打开你的Siri,和它说“不要告诉我天气”,但Siri还是义无反顾地告诉了你天气状况。
那么问题来了:为什么AI会犯如此低级的错误呢?
人工智能的盲区
无论是搜索商品图片还是询问天气,加上了一个“不”或“无”字,就变得复杂起来。
这个“不”到底是哪个部分做出否定,可能人类也说不清楚。
这类问题属于“归因”问题,可能是统计学方法不能解决的,这就触及到机器学习的盲区了。
在上面的问题中,处理一个“不”还算比较清晰,但是在一些对准确性有要求的领域,会有很大的问题。
比如“无癌症证据”,到底是得到了没得癌症的证据,还是根本没有证据呢?
这还算是比较简单的,人类语言中还有很多双重否定,有时候连人自己表达的时候都会犯错。
处理这类问题,不能使用过去的统计方法,而需要更多关注语法内在的逻辑性,语言学中的乔姆斯基学派的研究者就是这么认为。
但是涉及此类算法的研究很少,甚至很多从事算法的人对此并不感兴趣。
一些从事机器学习研究的大型公司,他们研究的算法具有很大的适用性,但是在归因等情况下,他们的语言模型可能会失败。
而且神经网络尚未显示出对此问题的改进。在说“不”这个问题上,各家的AI都不能通过图灵测试,甚至显得愚蠢。
所以是不是“另有隐情”?
技术不行还是SEO捣乱
是不是因为谷歌没有在搜索引擎里用上NLP技术,所以才导致错误的结果?
实际上,谷歌去年10月就已经在英文版的搜索引擎里用上了BERT。
过去,谷歌的搜索更多的是基于单个单词的理解。
比如“2019 brazil traveler to usa need a visa”,以前的谷歌搜索会基于visa、usa、brazil这几个关键词,而英文结果里更多的是美国人咨询去巴西,所以搜索结果往往是相反的。
更新后的谷歌能够理解“to usa”的含义,才能识别正确的结果
于是这让一些网友觉得,谷歌亚马逊研究多年的NLP技术不过如此,要理解人类语言还有很长的路要走。
不过,经过努力,计算机已经能够搞清楚英文里的“无癌症证据”(No evidence of cancer、Evidence of no cancer)两者之间的差别。
当然,还有一些技术之外的因素。
任何搜索引擎都绕不开SEO和广告问题。
那些卖条纹衬衫的商家会通过各种优化手段,霸占“条纹”和“衬衫”这两个关键词的头部位置,结果导致“no”和“without”之类的关键词被忽略。
一些网友认为,是SEO的垃圾信息毁了搜索引擎,同时广告还是是谷歌搜索的重要收入来源,谷歌自己可能也无心解决——这一点自然无法妄加揣测。
不过,我们也用最大的中文搜索引擎试了试,发现也是一样的结果:
但往好的一面看,这也意味着时代之问有解了。
之前,总有人“抬杠”,在智能时代里,你无法判断跟你交流的是人类还是AI……
但现在,钥匙来了:机器是不能说“不”的。
参考链接:
https://news.ycombinator.com/item?id=22925087
https://github.com/elsamuko/Shirt-without-Stripes
“