多维数据融合时,为什么不能先做相似度矩阵?【讨论记录】

问:

我想用专利数据识别新兴技术。现在已经整理了技术语义、空间分布和若干结构化信息,准备先为每一类信息分别构造技术主题之间的相似度矩阵,再把几个相似网络融合成一个网络,最后从网络中提取指标。这个设计有什么问题?

答:

先不要看采用哪一种网络融合算法,先回答两个更朴素的问题:为什么必须先变成相似度矩阵?后面用来识别新兴技术的每一个判断,能不能从这些矩阵中重新得到?

相似度矩阵只保留对象之间“有多像”,不会自动保留使它们相像或不相像的原始信息。两个技术主题的语义相似度是 0.8,空间相似度是 0.6,矩阵能够记住这两个数,却未必还记得相似性具体来自哪些词、哪些地区、哪些申请人或哪个时间段。如果后面的识别只需要对象之间的邻近关系,这种压缩可能足够;如果还要判断新申请人是否进入、技术从哪里扩散,或者某种变化发生在什么时候,许多需要的信息在构造矩阵时已经被压掉了。

所以问题不是相似度矩阵能不能做,而是它在整个流程中出现得是否太早。一个中间表示越简洁,往往也意味着它越有选择地遗忘原始数据。后面仍然需要的东西,不能在前面先忘掉。

青岛夜间城市道路与楼宇灯光

问:

能不能举一个信息被压掉的例子?

答:

假设有两个申请人,一个叫“张苹果”,一个叫“李香蕉”。如果把名称当成普通文本去计算语义,它们可能因为都与水果有关而显得相近。但在判断申请主体扩散时,最重要的事实不是两个名字语义相近,而是他们不是同一个申请人。

这个例子看起来有些极端,却能把两类关系分开:语义相似回答“意思像不像”,实体识别回答“是不是同一个”。前一种关系不能替代后一种关系。研究如果要判断某个技术主题是否出现了新的申请主体,就必须保留主体身份及其进入时间;把主体名称压成语义相似度以后,再精巧的网络算法也无法可靠恢复已经丢失的身份关系。

反过来也一样。同一个机构可能存在简称、旧称或不同拼写,这时字符串不同不等于主体不同,需要先做实体消歧。数据表示必须服从所要判断的关系。不能因为所有东西都可以向量化,就认为它们应该以同一种方式向量化。

问:

照这样说,是不是数据就不能压缩,也不能建立相似网络?

答:

不是。任何可以计算的研究都会做选择和压缩,关键是有意识地损失什么。

如果研究已经明确,后续只关心技术主题之间的语义邻近,那么把文本变成向量、再计算相似度完全合理。问题出现在研究尚未确定后面需要什么,就先把不同数据一律变成相似度矩阵,随后又希望从矩阵里提取申请人扩散、空间迁移和时间变化。此时,前面的表示和后面的任务并不匹配。

更稳妥的顺序通常是先保留对象层面的必要信息。文本可以形成语义表示,地理位置可以采用适合空间关系的编码,类别字段可以使用分类变量的表示,申请主体要保留经过消歧的身份,时间则要保留其先后次序。完成这些对齐之后,再根据研究任务决定哪些信息适合融合、哪些信息应作为独立属性保留。技术主题的表示形成以后,如果后续确实需要网络,再计算主题之间的相似度并构建网络。

这并不是说“先向量、后网络”在任何研究中都是唯一正确的流程,而是提醒研究者:每一次转换都应当晚于它所依赖的研究判断。不能先选择一种方便的表示,再倒过来修改问题以适应它。

问:

时间也是一个维度,为什么不能和文本、空间一起融合到同一个向量中?

答:

因为时间在这类研究中往往不只是对象的一项属性,还是观察变化的坐标轴。如果把多年数据一次性融合成一个静态向量,最后得到的可能是某个技术主题在整个时期内的平均状态。它什么时候出现、什么时候突然增长、先在哪里出现而后扩散到哪里,都可能被平均掉。

一种更合适的处理是保留时间切片。每一年、每半年或每个月分别形成当期的主题表示或网络,再观察同一个节点怎样跨期变化。切得越细并不自动越好:月份数据可能稀疏,年份数据又可能错过真正短暂的早期变化。时间粒度要服从现象发生的速度和数据能够支持的稳定程度,而不是为了得到更多样本或让图形更复杂。

