BOSS: Bayesian Optimization over String Spaces
1.摘要
本文提出了一种直接作用于原始字符串的贝叶斯优化方法,提出了BO循环中的遗传算法。近些年,贝叶斯在字符串上的优化经常被一个问题所阻碍,那就是我们需要把字符串映射到一个光滑的不受约束的拉丁空间上。我们这样做常常会导致大量的技术和需要大量的数据。
所以本文基于字符串核SSK建立了一个高斯过程代理模型,它不受长度限制,且可以在带语法约束的空间上对获取函数最大化。
2.介绍
本文这里对近些年在BO和字符串类优化问题上的文献做了回顾。并正式提出本文的3点改进:
- 我们将字符串内核SSK引入到BO中,提供了只有两个驱动数据的参数的复杂目标函数的强大GP代理模型(见下图a)。
- 我们提出了一套适用于在各种语法约束下有效优化获取函数的遗传算法
- 证明上诉两点的效果
3.准备工作
贝叶斯优化(BO)
略
字符串内核(SK)
SKs是一个对字符串进行操作的内核集,它通过它们(字符串)共享的子字符串的数量来测量它们的相似性。然后,特定的SK由它们所包含的子字符串的特定定义来正式定义,它定义了内核的底层特征空间。
本文使用了一个来自 Text classification using string kernels和Word-sequence kernels的Sub-sequence String Kernel (SSK),它使用字符的子序列作为特征。它的子序列可以是不连续的,从而产生一个指数大小的特征空间。虽然枚举这样的空间是不可行的,但SSK使用内核技巧来避免在原始空间中的计算,并通过一个有效的动态编程算法实现。通过匹配子序列的出现,SSKs可以提供丰富的字符串数据的上下文模型,远远超出了流行的限定长度为n的表示能力(其中只对连续出现的子字符串进行建模)。
SSK在第n阶的定义如下:
其中,a和b是两个不同的字符串。
Σ
n
Σ^n
Σn表示从字符表
Σ
Σ
Σ中得到的包含
n
n
n个字符的所有可能的集合。
1
x
(
y
)
1_x(y)
1x(y)表示一个用于衡量
x
x
x和
y
y
y是否匹配的指标函数。匹配的衰减率
λ
m
∈
[
0
,
1
]
\lambda_m\in[0,1]
λm∈[0,1],差距的衰减率
λ
g
∈
[
0
,
1
]
\lambda_g\in[0,1]
λg∈[0,1],它们两是核里的超参数。
直观地看,
c
u
(
s
)
c_u(s)
cu(s)衡量的是子串
u
u
u对
s
s
s的贡献。通过两者距离的乘积
c
u
(
a
)
c
u
(
b
)
c_u(a)c_u(b)
cu(a)cu(b)衡量字符串
a
a
a和
b
b
b的相似度。
为了保证变长的字符串比较有意义,本文使用正则化后的字符串核:
4.算法
本文优化问题可以简单描述为找到一个字符串
s
s
s使得在函数
f
f
f下映射后值最大,即。
本文考虑3种带有语法约束的字符串和约束不完全知道的一种基于采样的方法。
- 无约束:允许仅由字母表 Σ Σ Σ中的字符组成的任何字符串。 S S S包含具有任意(或固定)长度的所有这些字符串。
- 局部约束: S S S是一个固定长度的字符串的集合,其中每个字符的可能值集取决于它在字符串中的位置。
- 语法约束: S S S是由 Σ Σ Σ生成的字符串,它必须满足上下文自由语法指定的语法规则。
- 候选集:具有未知或非常复杂的语法规则的空间,但我们可以访问大量有效字符串的集合。
4.1字符串空间的代理模型
在这计算的瓶颈不再是模型的训练时间,而是在最大化获取函数时的大量核函数评估。因此,本文开发了两个修改来提高SSK的效率和可伸缩性。
4.2字符串空间上的获取函数优化
本文采用遗传算法来最大化获取函数,在GA里,本文使用到两个算子,交叉和变异。
无约束字符串和局部约束字符串上的GA
在这两种情况下,只需要采取简单的交叉和变异操作即可。变异:随机选择一个位置 i i i,在 Σ Σ Σ或 Σ i Σ_i Σi集合里选一个即可。交叉:随机选择一个位置 i i i,然后交换该点后的字符串即可(注意长度为两字符串更小者,这样字符串中字符的相对位置不会被此操作所改变,因此子代字符串仍然满足空间的约束)
对于受语法约束的字符串空间的GA
虽然很难定义维护不同长度字符串的语法规则的字符级突变和交叉操作,但可以在解析树上定义合适的操作,这些结构详细说明了用于创建特定字符串的语法规则。根据基于语法的遗传编程的想法(Grammar-based genetic programming: a survey),突变随机用由同一头节点生成的新树替换子树,并交叉交换两个父节点之间共享头节点的两个子树(见下图)。
当从语法中采样字符串来初始化GA并执行突变时,通过递归地选择随机语法规则来构建解析树的简单策略会产生长而重复的序列。相反,我们采用了一种采样策略,它根据特定规则在当前解析树分支中已经发生的次数来降低选择特定规则的概率。
5.实验
本文代码在:https://github.com/henrymoss/BOSS
无约束的合成字符串优化
该实验放在了论文正文部分。如上图,共有7个实验,第一个of"101"表示字符串种101的个数,搜索空间是20维的{0,1}空间。第二个表示字符串种不重复的101个数。第三个的?表示可以是任意的字符。
受局部约束的蛋白质优化
受语法约束的字符串优化
对候选程序集的优化