谷歌造出AI调香师:看一眼分子结构,就知道它闻起来什么味儿
郭一璞 发自 凹非寺
量子位 报道 | 公众号 QbitAI
图像、语言、声音、游戏,一直是AI界最喜欢“调戏”的几个目标。
不过现在,谷歌把手伸向了一个不同的领域——气味。
把一个物质的分子结构,经过两轮神经网络的处理,就能把知道这种东西闻起来是玫瑰的芬芳,还是烤肉的香气。
这就是一个AI调香师嘛!
而且,还能顺便把气味“量化”,让计算机理解气味。
这不禁让人觉得,或许有一天我们可以通过计算机和通信系统传输气味了呢,看美食纪录片的时候也能闻到节目里的菜品了。
万物皆可向量
向量,一直是机器学习er的好盆友,不止在研究语言的时候有词向量,研究分子的时候,也可以把它用向量表示。
我们知道,分子是很多不同原子按照一定规则连接在一起的,每个原子就是一个节点,因此可以把每个节点用一个向量表示,然后每个节点上的原子再把向量传递到它的邻居原子那里去。
每个向量里,可以把它是什么元素、氢键的数量等各种中学化学课本里的基本特性带上。
而每个原子和什么样的原子连接,构成了分子的模样,也决定了它是什么物质。因此,需要把每个节点上的原子和它“邻居”们的信息打包在一起,用神经网络转换成关于这个节点的新信息。
这样,就可以用计算机的“思维方式”表述一种化学物质了,这种方法可以用图(graph)表示。
然后,把图扔进一个图神经网络(GNN)里,就可以预测出这种分子闻起来是什么味儿了。
看这张动图,就为我们展示了这个过程的全貌:
整个过程需要两只神经网络,完成这样的转化:
△ 画的不好,大家感受下
香味数据集
思路已经有了,那么为了训练神经网络,需要一些数据,能把一种分子和它是什么味儿的对应起来。
这下,香水行业的人类专家们发挥了自己的作用。
研究者们找到了两个经过专业调香师标注的数据集,有3784个分子的GoodScents香水材料数据集和有3561个分子的Leffingwell PMP 2001数据集,去重之后剩下了5030个分子,组成了QSOR的数据集。
每种分子都配有一到十几个文字描述的标签,比如菠萝味、奶酪味、面包味、坚果味,或者……没味。
△ 有X个标签的分子 & 每个标签下有多少种分子
这样复杂的描述听起来很像高级红酒、咖啡、或巧克力对它们味道的描述,写着有柑橘味、莓果味、坚果味,可是你喝的时候却感觉差别不大,只能得出一个结论:真香。
毕竟,普通人也不知道标签里的Sweet Green是什么味道啊!
不过,这个数据集也有个bug:
因为它是香水行业的数据集,所以只有香味,没有臭味……这也可能是个feature?
最后,不用的方法在这个QSOR数据集上的表现是这样的,GNN得到了最高的分数:
如何量化气味
不过,如果只是能用香菜味、烤肉味这样的词汇来形容气味,势必无法完成更深入的研究,因此,需要用计算机的方法系统的将各种分子和气味表示出来。
我们知道,图像在计算机上是一个一个的像素格子,然后把每个格子的颜色表示为RGB值,只要知道了RGB值,就能知道它是红的还是绿的,深色还是浅色。
音频也有自己的波形图。
那么,气味该怎么表示?
和NLP世界的词嵌入一样,研究者们用了一种叫“气味嵌入(odor embedding)”的方法:
在用气味嵌入的方法后,看起来和PS里的RGB图非常类似,不同的区域意味着不同的味道。
这样,计算机就可以用自己的方式理解气味了,气味也和图像、文字、声音一样,实现了电子化。
传送门
论文:
Machine Learning for Scent: Learning Generalizable Perceptual Representations of Small Molecules
https://arxiv.org/abs/1910.10685
谷歌博客:
https://ai.googleblog.com/2019/10/learning-to-smell-using-deep-learning.html