CN116821436B - 一种面向模糊查询的字符串谓词准确选择估计方法 - Google Patents
一种面向模糊查询的字符串谓词准确选择估计方法 Download PDFInfo
- Publication number
- CN116821436B CN116821436B CN202311072853.1A CN202311072853A CN116821436B CN 116821436 B CN116821436 B CN 116821436B CN 202311072853 A CN202311072853 A CN 202311072853A CN 116821436 B CN116821436 B CN 116821436B
- Authority
- CN
- China
- Prior art keywords
- time step
- character
- input
- hidden state
- current time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000001537 neural effect Effects 0.000 claims abstract description 41
- 238000011156 evaluation Methods 0.000 claims abstract description 30
- 238000012549 training Methods 0.000 claims description 50
- 239000013598 vector Substances 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 12
- 238000003058 natural language processing Methods 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
Abstract
一种面向模糊查询的字符串谓词准确选择估计方法,将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,训练所述自回归神经语言模型。将实际查询语句中谓词的单个字符依次作为当前时间步的输入,结合先前时间步的隐藏状态确定当前时间步的隐藏状态。基于所述实际查询语句中各个谓词的下一个字符的概率分布,确定所述各个谓词的选择性评估概率。以往神经语言模型主要用于自然语言处理。本方法认为传统方法为简易语言模型,提出使用NLM应用于数据库字符串谓词选择性估计,NLM可以不需要构建字典和统计信息即进行估计,为数据库字符串谓词选择性估计任务开辟了新的高效解决途径。
Description
技术领域
本发明涉及数据库搜索方法术领域,特别是一种面向模糊查询的字符串谓词准确选择估计方法。
背景技术
在数据库中,对字符串谓词进行准确的选择性估计一直是一个长期存在的研究挑战。在数据库查询优化中,选择性估计是一个关键的步骤,它决定了优化器选择哪个执行计划以最大程度地减少查询的执行成本。对于包含字符串谓词的查询,特别是涉及字符串的模式匹配(如前缀、子串和后缀匹配),选择性估计变得更加复杂和困难,因为字符串的复杂性和多样性使得准确估计选择性成为一项具有挑战性的任务。
传统的方法通常采用剪枝摘要数据结构(如tries)来构建索引或数据结构,以加速字符串模式的匹配过程,然后通过统计相关性来估计字符串谓词的选择性。然而,这种方法存在一些局限性,首先,剪枝摘要数据结构可能需要较大的存储空间,特别是对于包含大量字符串的数据库。其次,统计相关性在处理字符串模式匹配时可能产生不够准确的基数估计,导致查询优化器选择次优的执行计划。
因此,亟需一种面向模糊查询的字符串谓词准确选择估计方法。
发明内容:
本发明提供一种面向模糊查询的字符串谓词准确选择估计方法,该方法用于解决背景技术所述的,现有数据库在进行准确估计选择性时,需要大量数据库且计算不精确的问题。本发明的具体技术方案如下:
第一方面,本发明提供一种面向模糊查询的字符串谓词准确选择估计方法,包括:
将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,训练所述自回归神经语言模型,使得所述自回归神经语言模型生成时间步的隐藏状态;
将实际查询语句中字符串的单个字符依次作为当前时间步的输入,结合先前时间步的隐藏状态确定当前时间步的隐藏状态,并确定下一个字符的概率分布,所述当前时间步的隐藏状态用于预测各个所述谓词的下一个字符的概率分布;
基于所述实际查询语句中各个字符串的下一个字符的概率分布,确定所述各个字符串的选择性评估概率,所述选择性评估概率用于数据库的执行优化器进行选择最优计划。
进一步的,所述将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,训练所述自回归神经语言模型,包括:
将所述数据库的整个语料库进行向量化处理,生成字符向量序列;
将获取的查询语句进行向量化处理,生成字符向量;
将所述字符向量序列和所述字符向量作为所述自回归神经语言模型架构的输入进行模型训练;
将所述先前时间步的隐藏状态和当前输入进行结合,得到当前时间步的隐藏状态,所述当前输入为所述自回归语言模型架构的输入的一个字符向量;
基于所述当前时间步的隐藏状态确定所述当前输入的预测概率分布。
进一步的,将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,之后还包括:
在模型训练过程中,通过交叉熵损失函数确定所述预测概率分布和实际目标字符的差异;
基于所述预测概率分布和实际目标字符的差异,对所述自回归神经语言模型架构的可训练参数进行修正。
进一步的,所述将实际查询语句中字符串的单个字符依次作为当前时间步的输入,结合先前时间步的隐藏状态确定当前时间步的隐藏状态,包括:
依次获取实际查询语句中字符串的单个字符作为当前时间步的输入;
将当前时间步的输入和先前时间步的隐藏状态进行结合,确定当前时间步的隐藏状态。
进一步的,在所述确定当前时间步的隐藏状态之后,还包括:
基于所述当前时间步的隐藏状态确定所述下一个字符的概率分布。
进一步的,所述基于所述实际查询语句中各个字符串的下一个字符的概率分布,确定所述各个字符串的选择性评估概率,包括:
基于实际查询语句中各个字符串中的所有单个字节对应的概率分布,确定所述单个字节对应的条件概率;
基于所述谓词的所有单个字节对应的条件概率,确定所述字符串的选择性评估概率。
进一步的,所述基于所述字符串的所有单个字节对应的条件概率,确定所述谓词的选择性评估概率,具体为:
为单个谓词的字符串的选择性评估概率;
为各个字符的条件概率;
用来表示下一个字符/>在给定状态/>下生成的概率。
第二方面,本发明还提供一种面向模糊查询的字符串谓词准确选择估计***,所述***包括:模型训练模块、概率预测模块、选择性评估模块;
所述模型训练模块用于,将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,训练所述自回归神经语言模型,使得所述自回归神经语言模型生成时间步的隐藏状态;
所述概率预测模块用于,将实际查询语句中字符串的单个字符依次作为当前时间步的输入,结合先前时间步的隐藏状态确定当前时间步的隐藏状态,并确定下一个字符的概率分布,所述当前时间步的隐藏状态用于预测各个所述字符串的下一个字符的概率分布;
所述选择性评估模块用于,基于所述实际查询语句中各个字符串的下一个字符的概率分布,确定所述各个字符串的选择性评估概率,所述选择性评估概率用于数据库的执行优化器进行选择最优计划。
优选的,所述模型训练模块还用于:
将所述数据库的整个语料库进行向量化处理,生成字符向量序列;
将获取的查询语句进行向量化处理,生成字符向量;
将所述字符向量序列和所述字符向量作为所述自回归神经语言模型架构的输入进行模型训练;
将所述先前时间步的隐藏状态和当前输入进行结合,得到当前时间步的隐藏状态,所述当前输入为所述自回归语言模型架构的输入的一个字符向量;
基于所述当前时间步的隐藏状态确定所述当前输入的预测概率分布。
优选的,所述概率预测模块还用于:
依次获取实际查询语句中字符串的单个字符作为当前时间步的输入;
将当前时间步的输入和先前时间步的隐藏状态进行结合,确定当前时间步的隐藏状态;
基于所述当前时间步的隐藏状态确定下一个字符的概率分布。
发明效果:
本发明提供一种面向模糊查询的字符串谓词准确选择估计方法,将每个字符映射到向量空间,用序列模型学习字符串之间的关联能够准确估计任意子字符串的选择性,更适合字符串查询。通过自回归神经语言模型架构的隐藏状态,确定下一个字符的概率分布,从而确定字符串的选择性评估概率,并用于数据库的执行优化器进行选择最优计划。本发明高效、准确地进行字符串谓词的选择性估计,解决了传统方法和一般模型在这一任务上的局限性。
附图说明:
图1是本发明一种面向模糊查询的字符串谓词准确选择估计方法的流程图;
图2是本发明一种面向模糊查询的字符串谓词准确选择估计方法的神经语言模型架构图;
图3是本发明一种面向模糊查询的字符串谓词准确选择估计方法的谓词选择功能实现过程架构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例,仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
字符串谓词指的是SQL查询中用于模糊匹配字符串的操作符,例如SQL的LIKE运算符。这些操作符通常用于对字符串进行模式匹配,允许查询以通配符(如 %)和占位符(如_)来指定模糊匹配的条件。
例子中,“name LIKE ‘abc%’ AND zipcode LIKE ‘%123’ AND ssn LIKE ‘%1234%’”,每个谓词都是字符串谓词,用于在相应的列(name、zipcode、ssn)中执行模糊匹配。这样的查询将返回所有满足三个谓词条件的元组。
在优化查询时,查询优化器需要估计每个谓词的选择性,即满足特定谓词条件的元组与总元组数的比例。选择性估计的目的是帮助优化器确定执行查询时哪个谓词应该首先处理,以获得更高效的查询执行计划。选择性估计对于确定优化查询的连接顺序和使用哪些索引非常重要,因为低选择性的谓词可能会返回大量的数据,而高选择性的谓词则可以更快地缩小结果集。
由于字符串谓词的模糊匹配性质,估计其选择性可能更加困难,因为查询可以基于前缀、后缀、子串或其组合来进行匹配。不准确的选择性估计可能导致查询优化器选择不合适的执行计划,从而影响查询性能。
因此,在优化查询时,对于涉及字符串谓词的查询,准确的选择性估计对于获得最优的查询执行计划非常重要。
具体实施例1:
本发明提供一种面向模糊查询的字符串谓词准确选择估计方法,该方法用于解决背景技术所述的,现有数据库在进行准确估计选择性时,需要大量数据库且计算不精确的问题。本发明的具体技术方案如下:
第一方面,本发明提供一种面向模糊查询的字符串谓词准确选择估计方法,包括:将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,训练所述自回归神经语言模型,使得所述自回归神经语言模型生成时间步的隐藏状态;将实际查询语句中字符串的单个字符依次作为当前时间步的输入,结合先前时间步的隐藏状态确定当前时间步的隐藏状态,并确定下一个字符的概率分布,所述当前时间步的隐藏状态用于预测各个所述谓词的下一个字符的概率分布;基于所述实际查询语句中各个字符串的下一个字符的概率分布,确定所述各个字符串的选择性评估概率,所述选择性评估概率用于数据库的执行优化器进行选择最优计划。
本实施例中,首先,通过现有的查询语句和数据库中的语料库对自回归申请语言模型架构进行训练。对模型训练时使用的查询语句为现有的查询语句,该查询语句对应的查询结果也是已知的。在训练完成后,自回归神经语言模型内形成隐藏状态。该隐藏状态是神经语言模型的训练完成后的神经元之间结构的抽象表达。如图2所示,通过隐藏状态确定下一个字符的概率分布。在使用模型时,获取实际查询语句的字符串和谓词的信息。实际查询语句具体应用时,是指当前轮的查询语句。
进一步的,所述将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,训练所述自回归神经语言模型,包括:将所述数据库的整个语料库进行向量化处理,生成字符向量序列;将获取的查询语句进行向量化处理,生成字符向量;将所述字符向量序列和所述字符向量作为所述自回归神经语言模型架构的输入进行模型训练;将所述先前时间步的隐藏状态和当前输入进行结合,得到当前时间步的隐藏状态,所述当前输入为所述自回归语言模型架构的输入的一个字符向量;基于所述当前时间步的隐藏状态确定所述当前输入的预测概率分布。
进一步的,将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,之后还包括:在模型训练过程中,通过交叉熵损失函数确定所述预测概率分布和实际目标字符的差异;基于所述预测概率分布和实际目标字符的差异,对所述自回归神经语言模型架构的可训练参数进行修正。
进一步的,所述将实际查询语句中字符串的单个字符依次作为当前时间步的输入,结合先前时间步的隐藏状态确定当前时间步的隐藏状态,包括:依次获取实际查询语句中字符串的单个字符作为当前时间步的输入;将当前时间步的输入和先前时间步的隐藏状态进行结合,确定当前时间步的隐藏状态。
进一步的,在所述确定当前时间步的隐藏状态之后,还包括:基于所述当前时间步的隐藏状态确定所述下一个字符的概率分布。
进一步的,所述基于所述实际查询语句中各个字符串的下一个字符的概率分布,确定所述各个字符串的选择性评估概率,包括:基于实际查询语句中各个字符串中的所有单个字节对应的概率分布,确定所述单个字节对应的条件概率;基于所述谓词的所有单个字节对应的条件概率,确定所述字符串的选择性评估概率。
进一步的,所述基于所述字符串的所有单个字节对应的条件概率,确定所述谓词的选择性评估概率,具体为:
为单个谓词的字符串的选择性评估概率;/>为各个字符的条件概率;/>用来表示下一个字符/>在给定状态/>下生成的概率。
具体实施例2:
1、基本信息
假设A是一个有限字母表。我们有一个关系,其中每个。在这个关系中有n个字符串。
字符串谓词的查询:SQL支持两个通配符字符 % 和 _,用于指定字符串模式。百分号和下划线允许在字符串中替换一个或多个字符。查询“LIKE %sam%”匹配包含子字符串“sam”的所有字符串。查询“LIKE s_m”匹配所有包含三个单词字符串,其第一个字母为s,最后一个字母为 m 的字符串。使用这些通配符字符可以表达各种查询。前缀查询匹配所有以abc开头的字符串,可以表示为“LIKE abc%”。后缀查询“LIKE %abc”匹配所有以abc结尾的字符串。子字符串查询“LIKE %abc%”匹配包含单词“abc”的所有字符串。
q-gram:假设s∈R 是一个字符串,其长度为|s|。我们用s[i]表示s的第i个字符,用s[i, j]表示从第i个字符到第j个字符的子串。给定一个正数q,s的q-gram 是通过在s上滑动长度为q的窗口获得的集合。例如,如果q =2,s= sam,则q-gram 为{sa, am}。
2、训练目标
在这个任务中,我们可以通过训练一个基于字符的语言模型来提供给定字符序列的概率。对于前缀查询“q%”,我们希望找到所有以字符串“q”开头的字符串。在语言模型中,我们可以用一个字符序列/>来表示字符串“q%”,其中/>表示字符“q”,而/>表示“%”。
现在,根据语言模型的概率定义,我们可以计算字符串“q%”(即) 的概率为:
其中,表示字符“q”的概率,而/>表示给定前面字符的情况下,每个后续字符/>的概率。所以,/>表示整个字符序列“q%”出现的概率。由于前缀查询“q%”表示以“q”开头的字符串,所以这个字符序列“q%”出现的概率等同于前缀查询“q%”的选择性估计。因此,通过训练好的语言模型,我们可以利用/>来估计前缀查询“q%”的选择性,通过在反向语料库上训练一个语言模型,我们可以类似地获得后缀查询“%q”的选择性估计。
为了实现这一点,我们并不需要构建后缀树,而是可以直接在字符级别上训练一个神经语言模型来学习。
3、数据准备与输入:
给定一组字符串,其中每个/>是一个字符序列,这些字符串可以是用户输入的查询条件或已知的模糊查询样本。通过连接所有的字符串来创建一个大的语料库/>。例如,如果/>,q-gram中的q设置为1,得到,其中是表示词的开始和结束的特殊令牌。/>被表示为字符的序列:,其中/>表示语料库/>中第/>个字符。以逐个字符的顺序处理/>,使用编码技术来实现将每个字符表示为一个向量,整个语料库将被转换为一个字符向量序列作为NLM的输入。
4、NLM训练:
NLM是一种神经语言模型架构。在每个时间步,模型接收字符向量/>作为输入,该向量表示当前时间步的字符信息。将字符向量序列按照顺序从语料库/>中输入模型,可选地,在本申请实施例中,训练模型可以是通过神经语言模型,包括Transformer,GPT系列模型等。将先前时间步的隐藏状态/>和当前输入/>进行结合,得到当前时间步的隐藏状态/>,即为/>,这个隐藏状态将包含从先前字符中学到的信息,它反映了字符之间的统计相关性和语义信息。接着,模型将隐藏状态/>输入到一个全连接层,全连接层的输出选用激活函数Sigmoid函数 ,其公式为/>。在激活函数之后,模型将使用softmax函数来将全连接层的输出转换为一个概率分布/>。Softmax函数将每个元素映射到一个范围在0到1之间的实数,并确保所有元素的总和等于1,从而形成一个概率分布。这样,可以得到在给定前面字符的条件下,下一个字符的概率估计/>。
5、输出预测:
得到概率分布后,模型会选择具有最高概率的字符作为当前时间步的输出预测。在训练阶段,将这个预测与实际的下一个字符进行比较,计算损失(例如交叉熵损失),然后使用反向传播算法和优化器来更新模型的参数,以最小化损失。在推理阶段,可以根据预测的概率分布采样得到下一个字符,然后将其作为输入输入到下一个时间步。
6、损失计算:
在训练过程中,使用交叉熵损失函数来衡量预测概率分布与实际目标字符的差异,使得预测更接近真实值,从而能够更好地预测下一个字符。
表示时刻/>的语言模型损失函数即为局部交叉熵,CE表示交叉熵(crossentropy),其中/>和/>分别是位置/>处字母表中第/>个字符的预测和实际概率。表达了时刻/>的预测/>和/>之间的交叉熵,即为局部交叉熵,用于衡量当前预测的误差,局部交叉熵的作用是量化模型在给定先前字符上下文的情况下,对下一个字符的预测有多准确。
表示整个语料库/>上的全局交叉熵损失。它通过对整个语料库中的局部交叉熵损失求平均得到,计算了整个数据集上的总损失,其中 N 是语料库中的总字符数。是时刻t的损失。这个公式对所有时刻t的损失求平均,得到语言模型在语料库上整体的训练损失。全局交叉熵的目的是对模型在整个语料库上的性能进行综合评估,衡量模型在整个序列上的字符预测的准确性。
局部交叉熵损失帮助模型在每个时间步调整其参数,使其在个别字符上做出准确预测。为了优化局部交叉熵损失,需要根据该损失对模型的参数进行微调。这个过程通过反向传播算法来实现,计算局部交叉熵损失相对于模型的权重参数的梯度。权重参数包括模型中的所有可训练参数,如连接权重、偏置项等。
全局交叉熵损失通过最小化交叉熵损失确保模型能够在整个数据集上更一致地预测字符,提高字符串选择性估计任务的性能,计算全局交叉熵损失相对于模型的权重参数的梯度,权重参数包括模型中的所有可训练参数,如连接权重、偏置项等。
7、选择性估计:
在面向模糊查询的字符串谓词准确选择估计方法中,我们关注整个字符串序列的概率估计。为了计算/>的概率使用条件概率的连乘,具体地,/>表示整个字符串序列的概率,可以通过将各个字符的条件概率/>连乘得到。这个条件概率表示在给定前缀/>的情况下,下一个字符/>出现的概率。同样,我们也可以用/>来表示下一个字符/>在给定状态/>下生成的概率。
在这里,我们使用神经语言模型(NLM)来实现状态记忆功能。NLM接收一个字符作为输入,然后通过模型进行计算,产生一个状态/>。这个状态/>在当前时间步记住了前面已经处理过的字符/>的信息,从而构建了对前缀字符的统计相关性的学习。在语言模型中,状态/>用于输出下一个字符/>的概率分布。
训练目标是通过使用梯度下降优化技术调整模型的参数(权重和偏置),最小化总体交叉熵损失,以使模型能够更准确地估计字符的概率分布,同时,模型在训练过程中也学习并捕捉前缀字符的统计相关性,以便在给定前缀的情况下,更准确地预测下一个字符的可能性。同样的方法也适用于后缀查询,通过在反转后的语料库/>上训练语言模型,可以估计后缀查询"%q"的选择性。这进一步增强了模型在模糊查询任务上的表现。因此,通过有效地利用NLM来建模字符串序列的概率分布,此方法在模糊查询场景下具有很好的应用潜力。
9、状态重置:
前面步骤所描述的模型可以直接用于估计前缀查询或后缀查询的选择性,
针对子串查询任务,如一个运行示例,希望估计子串查询'%a%'的选择性,但却产生了一个更接近0的值。具体而言,它试图估计。由于NLM没有看到任何以/>开头的字符串,这个概率将被估计为接近0。根本原因是NLM处理字符串/>,从第一个字符到最后一个字符。因此,它只学习与前缀查询对应的概率。在自然语言处理的环境中,这种限制是自然的,因为NLM会对语言建模中的各种任务从头开始处理字符串。然而,估计子字符串查询却需要处理句子的片段,这是非常重要的要求。对于回答子字符串查询,它们必须能够估计语料库中任意子字符串的概率。现有的NLM中没有任何一个可以用于估计子字符串选择性。鉴于前期的训练,提出了一种新颖的NLM训练适应方法,以缓解这个问题。
调整NLM训练以适用于子字符串查询。保留NLM准确学习前缀查询选择性的能力,同时扩展其用于子字符串查询。子字符串查询性能差的原因完全在于默认的NLM训练未尝试学习子字符串查询的条件概率。在我们的运行示例中,子字符串查询‘%a%’估计不准确的原因是未被准确定义。对于/>,只有/>和产生非零结果,因为它们是任何字符串开头的唯一两个字符。
通过对训练进行简单的改变,即状态重置(state-reset),NLM可以学习这些条件概率。考虑以下改变,在连续处理语料库时,我们随机将/>以一定的小概率重置为。我们考虑序列/>。NLM处理/>并产生一个新状态/>。在未修改的NLM中,会估计概率/>。然而,假设在处理/>之前,随机过程将/>重置为/>。换句话说,在这种情况下,假装输入序列是/>。现在,NLM将尝试处理/>,这将导致对子字符串查询的更好估计,优于未修改的NLM。
具体地,状态重置受到超参数的影响,该参数控制重置状态的概率。设置相当于训练一个经典的NLM。设置较大的/>会导致更高的重置概率。状态重置的概念类似于dropout。在前馈神经网络中,节点会以一定的dropout概率随机被丢弃。虽然dropout会使训练过程变得不稳定,但它作为一种有效的正则化方法,可以提高泛化能力。对状态重置的理念是为了支持子字符串查询,尽管有关于循环网络的一些dropout工作,但仅应用于非循环连接,以避免妨碍记忆能力。相比之下,明确地重置了循环连接,使NLM学习如何估计语料库中子字符串的选择性。
对于前缀、子串和后缀查询进行准确选择性估计是一个具有挑战性的问题。本发明提出的方法通过训练神经语言模型生成用于一种面向模糊查询的字符串谓词准确选择估计方法,可以适应前缀、子串和后缀查询任务,解决了在数据库中,对字符串谓词进行准确的选择性估计的挑战性问题。
具体实施例3:
第二方面,本发明还提供一种面向模糊查询的字符串谓词准确选择估计***,所述***包括:模型训练模块、概率预测模块、选择性评估模块;
所述模型训练模块用于,将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,训练所述自回归神经语言模型,使得所述自回归神经语言模型生成时间步的隐藏状态;
所述概率预测模块用于,将实际查询语句中谓词的单个字符依次作为当前时间步的输入,结合先前时间步的隐藏状态确定当前时间步的隐藏状态,所述当前时间步的隐藏状态用于预测各个所述谓词的下一个字符的概率分布;
所述选择性评估模块用于,基于所述实际查询语句中各个谓词的下一个字符的概率分布,确定所述各个谓词的选择性评估概率,所述选择性评估概率用于数据库的执行优化器进行选择最优计划。
优选的,所述模型训练模块还用于:
将所述数据库的整个语料库进行向量化处理,生成字符向量序列;
将获取的查询语句进行向量化处理,生成字符向量;
将所述字符向量序列和所述字符向量作为所述自回归神经语言模型架构的输入进行模型训练;
将所述先前时间步的隐藏状态和当前输入进行结合,得到当前时间步的隐藏状态,所述当前输入为所述自回归语言模型架构的输入的一个字符向量;
基于所述当前时间步的隐藏状态确定所述当前输入的预测概率分布。
优选的,所述概率预测模块还用于:
依次获取实际查询语句中谓词的单个字符作为当前时间步的输入;
将当前时间步的输入和先前时间步的隐藏状态进行结合,确定当前时间步的隐藏状态;
基于所述当前时间步的隐藏状态确定下一个字符的概率分布。
优选的,所述选择性评估模块还用于:
基于实际查询语句中各个谓词中的所有单个字节对应的概率分布,确定所述单个字节对应的条件概率;
基于所述谓词的所有单个字节对应的条件概率,确定所述谓词的选择性评估概率。
优选的,所述选择性评估模块具体用于:
为单个谓词的字符串的选择性评估概率;/>
为各个字符的条件概率;
用来表示下一个字符/>在给定状态/>下生成的概率。
具体实施例3:
为了进一步说明本发明的具体应用过程,如图2所示公开了神经语言模型架构图。
输入层:表示输入的字符序列,如"BOW, t, i, m"。
嵌入层:将输入的字符映射到词向量表示。
隐藏状态层:利用模型来捕捉字符序列的长期依赖关系,输出状态表示。
输出层:基于模型状态输出下一个字符的概率分布,如p(·|BOW, t, i, m)。
具体来说:
输入一个字符序列“BOW, t, i, m”。
嵌入层将每个字符映射为向量表示。
隐藏状态层基于当前输入“m”和前面的字符序列,输出一个状态向量。这个状态向量编码了前面序列的相关信息。
基于隐藏状态层,输出层给出下一个字符的概率分布p(·|BOW, t, i, m),字符似乎是最有可能的一个。/>
Claims (8)
1.一种面向模糊查询的字符串谓词准确选择估计方法,其特征在于,所述方法包括:
将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,训练所述自回归神经语言模型,使得所述自回归神经语言模型生成时间步的隐藏状态;
将实际查询语句中字符串的单个字符依次作为当前时间步的输入,结合先前时间步的隐藏状态确定当前时间步的隐藏状态,并确定下一个字符的概率分布,所述当前时间步的隐藏状态用于预测各个所述字符串的下一个字符的概率分布;
基于所述实际查询语句中各个字符串的下一个字符的概率分布,确定所述各个字符串的选择性评估概率,所述选择性评估概率用于数据库的执行优化器进行选择最优计划;
所述将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,训练所述自回归神经语言模型,包括:
将所述数据库的整个语料库进行向量化处理,生成字符向量序列;
将获取的查询语句进行向量化处理,生成字符向量;
将所述字符向量序列和所述字符向量作为所述自回归神经语言模型架构的输入进行模型训练;
将所述先前时间步的隐藏状态和当前输入进行结合,得到当前时间步的隐藏状态,所述当前输入为所述自回归神经语言模型架构的输入的一个字符向量;
基于所述当前时间步的隐藏状态确定所述当前输入的预测概率分布。
2.如权利要求1所述的一种面向模糊查询的字符串谓词准确选择估计方法,其特征在于,将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,之后还包括:
在模型训练过程中,通过交叉熵损失函数确定所述预测概率分布和实际目标字符的差异;
基于所述预测概率分布和实际目标字符的差异,对所述自回归神经语言模型架构的可训练参数进行修正。
3.如权利要求1所述的一种面向模糊查询的字符串谓词准确选择估计方法,其特征在于,所述将实际查询语句中字符串的单个字符依次作为当前时间步的输入,结合先前时间步的隐藏状态确定当前时间步的隐藏状态,包括:
依次获取实际查询语句中字符串的单个字符作为当前时间步的输入;
将当前时间步的输入和先前时间步的隐藏状态进行结合,确定当前时间步的隐藏状态。
4.如权利要求3所述的一种面向模糊查询的字符串谓词准确选择估计方法,其特征在于,在所述确定当前时间步的隐藏状态之后,还包括:
基于所述当前时间步的隐藏状态确定所述下一个字符的概率分布。
5.如权利要求1所述的一种面向模糊查询的字符串谓词准确选择估计方法,其特征在于,所述基于所述实际查询语句中各个字符串的下一个字符的概率分布,确定所述各个字符串的选择性评估概率,包括:
基于实际查询语句中各个字符串中的所有单个字节对应的概率分布,确定所述单个字节对应的条件概率;
基于所述字符串的所有单个字节对应的条件概率,确定所述字符串的选择性评估概率。
6.如权利要求5所述的一种面向模糊查询的字符串谓词准确选择估计方法,其特征在于,所述基于所述字符串的所有单个字节对应的条件概率,确定所述谓词的选择性评估概率,具体为:
;
为单个谓词的字符串的选择性评估概率;
为各个字符的条件概率;
用来表示下一个字符/>在给定状态/>下生成的概率。
7.一种面向模糊查询的字符串谓词准确选择估计***,其特征在于,所述***包括:模型训练模块、概率预测模块、选择性评估模块;
所述模型训练模块用于,将获取的查询语句和数据库中的语料库作为自回归神经语言模型架构的输入,训练所述自回归神经语言模型,使得所述自回归神经语言模型生成时间步的隐藏状态;
所述概率预测模块用于,将实际查询语句中字符串的单个字符依次作为当前时间步的输入,结合先前时间步的隐藏状态确定当前时间步的隐藏状态,并确定下一个字符的概率分布,所述当前时间步的隐藏状态用于预测各个所述字符串的下一个字符的概率分布;
所述选择性评估模块用于,基于所述实际查询语句中各个字符串的下一个字符的概率分布,确定所述各个字符串的选择性评估概率,所述选择性评估概率用于数据库的执行优化器进行选择最优计划;
所述模型训练模块还用于:
将所述数据库的整个语料库进行向量化处理,生成字符向量序列;
将获取的查询语句进行向量化处理,生成字符向量;
将所述字符向量序列和所述字符向量作为所述自回归神经语言模型架构的输入进行模型训练;
将所述先前时间步的隐藏状态和当前输入进行结合,得到当前时间步的隐藏状态,所述当前输入为所述自回归神经语言模型架构的输入的一个字符向量;
基于所述当前时间步的隐藏状态确定所述当前输入的预测概率分布。
8.如权利要求7所述的一种面向模糊查询的字符串谓词准确选择估计***,其特征在于,所述概率预测模块还用于:
依次获取实际查询语句中字符串的单个字符作为当前时间步的输入;
将当前时间步的输入和先前时间步的隐藏状态进行结合,确定当前时间步的隐藏状态;
基于所述当前时间步的隐藏状态确定下一个字符的概率分布。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311072853.1A CN116821436B (zh) | 2023-08-24 | 2023-08-24 | 一种面向模糊查询的字符串谓词准确选择估计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311072853.1A CN116821436B (zh) | 2023-08-24 | 2023-08-24 | 一种面向模糊查询的字符串谓词准确选择估计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116821436A CN116821436A (zh) | 2023-09-29 |
CN116821436B true CN116821436B (zh) | 2024-01-02 |
Family
ID=88127730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311072853.1A Active CN116821436B (zh) | 2023-08-24 | 2023-08-24 | 一种面向模糊查询的字符串谓词准确选择估计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116821436B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117892711A (zh) * | 2023-12-11 | 2024-04-16 | 中新金桥数字科技(北京)有限公司 | 一种基于大模型获取文本相关性的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018033030A1 (zh) * | 2016-08-19 | 2018-02-22 | 中兴通讯股份有限公司 | 自然语言文句库的生成方法及装置 |
WO2022033073A1 (zh) * | 2020-08-12 | 2022-02-17 | 哈尔滨工业大学 | 一种面向认知服务的用户意图识别方法及*** |
CN115965033A (zh) * | 2023-03-16 | 2023-04-14 | 安徽大学 | 基于序列级前缀提示的生成式文本摘要方法和装置 |
CN116245106A (zh) * | 2023-03-14 | 2023-06-09 | 北京理工大学 | 一种基于自回归模型的跨域命名实体识别方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7363299B2 (en) * | 2004-11-18 | 2008-04-22 | University Of Washington | Computing probabilistic answers to queries |
US8073869B2 (en) * | 2008-07-03 | 2011-12-06 | The Regents Of The University Of California | Method for efficiently supporting interactive, fuzzy search on structured data |
US9208198B2 (en) * | 2012-10-17 | 2015-12-08 | International Business Machines Corporation | Technique for factoring uncertainty into cost-based query optimization |
EP3979121A1 (en) * | 2020-10-01 | 2022-04-06 | Naver Corporation | Method and system for controlling distributions of attributes in language models for text generation |
-
2023
- 2023-08-24 CN CN202311072853.1A patent/CN116821436B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018033030A1 (zh) * | 2016-08-19 | 2018-02-22 | 中兴通讯股份有限公司 | 自然语言文句库的生成方法及装置 |
WO2022033073A1 (zh) * | 2020-08-12 | 2022-02-17 | 哈尔滨工业大学 | 一种面向认知服务的用户意图识别方法及*** |
CN116245106A (zh) * | 2023-03-14 | 2023-06-09 | 北京理工大学 | 一种基于自回归模型的跨域命名实体识别方法 |
CN115965033A (zh) * | 2023-03-16 | 2023-04-14 | 安徽大学 | 基于序列级前缀提示的生成式文本摘要方法和装置 |
Non-Patent Citations (2)
Title |
---|
Efficient SPARQL Query Processing Based on Adjacent-Predicate Structure Index;Haoyuan Guan et al.;《 IEEE Xplore》;全文 * |
基于自然语言理解的SPARQL本体查询;张宗仁 等;计算机应用(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116821436A (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11501182B2 (en) | Method and apparatus for generating model | |
Wu et al. | Hyperparameter optimization for machine learning models based on Bayesian optimization | |
CN110309514B (zh) | 一种语义识别方法及装置 | |
US10929744B2 (en) | Fixed-point training method for deep neural networks based on dynamic fixed-point conversion scheme | |
CN109783817B (zh) | 一种基于深度强化学习的文本语义相似计算模型 | |
CN106502985B (zh) | 一种用于生成标题的神经网络建模方法及装置 | |
Mueller et al. | Siamese recurrent architectures for learning sentence similarity | |
CN112487807B (zh) | 一种基于膨胀门卷积神经网络的文本关系抽取方法 | |
Guo et al. | Question generation from sql queries improves neural semantic parsing | |
CN110503192A (zh) | 资源有效的神经架构 | |
JP2020520516A5 (zh) | ||
CN111414749B (zh) | 基于深度神经网络的社交文本依存句法分析*** | |
CN106897371B (zh) | 中文文本分类***及方法 | |
CN110928993A (zh) | 基于深度循环神经网络的用户位置预测方法及*** | |
CN112232087B (zh) | 一种基于Transformer的多粒度注意力模型的特定方面情感分析方法 | |
CN110458181A (zh) | 一种基于宽度随机森林的句法依存模型、训练方法和分析方法 | |
CN116821436B (zh) | 一种面向模糊查询的字符串谓词准确选择估计方法 | |
CN111274790A (zh) | 基于句法依存图的篇章级事件嵌入方法及装置 | |
CN105830058B (zh) | 对话管理器 | |
CN110851584A (zh) | 一种法律条文精准推荐***和方法 | |
CN113157919A (zh) | 语句文本方面级情感分类方法及*** | |
CN113935489A (zh) | 基于量子神经网络的变分量子模型tfq-vqa及其两级优化方法 | |
WO2020100738A1 (ja) | 処理装置、処理方法、及び処理プログラム | |
Azeraf et al. | Highly fast text segmentation with pairwise markov chains | |
US11941360B2 (en) | Acronym definition network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |