百度、阿里们请不要再用“文本相似”来误导行业了

    一直以来总有一些一知半解的人跟我讲“你做的那些10年前人家就放弃了”“你对行业的认知还停留在10年前”等等。这些人不知道的是:

    1.我研究这个技术20年以来,不断有行业科班出身的教授和博士跟我讲,“你怎么还在搞。我都放弃了,这个行业实在太难了。”

    2.我和主流研究的其实不是一个东西。他们是统计学方向,我是语言学方向。通常讲的自然语言处理是统计学方向的。他们的技术更适合做搜索,我的技术更适合做问答。他们处理的是文本,我处理的是语义。这里的差别比大象和蚂蚁还大。

    3.主流把文本相似当成了语义相似。大公司的网站上就是这么标注的。他们成功地把整个行业带偏了。文本相似的本质是搜索相关,文本相似没有边界,两段实际上不相干的文字都有文本相似。文本相似产生了大量的“语义噪声”,它天然无法准确计算语义相似。我们用句子主干表示语义,句子主干相同,语义相似。我们的算法天然屏蔽了“语义噪声”。

图片

    4.对于语义的定义,我和主流理解是不同的。他们理解的语义其实是搜索的相关性。我理解的语义就是句子要表达的意思,而句子主干表达了句子语义的主要部分。他们理解的语义是无限开放的。在他们看来“大象”和“狮子”“老虎”“男人”“幼儿园教师”都有语义相似性。我理解的语义是有文本承载的,但它是有边界的,我常说语义是个圈。在我看来“大象”和“狮子”“老虎”“男人”“幼儿园教师”没有语义相似性。他们的语义没有边界,所以无法处理否定。我的语义是个圈,圈子里是肯定,圈子外是否定。比如,在我看来“人”和“非人”是相互否定的。“人”和“动物”不是相互否定的,因为“非人”不等于“动物”。一般来讲,两个名词之间没有否定关系,它们更多的是语义不相似(语义的圈子不重叠);只有两句话才会构成否定关系。但在以下这句话里,两个名词的语义就是相互否定的:“世界上只有两种A,一种是B,一种是C。”在这句话里,B和C就是相互否定的关系。但离开这句话,B和C就不是否定关系了。

    基于以上原因,我常常说我不是做自然语言处理的,因为很多人公众对自然语言处理的理解就是统计学自然语言处理。我真想给大公司说一声,你们能不能别在你们的网站上把文本相似说成语义计算技术,你们成功地把整个行业带偏了,误人匪浅。有些公司构建了个几十人甚至上百人的团队沿着你们的指引做问答机器人,一年几千万的投资,做出来的东西在语义理解的准确度、跨场景的跳转、输出结果的稳定性、输出结果的可控性、输出结果的唯一性等等方面存在严重缺陷。你们继续把文本相似当成语义相似宣传,将会浪费大量社会财富。

    说我们落后了10年的人,对我们根本不了解,对行业也不太了解。他们可能习惯了崇拜大公司,习惯了崇拜行业大牛。这是缺乏独立思考精神的表现。他们有的根本没看我的文章,有的看了也看不懂。

图片

    昨天和一家规模不小的机器人公司的老板和技术负责人交流机器人大脑的事情。他们反馈他们基本用的就是某大公司的文本相似技术做语义理解。他们遇到的问题和我分析的差不多。大致如下:

    1.文本相似对比的结果是文本相似值,这个值是根据词向量和句子向量计算出来的。词向量和句子向量实际上就是搜索的相关性。搜索的相关性是是个非常宽泛的概念,“爸爸”“妈妈”“叔叔”“阿姨”“小狗”“小猫”都多多少少有搜索的相关性。这样,任何两句话多多少少都有一些文本相似性。

    语义计算用文本相似技术,每次计算,要用来排序的数据可能都是个海量数据。

    在具体的项目里,我们不可能把所有文本相似度大于0的结果都拿出来使用。一般都需要确定一个阈值,只拿高于阈值的数据来做进一步计算。但这个阈值究竟是多少才合理,根本没法确定。经验认为0.82以上就是文本相似,低于0.82的数据就是没价值的数据。但实际上在项目里,这个值是个动态的,有时候需要放到0.3才能出来结果。究竟是0.82还是0.3并没有科学的标准。实际上0.82和0.3可能都是错的。因为无法科学地确定阈值,就导致了输入结果实际上不可控。

    2.正如上文所讲,由于使用了文本相似技术,文本相似技术的本质其实是搜索的相关性,这就导致了要处理的数据太多。由于文本相似并不是真正的语义相似,导致真正要输出的结果可能并不是文本相似度最高的那个结果。文本相似技术导致计算过程中产生了大量的干扰数据,我把这些干扰数据叫“语义噪声”。机器人知识库中的知识越多,通过搜索相关性查询出来的数据就越多,“语义噪声”就越大。“语义噪声”越大,文本相似度最高的那个结果可能就离正确的结果越远。比如从“老张打了老王”“老王被老张打了”“老王把老张打了”“老张让老王给打了”“老王想打老张”这组句子里使用文本相似技术,找出来和“老王要打老张了”相似值最高的一句是一件很难的事情。实际上找出来的结果大概率不是语义相似的,只是文本相似的。

