一种O2O商铺食品安全监测方法与流程

    专利2022-07-08  77


    本发明涉及自然语言处理技术领域,具体涉及一种o2o商铺食品安全监测方法。



    背景技术:

    “网络餐饮服务”近几年来随着互联网的快速发展,外卖以其方便快捷的配送和多种多样的菜式选择,迅速得到了以上班族和学生为主体的大量年轻人的青睐。但是,随着互联网与新商业模式的创新发展,“互联网 ”食品、“互联网 ”餐饮、“互联网 ”食用农产品等在方便消费者生活、满足消费者多样化需求、促进大众创新创业的同时,也明显存在高信息不对称性、高外部性、高流动性及高风险性等特征,极易引发食品安全风险。例如:外卖网站上存在虚构店面地址、店家上传虚假店面照片等严重违规情况。这些问题的出现不但让消费者开始注意外卖的风险性,同时也引起了有关部门的注意。在现代大数据发展的背景下,如何有效利用大数据推进网络食品安全治理的研究就显得极为迫切。

    现有技术中,通常使用经典文本分类的方法例如逻辑斯特回归对商铺的用户评论进行监测,但监测准确率不高,并且监测结果过于单一,难以满足现今食品安全监管的要求。

    近期自然语言处理技术中预训练模型应用广泛,准确率超越了经典的文本分类方法。首先,预训练模型是一种迁移学习的应用,利用几乎无限的文本,学习输入句子的每一个成员的上下文相关的表示,它隐式地学习到了通用的语法语义知识。第二,预训练模型可以将从开放领域学到的知识迁移到下游任务,以改善低资源任务,对低资源语言处理也非常有利。第三,预训练模型在几乎所有自然语言处理任务中都取得了目前最佳的成果。最后,这个预训练模型 微调机制具备很好的可扩展性,在支持一个新任务时,只需要利用该任务的标注数据进行微调即可,一般工程师就可以实现。

    注意力机制源自人类的视觉注意力,在自然语言处理技术中起到了关键作用。人类的视觉注意力,使得我们能够在图片的“低解析度”背景下,更加关注具有“高解析度或辨识度”的特定区域(例如一张宠物狗图片中的耳朵),然后逐渐调整焦点,移动到另一个耳朵、眼睛、鼻子等,最后进行推断整张图片的信息。应用在自然语言处理中,注意力机制就可以找到文本中最关键的信息,使理解更加细粒度。



    技术实现要素:

    为了解决上述问题,本发明提供一种o2o商铺食品安全监测方法。

    一种o2o商铺食品安全监测方法,包括以下步骤:

    s1、采用主动学习算法对某一店铺的用户历史评论文本数据进行标注,得到标注样本集l和未标注样本集u;

    s2、根据标注样本集l构建词向量;

    s3、将标注样本集l输入electra模型对模型参数进行微调,得到微调好的electra模型,将未标注样本集u输入微调好的electra模型中进行二分类,判别该店铺是否存在食品安全隐患,如果存在食品安全隐患,则执行步骤s4;

    s4、将标注样本集l和词向量输入at-gru模型中进行细粒度预测,计算评论中每个词的注意力权重,取权重最大的词作为该店铺具体的食品安全隐患并输出。

    进一步的,采用主动学习算法进行人工标注包括:

    s11、从网络平台上随机获取用户历史评论文本数据,随机选择获取的部分用户的历史评论文本数据进行人工标注,标注1表明有食品安全隐患,标注0表明没有食品安全隐患,剩下的部分用户的历史评论文本数据为未标注样本集u;

    s12、使用标注样本集l训练逻辑回归模型,得到训练好的逻辑回归模型m;

    s13、使用训练好的逻辑回归模型m对未标注样本集u进行查询函数计算,得到当前模型m不确定的样本x*,对不确定的样本x*进行人工标注,加入标注样本集l中,重复以上步骤,直到不确定的样本x*对应的表达式的值大于0.5为止,得到最终的标注样本集l。

    进一步的,查询函数的计算表达式如下:

    其中,x*表示模型m对未标注样本集u中最不确定的样本,q(u)表示查询函数对未标注样本集u进行计算,argmin表示取表达式的值最小时的参数,表示模型m对u中的样本x的预测值。

    进一步的,步骤s2中,所述根据标注样本集l构建词向量包括:

    s21、将标注样本集l中的文本分词后输入训练好的albert语言模型,albert模型对每个分词进行编码,去掉albert语言模型的输出层,将albert语言模型的最后一层编码状态进行平均池化后作为输入词的初始词向量;

    s22、将初始词向量作为word2vec模型中隐藏层的初始化权重,再使用word2vec算法在用户的历史评论文本语料上进行训练,得到最终的词向量。

    进一步的,所述at-gru模型结构包括输入层、嵌入层、gru网络层、注意力层和输出层,

    所述输入层用于输入数据;

    所述嵌入层将构建的词向量作为初始化的权重矩阵;

    所述gru网络层对输入的词向量序列进行编码,得到隐藏状态序列s;

    所述注意力层对gru网络层所有时间步的隐藏状态序列s做加权平均,得到编码向量h;

    所述输出层用于对注意力层的编码向量h进行分类,最终输出店铺是否存在食品安全隐患。

    进一步的,注意力层对gru网络层所有时间步的隐藏状态s做加权平均,得到编码向量h,编码向量h的计算表达式包括:

    h=sγt

    其中,注意力权重γ的计算方式如下:

    d=relu(s)

    其中,h表示注意力层编码的向量,d表示对s的激活处理,s表示gru层对输入的词向量序列的编码,relu()表示修正线性单元函数,d表示隐藏状态的维度,w表示一个d维度的可学习的参数列向量。

    进一步的,electra模型包括判别器,所述判别器为transformer结构,由24个结构完全相同的层堆叠而成,每一层作用是对输入的序列状态向量进行编码;24个层被平均分为浅层、中间层和高层,浅层主要编码文本表层特征,中间层主要编码句法特征,高层主要编码语义特征。

    进一步的,采用electra模型进行微调的微调方法包括:拼接electra模型中浅层、中间层和高层的编码状态,综合编码文本表层特征、句法特征、语义特征不同层次的信息,得到微调后的结果。

    进一步的,采用electra模型进行微调的微调方法包括:去掉原判别器的输出层,将判别器的第6、12、18、24层的编码状态连接起来作为句子的向量表示,再输入到一个随机初始化参数的分类输出层,然后将整个网络的所有权重在训练集上进行微调,最终输出微调后的结果,计算表达式如下:

    其中,表示模型的最终预测结果,即是否存在食品安全隐患,concat表示连接操作,h6,h12,h18,h24分别是判别器第6、12、18、24层的隐藏状态。

    相对于现有技术,本发明的有益效果如下:

    1.本发明针对网络餐饮服务食品安全难以监管的难题,提出了使用用户评论进行自动化舆情分析的方法,并且使用了预训练模型electra对用户历史评论文本数据进行二分类,能够高效找到有食品安全隐患的店铺,达到了加强监管的作用。

    2.本发明使用预训练模型electra找到有食品安全隐患的店铺后,使用基于注意力机制的at-gru模型进行细粒度预测,自动化地提取出具体的食品安全隐患呈现给监管人员,增强了可用性。

    附图说明

    为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

    图1为本发明实施例一提供一种o2o商铺食品安全监测方法的流程图;

    图2为本发明实施例一提供一种o2o商铺食品安全监测方法中样本标注方法的示意图;

    图3为本发明实施例一提供一种o2o商铺食品安全监测方法中at-gru模型结构示意图。

    具体实施方式

    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

    如图1所示为本发明实施例提供的一种o2o商铺食品安全监测方法的流程图,包括但不限于以下步骤:

    (1)首先根据微调好的electra模型对某个店铺的评论的进行判别,判别该店铺是否存在食品安全隐患;

    (2)如果存在食品安全隐患,则使用训练好的at-gru模型(at-gru模型的训练过程如s4所述)计算得到评论中每个词的注意力权重,取权重最大的词作为店铺具体的食品安全隐患。

    s1、使用主动学习算法对用户历史评论文本数据进行标注,标注1表明有食品安全隐患,标注0表明没有食品安全隐患,最终得到标注样本集l,如图2所示。

    s11、从网络平台上随机获取用户历史评论文本数据(400条以上,且用户历史评论文本数据中包括历史评论文本数据和历史评论文本数据所对应的标签),随机选择获取的部分用户的历史评论文本数据进行人工标注(标注1表明有食品安全隐患,标注0表明没有食品安全隐患),作为标注样本集l;剩下的部分用户的历史评论文本数据为未标注样本集u;

    s12、使用标注样本集l训练逻辑回归模型(常规训练方法,不属于本发明的创造点,故不做过多赘述),使用文本和文本对应的标签训练逻辑回归模型的权重参数,最终得到训练好的逻辑回归模型m;

    s13、使用训练好的逻辑回归模型m对未标注样本集u进行查询函数计算,得到当前模型m不确定的样本x*,对不确定的样本x*进行人工标注,加入标注样本集l中,重复以上步骤,直到不确定的样本x*对应的表达式的值大于0.5为止,得到最终的标注样本集l。

    查询函数计算方法如下:

    主动学习中基于不确定性的查询策略有三种方法:

    (1)置信度最低(leastconfident):选择预测类别中最大的概率最小的样本进行标注,公式为:

    其中,xlc表示基于置信度最低查询策略所得到的不确定性样本,θ表示一个已经训练好的机器学习模型参数集合,对于x而言是模型预测概率最大的类别。

    (2)边缘采样(marginsampling):选择模型预测最大和第二大的概率差值最小的样本,用数学公式来描述就是:

    其中,表示基于边缘采样查询策略所得到的不确定性样本,分别表示对于x而言,模型预测为最大可能类和第二大可能类。

    (3)熵(entropy):选择熵比较大的样本数据作为待定标注数据。

    其中,xe表示基于熵查询策略所得到的不确定性样本。

    现有的基于不确定性的查询策略大多需要进行大量的计算过程,复杂度高。本发明对基于不确定性的查询策略做出改进,提出一种查询函数,不需要确定样本预测最大的概率,只需要使用预测为正类的概率进行计算即可得到不确定性数据,查询函数计算表达式如下:

    其中,x*表示模型m对未标注样本集u中最不确定的样本,q(u)表示查询函数对未标注样本集u进行计算,argmin表示取表达式的值最小时的参数,表示模型m对u中的样本x的预测值。需要说明的是,除了上述本发明使用的查询函数计算当前模型m不确定的样本x*外,也可以采用现有的可以实现的查询策略得到不确定样本。

    s2、根据标注样本集l构建词向量。

    s21、将标注样本集l中的文本分词后输入训练好的albert语言模型,albert模型会对每个分词进行编码,去掉albert语言模型的输出层,将albert语言模型的最后一层编码状态进行平均池化后作为输入词的初始词向量。

    s22、将初始词向量作为word2vec模型中隐藏层的初始化权重,再使用word2vec算法在用户的历史评论文本语料上进行训练,得到最终的词向量。

    s3、将标注样本集l输入electra模型进行模型参数的微调,得到微调好的electra模型,将未标注样本集u输入微调好的electra模型中进行二分类,,判别该店铺是否存在食品安全隐患,如果存在食品安全隐患,则执行步骤s4。

    传统的预训练模型使用大规模语料对训练好的模型参数进行微调,微调方法是,将用户文本评论数据输入transformer模型,这部分网络使用预训练的权重,然后由编码器编码得到句子的向量表示后,再经过一个自定义的分类器进行分类,分类器的权重随机初始化。将整个网络的所有权重在下游任务的数据集上进行训练,这就是预训练模型的微调过程。

    electra模型的结构包括判别器,基于标注样本集l,使用判别器对模型参数进行微调。

    electra模型中判别器的结构以及各结构的作用包括:判别器是一个transformer结构,由24个结构完全相同的层堆叠而成,每一层都有两个子层。第一个子层是一个多头自注意力层,第二个子层是一个简单的、基于位置的全连接前馈网络。

    transformer结构中每一层作用是对输入的序列状态向量进行编码。24个层被平均分为浅层、中间层和高层,浅层主要编码文本表层特征(字的位置信息、短语信息、特殊符号),中间层主要编码句法特征,高层主要编码语义特征。

    现有的微调方法包括将其中一层隐状态接输出层,或者将最后四层的隐状态进行拼接或者平均或取最大再接输出层,或者将前四层的隐状态进行拼接或者平均或取最大再接输出层。

    本发明所采用的微调方法是通过拼接不同层次的编码状态,将electra模型中浅层、中间层和高层的编码状态进行拼接,能够有效地综合编码文本表层特征(词法特征)、句法特征、语义特征等不同层次的信息。

    在一个优选实施例中,微调方法包括:去掉原判别器的输出层,将判别器的第6、12、18、24层的编码状态连接起来作为句子的向量表示,再输入一个随机初始化参数的分类输出层,然后将整个网络的所有权重在训练集上进行微调,最终输出微调后的结果,计算表达式如下:

    其中,表示模型的最终预测结果,即是否存在食品安全隐患,concat表示连接操作,h6,h12,h18,h24分别是判别器第6、12、18、24层的隐藏状态。

    最终模型微调完成后,将未标注样本集u中的文本评论输入微调好的electra模型,可以得到更为精确的预测结果,即是否存在食品安全隐患。

    s4、将标注样本集l和最终的词向量输入at-gru模型中进行进行计细粒度预测,at-gru模型计算评论中每个词的注意力权重,取权重最大的词作为该店铺具体的食品安全隐患并输出,得到细粒度预测结果。

    传统的使用注意力机制的文本分类模型是at-lstm,即在lstm层的后面接注意力层,而本发明选用的模型是at-gru,使用的是gru层而不是lstm层,gru层使得模型训练效率更高。另外,在at-gru模型中进行注意力权重计算时使用了隐藏状态的维度,对点积结果进行了缩放,使得模型训练时能够更好地收敛。此外,在注意力层后使用relu激活函数而不是tanh,防止梯度消失。

    如图3所示,at-gru模型的具体结构包括输入层、嵌入层、gru网络层、注意力层和输出层。其中,at-gru模型各个结构的作用以及具体处理流程包括:

    输入层:用于输入数据,将标注样本集l和最终的词向量的索引序列作为输入。

    嵌入层:将构建的词向量作为初始化的权重矩阵;嵌入层的作用是将输入层输入的索引序列转换为词向量序列。

    gru网络层:对输入的词向量序列进行编码,得到隐藏状态序列s。

    注意力层:对gru网络层所有时间步的隐藏状态序列s做加权平均,得到编码向量h,而每个时间步的隐藏状态s的权重γ就是对于不同词的注意力。编码向量h的计算表达式如下:

    h=sγt

    其中,注意力权重γ的计算方式如下:

    d=relu(s)

    其中,h表示注意力层的编码向量,d表示对s的激活处理,s表示gru层对输入的词向量序列的编码,relu()表示修正线性单元函数,d表示隐藏状态的维度,w表示一个d维度的可学习的参数列向量。

    输出层:对注意力层的编码向量h进行分类,最终输出文本评论是否存在食品安全隐患。

    最终模型训练完成后,将未标注样本集u中的文本评论输入训练好的at-gru模型,可以得到细粒度预测结果:进行预测后,如果存在食品安全隐患,则使用at-gru模型计算得到的评论中每个词的注意力权重,取注意力权重最大的词作为店铺具体的食品安全隐患。

    当介绍本申请的各种实施例的元件时,冠词“一”、“一个”、“这个”和“所述”都意图表示有一个或多个元件。词语“包括”、“包含”和“具有”都是包括性的并意味着除了列出的元件之外,还可以有其它元件。

    需要说明的是,本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-0nlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

    以上所述仅是本申请的具体实施方式,应当指出,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。


    技术特征:

    1.一种o2o商铺食品安全监测方法,其特征在于,包括以下步骤:

    s1、采用主动学习算法对某一店铺的用户历史评论文本数据进行标注,得到标注样本集l和未标注样本集u;

    s2、根据标注样本集l构建词向量;

    s3、将标注样本集l输入electra模型对模型参数进行微调,得到微调好的electra模型,将未标注样本集u输入微调好的electra模型中进行二分类,判别该店铺是否存在食品安全隐患,如果存在食品安全隐患,则执行步骤s4;

    s4、将标注样本集l和词向量输入at-gru模型中进行细粒度预测,计算评论中每个词的注意力权重,取权重最大的词作为该店铺具体的食品安全隐患并输出。

    2.根据权利要求1所述的一种o2o商铺食品安全监测方法,其特征在于,采用主动学习算法进行人工标注包括:

    s11、从网络平台上随机获取用户历史评论文本数据,随机选择获取的部分用户的历史评论文本数据进行人工标注,标注1表明有食品安全隐患,标注0表明没有食品安全隐患,剩下的部分用户的历史评论文本数据为未标注样本集u;

    s12、使用标注样本集l训练逻辑回归模型,得到训练好的逻辑回归模型m;

    s13、使用训练好的逻辑回归模型m对未标注样本集u进行查询函数计算,得到当前模型m不确定的样本x*,对不确定的样本x*进行人工标注,加入标注样本集l中,重复以上步骤,直到不确定的样本x*对应的表达式的值大于0.5为止,得到最终的标注样本集l。

    3.根据权利要求2所述的一种o2o商铺食品安全监测方法,其特征在于,查询函数的计算表达式如下:

    其中,x*表示模型m对未标注样本集u中最不确定的样本,q(u)表示查询函数对未标注样本集u进行计算,argmin表示取表达式的值最小时的参数,表示模型m对u中的样本x的预测值。

    4.根据权利要求1所述的一种o2o商铺食品安全监测方法,其特征在于,步骤s2中,所述根据标注样本集l构建词向量包括:

    s21、将标注样本集l中的文本分词后输入训练好的albert语言模型,albert模型对每个分词进行编码,去掉albert语言模型的输出层,将albert语言模型的最后一层编码状态进行平均池化后作为输入词的初始词向量;

    s22、将初始词向量作为word2vec模型中隐藏层的初始化权重,再使用word2vec算法在用户的历史评论文本语料上进行训练,得到最终的词向量。

    5.根据权利要求1所述的一种o2o商铺食品安全监测方法,其特征在于,所述at-gru模型结构包括输入层、嵌入层、gru网络层、注意力层和输出层,

    所述输入层用于输入数据;

    所述嵌入层将构建的词向量作为初始化的权重矩阵;

    所述gru网络层对输入的词向量序列进行编码,得到隐藏状态序列s;

    所述注意力层对gru网络层所有时间步的隐藏状态序列s做加权平均,得到编码向量h;

    所述输出层用于对注意力层的编码向量h进行分类,最终输出店铺是否存在食品安全隐患。

    6.根据权利要求5所述的一种o2o商铺食品安全监测方法,其特征在于,注意力层对gru网络层所有时间步的隐藏状态s做加权平均,得到编码向量h,编码向量h的计算表达式包括:

    h=sγt

    其中,注意力权重γ的计算方式如下:

    d=relu(s)

    其中,h表示注意力层编码的向量,d表示对s的激活处理,s表示gru层对输入的词向量序列的编码,relu()表示修正线性单元函数,d表示隐藏状态的维度,w表示一个d维度的可学习的参数列向量。

    7.根据权利要求1所述的一种o2o商铺食品安全监测方法,其特征在于,electra模型包括判别器,所述判别器为transformer结构,由24个结构完全相同的层堆叠而成,每一层作用是对输入的序列状态向量进行编码;24个层被平均分为浅层、中间层和高层,浅层主要编码文本表层特征,中间层主要编码句法特征,高层主要编码语义特征。

    8.根据权利要求7所述的一种o2o商铺食品安全监测方法,其特征在于,采用electra模型进行微调的微调方法包括:拼接electra模型中浅层、中间层和高层的编码状态,综合编码文本表层特征、句法特征、语义特征不同层次的信息,得到微调后的结果。

    9.根据权利要求7所述的一种o2o商铺食品安全监测方法,其特征在于,采用electra模型进行微调的微调方法包括:去掉原判别器的输出层,将判别器的第6、12、18、24层的编码状态连接起来作为句子的向量表示,再输入到一个随机初始化参数的分类输出层,然后将整个网络的所有权重在训练集上进行微调,最终输出微调后的结果,计算表达式如下:

    其中,表示模型的最终预测结果,即是否存在食品安全隐患,concat表示连接操作,h6,h12,h18,h24分别是判别器第6、12、18、24层的隐藏状态。

    技术总结
    本发明涉及自然语言处理技术领域,具体涉及一种O2O商铺食品安全监测方法,包括:采用主动学习算法对用户历史评论文本数据进行标注,得到标注样本集L;根据标注样本集L构建词向量;将标注样本集L和词向量输入AT‑GRU模型中进行深度学习,输出店铺是否存在安全隐患以及具体的安全隐患;将标注样本集L输入ELECTRA模型进行微调,得到较精确的预测结果。本发明使用了预训练模型ELECTRA进行微调,不仅可以找到有食品安全隐患的店铺,并且使用基于注意力机制的AT‑GRU模型,可以进行细粒度预测,自动化地提取出具体的食品安全隐患。

    技术研发人员:王进;郝守迪;李馨渝;邱谦;闫振兴;孙开伟;刘彬
    受保护的技术使用者:重庆邮电大学
    技术研发日:2020.12.01
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-21741.html

    最新回复(0)