计算创意学系列(三):组合性创造力的计算实现( 二 )


可以理解为 , 映射器和整合器只是在纯语法(Syntactical)的层面上穷举出所有形式上合法的新概念 , 而概念工厂模块则真正从语义(Semantical)的层面审视这些新概念的含义 , 判断它们是不是真正有意义的概念 。
比如说 , 下图的来自两个输入知识领域的概念网络:
计算创意学系列(三):组合性创造力的计算实现
文章图片
映射器模块会将“长着鸟鬃毛的马” , “长着马翅膀的鸟” , “长着4条鸟腿的马” , “长着两个马翅膀的鸟” , “既有4条腿又有2个翅膀还长着鸟喙的生物” , “既有4条腿又有2个翅膀还长着鬃毛的生物” , “既有4条腿又有2个翅膀既长着鸟喙又长着鬃毛的生物” , “没有腿但有鬃毛的生物”等等等等所有可能性无脑地组合出来 , 也不管组合出来的概念究竟意味着什么、是不是合理、对用户有没有用 。
而概念工厂模块则会进一步去考虑这些概念的含义 , 比如“如果马的鬃毛同时又是一只鸟 , 那这些鬃毛就该又具有翅膀和鸟喙” , “因为马是一种生物 , 如果翅膀变成了马 , 翅膀就也应该具有生或死的状态” , “如果一个生物既有腿又有翅膀 , 就既能在陆地移动也能在天上飞行 , 但这个生物还是不符合用户给出的‘会游泳’的要求” , “‘一匹会飞的马’比起‘一只长了鸟鬃毛的马’来 , 前者是一个更有内聚性的概念” , 等等等 。
在两个概念网络之间寻找节点对应方式的映射器模块 , 也不是完全“无脑”地进行组合 。 即使不考虑概念的实际含义 , 单纯从形式上看也能发现 , 两个概念相似程度越高 , 就越适合进行整合 。 映射器至少会在这个形式层面上筛选出合适的组合 。 当概念网络表示成为图数据结构时 , 这个问题被转换为在两个图中各选择一个节点 , 从而以这两个节点为中心延伸出的子图结构最相近(结构对齐问题;StructurallyAlignment) 。
因此概念工厂模块就不可能一个一个地检查所有这些组合所对应的整合概念网络 , 来找到其中最优的一个 。
概念工厂模块采取的应对策略是一种叫做遗传算法(GeneticAlgorithm)的搜索策略 。 遗传算法模仿达尔文进化论所描述的生物进化过程 , 将搜索空间中的每一个可能的解都看作是一个生物个体 , 各自有独一无二的基因型(Genotype) , 在其作用下演化出各种各样的表现型(Phenotype);遗传算法进而引入适应函数(FitnessFunction)来模拟生物界的优胜劣汰——适应函数是以个体的表现型为自变量的函数 , 遗传算法会选择出那些表现型代入适应函数之后取值较高的解 , 对这些解进行某种形式的“融合”得到下一代的解(模拟生物交配) , 再用适应函数去评估这些下一代的解 , 如此重复一定迭代次数之后 , 将最新一代的解看作是目前计算资源下能找到的近似最优解 。
在DIVAGO的概念工厂模块中 , 每一个整合概念网络都是一个可能的解 , 其基因型被定义为这个整合概念网络所整合的那两个概念、以及这两个概念映射到一起的方式(是映射到了整合网络的同一个概念、还是各自映射到了整合网络的一个概念);表现型则被定义为最后得到整合概念网络以及在它的基础上能够推论出的所有信息 。 适应函数则是将整合概念网络在Fauconnier和Turner的“最优原则(OptimalityPrinciple)”的每一项上进行打分 , 再总和到一起得到的综合分 。 打分时占比重最大的一项最优原则是“相关原则(Relevance)” , 即新概念在多大程度上符合用户一开始输入的对有用概念的定义 。
计算创意学系列(三):组合性创造力的计算实现