图片

    3.由于使用了文本相似性技术,产生了“语义噪声”;数据量越大,“语义噪声”越大,导致这家机器人公司不敢接太大的项目。大于2000条的知识库对他们来讲就是难度很大的项目了。对于一个训练好的知识库,增加新的知识就会产生新的“语义噪声”。

    4.输出结果不唯一或者不可控。搜索的相关性不是真正的语义相似性,主流技术无法科学确定语义相似的阈值,导致输出结果无法把控。用户问“离婚证怎么办”,他们给的结果可能是“结婚证怎么办”。今天机器人对一个问题的回答是对的,明天可能就错了。

    昨天和这家公司交流完技术,我就想到了“语义噪声”和“语义降噪”这两个词。我去网上搜了下“语义噪声”这个词以前就有人提过。“语义降噪”这个词可能是我首提的。

    我们从以下几个方面理解一下语义噪声:

    1.什么是语义噪声?什么是语义降噪?

    如果对语义噪声下个定义,它是指在对一个例句和一组句子做语义相似对比时,需要被排除掉的句子。语义噪声和输出结果是相互否定的。

    例句:“老王要打老张了”

    对比句:

    “老张打了老王”

    “老王被老张打了”

    “老王把老张打了”

    “老张和老王要打他了”

     “老王想打老张”

    “老张让老王给打了” 

   

    比如上面一个例子, “老王想打老张”就是输出结果,其余都是语义噪声。排除语义噪声,找到想要的输出结果的处理过程就是语义降噪。

    2.语义噪声是怎么产生的?

    主流技术做问答会产生大量的语义噪声。由于他们的技术实际上是搜索相关性计算,从机器人的知识库里能搜索出来海量和用户输入相关的知识。这些搜索结果基本都是语义噪声。这些搜索结果的数量是10还是10万,主流技术无法科学地划清楚界限。

    有些技术人员片面强调搜索结果的泛化性,片面扩大搜索结果范围,也是导致语义噪声过大的原因之一。比如“为什么说彩虹有七种颜色”和“彩虹是怎么形成的”没有语义相似性,但有搜索的相关性。当用户问“为什么说彩虹有七种颜色”,主流的技术人员会把“彩虹是怎么形成的”放在备选列表里。他们认为这是自然语言处理技术泛化能力的体现。

    在具体的项目里,由于语义噪声过大,可能导致主流技术无法准确从备选列表中找出想要的输出结果。这就好像在嘈杂的环境里,我们听不清楚对面和我们聊天的人在说什么一样。

    而我们句子主干语义相似对比技术则不存在这个问题,我们要处理的语义噪声要小很多。

    3.语义降噪可能本身就是错的。

    主流技术本身的缺陷导致了大量的语义噪声的存在。因为用统计学自然语言处理技术(我常常把它叫搜索技术)做问答本身就是错的。

    据说南极的企鹅家庭是通过叫声去分辨彼此的。当一群企鹅一起发出叫声时,企鹅爸妈要从声音中分辨出自己的孩子就要处理大量的噪声。我们人类无法分辨出来企鹅们的叫声有多大差别,企鹅爸妈们却总能从叫声中分辨出自己的孩子。这个处理的过程和我们从一堆照片中找到想要的照片肯定是不同的。

    现在语音识别技术不断完善,语音降噪技术越来越成熟了,即便在嘈杂的环境里语音识别的结果也能相当完美。我不懂语音识别技术。但我推测语音降噪技术显然不是一种搜索技术,它处理的是实时数据,不是静态数据。南极的企鹅们可能天然就具备了语音降噪的能力。

    统计学自然语言处理技术做问答,天然会产生大量的语义噪声。他们做语义降噪的过程,就是根据文本相似或者类似的技术排序,把相似度最大的值作为输出结果给用户。由于文本相似本质上是搜索相关,不是语义相似,他们的计算结果很可能是错的。所以在具体的项目里,为了提高命中率,他们的输出结果经常是个列表。给列表的就不是问答了。

    如上文所讲有些技术人员片面强调搜索结果的泛化性,泛化做得越泛,语义噪声就越大。但泛化范围小了,就会影响语义理解的准确性。在统计学自然语言理解技术做问答时,泛化性和准确性是一堆天然无法调和的矛盾。

    理解了语义噪声,就理解了我们技术的价值。我们提取句子主干计算语义。我们认为句子主干相同才有语义相似性。这样天然屏蔽了大量语义噪声,因为有搜索相关性的句子大多句子主干是不同的。比如上文提到的“为什么说彩虹有七种颜色”和“彩虹是怎么形成的”,它们的句子主干就不同。由于没有太多语义噪声的干扰,我们输出结果也是稳定的和可控的。对于语义计算来讲,输出结果的稳定性和可控性是至关重要的指标。对于我们技术,这里不多介绍,我写了大量的文章介绍过。大家可以通过搜引擎搜“氖星智能”或者“氖星彭军辉”来获取我们的相关信息。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值