时间不能过早融合,还有一个直接后果。只有保留了连续切片,研究才可能区分“现在很突出”和“刚刚开始变得突出”。前者是状态,后者才包含变化方向。所谓早期识别,恰恰依赖这种方向信息。

北京城市建筑之间的铁路轨道

问:

那么到底应该保留哪些信息、融合哪些维度?是不是把能够找到的数据都放进去更稳妥?

答:

不能从“手里有什么数据”直接跳到“模型里放什么数据”,中间还缺少对研究对象的定义。

先要说清楚,什么样的技术在这项研究中算作新兴技术。定义中如果包含新颖、增长和影响等不同含义,就要继续追问每一种含义能够通过什么可观察现象表达,哪些数据能够支撑这些现象,最后才轮到选择表示和算法。这样形成的是一条从概念到计算的链,而不是在数据表里挑几个字段以后,再为它们寻找理论名称。

有一个很直观的例子。假如研究要识别“关键共性技术”,先把“关键”和“共性”拆开。“关键”如果被界定为某个技术节点一旦移除,整个技术网络的连通性会明显受损,那么节点移除后的网络变化就是一个与定义相呼应的测量方向。这里不是因为某个中心性算法流行才使用它,而是定义先提出了一个可检验的结构含义,算法随后负责计算这个含义。

新兴技术识别也应如此。先问什么样的节点算新兴,再问网络、时间、主体或空间信息分别能支撑其中哪一部分。定义、数据和算法如果不能逐层对应,多维融合只会让无法解释的变量更多。

问:

如果机器学习能够直接从融合数据中识别结果,还需要事先把这些概念说得这么清楚吗?

答:

需要。机器学习可以学习输入与标签之间的关系,却不能替研究者决定标签所代表的概念是否成立,也不能保证模型利用的是研究者以为的那种关系。

一个很有效的检查问题是:在暂时不说模型名称的情况下,什么样的网络节点应当被判定为新兴技术?如果这个问题答不出来,那么换成更复杂的模型也不会自动补上定义。模型可能找到申请量大的主题、连接密集的主题或最近突然出现的主题,但其中哪一种等于“新兴”,仍然是研究设计的判断。

算法可以很复杂,指标也可以只有一个。一个关于时间变化的判断,可能需要比较许多期网络、检测拐点并形成稳定性检验,最后才得到一个分数。相反,列出很多指标却不能说明它们分别对应定义中的什么,只是把概念上的不清楚转化成了计算上的繁忙。

问:

识别完成以后,把不同年份的空间图和技术轨迹画出来,是否就构成了技术演化研究?

答:

还不够。逐年画图能够呈现变化,但“变化”与“演化”之间仍然隔着对规律的解释。

某项技术今年集中在一个地区,明年扩散到几个地区,这是一段观察到的轨迹。演化研究还要追问,什么样的状态更可能转入下一种状态,哪些技术从普通变为新兴,哪些技术短暂突出后又衰落,这种转变是否存在能够重复观察的规律。图把发生过什么显示出来,模型则要说明这些变化之间是否存在结构。

录音中用了一句很形象的话来解释隐状态模型:它是在“拿结果猜过程”。研究者看到的是一项技术在时间轴上的连续表现,再利用这些观察推断背后可能存在的状态及其转移。这个说法抓住了模型的用途,但不能反过来变成选模型的理由。只有当研究问题确实关心不可直接观察的状态转移,数据也足以支持这种推断时,隐状态模型才合适。否则,换一个复杂模型只是给年度变化图增加了技术名称。

问:

怎样在真正计算之前,检查这套研究设计有没有在中途丢掉关键东西?

答:

可以从终点往回追。最后要作出哪几个判断,每个判断需要哪些可观察信息,这些信息在数据处理的哪一步进入,又在哪一步可能被压缩。一直追到原始数据,任何一段接不上,都说明研究流程里存在一条只在图上连着、信息实际上没有通过的箭头。

还可以对每次转换做一次“可恢复性检查”。申请人数据变成相似度以后,还能不能知道谁是新进入者?多年数据合成一个向量以后,还能不能识别变化发生的时点?空间信息进入融合表示以后,识别结果为什么仍然能被解释为空间扩散?如果答案是否定的,而后面的结论又依赖这些信息,就不能把问题留给后续模型解决。

多维数据融合的难点从来不是把多少种数据放进同一个容器,而是让每一种必要信息在经过转换以后,仍然能够在最终判断中说话。融合不是把差异抹平;好的融合知道哪些差异可以压缩,哪些差异必须留下。