推送信息的生成方法及装置与流程

文档序号:18739975发布日期:2019-09-21 01:39阅读:173来源:国知局
推送信息的生成方法及装置与流程

本说明书一个或多个实施例涉及计算机技术领域,尤其涉及通过计算机生成推送信息的方法和装置。



背景技术:

推送信息通常可以通过宣传的方式将产品或服务等推送给大众。推送信息可以简洁快速地对待推送目标进行描述。例如,在日常营销中,广告语就是一种推送信息。APP应用市场在上线APP时,广告语可以是针对APP通常会给出相应的推荐语。以广告语为例,这些推送信息通常具有简洁易懂、独特上口、主题明确、具有感染力等等特点,因此,常规技术中,推送信息通常由人工进行编辑。这种推送信息生成方式依赖于人工写作经验技巧,写作成本高、效率低。

自然语言处理(Natural Language Processing)可以用于研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理在人工智能方面的应用场景非常多,例如,自动翻译、语音识别、文本分类等等。在信息推送领域,自然语言处理的应用往往体现在如何根据被推送方信息和/或推送信息进行更精准、更具有针对性的信息推送。而对于推送的具体信息内容,却应用有限。特别地,推送信息是针对待推送目标的广告语时,由于广告语自身的独特特点,更增加了自然语言处理应用的难度。



技术实现要素:

本说明书一个或多个实施例描述了一种基于自然语言处理生成推送信息的方法和装置,可以解决上述的一个或多个问题。

根据第一方面,提供了一种推送信息的生成方法,包括:获取通过自然语言针对待推送目标进行描述的描述信息;将所述描述信息拆分为多个字符单元,并确定各个字符单元分别对应的各个字符向量,所述各个字符向量按照所述多个字符单元的排列顺序形成向量序列;利用预先训练的编码解码网络处理所述向量序列,以得到至少一个不超过预定长度的字符序列;基于所得到的各个字符序列为所述待推送目标确定推送信息。

根据一个实施例,所述字符单元包括以下中的一项:单个文字、至少一个文字形成的词汇、具有独立意义的字符串。

根据一个实施例,所述多个字符单元包括第一字符单元;所述确定各个字符单元分别对应的各个字符向量包括:查询所述第一字符单元对应的独热表示的第一数字ID;将所述第一数字ID输入预先训练的字符向量模型,从而根据所述字符向量模型的输出结果确定所述第一字符单元对应的字符向量。

根据一个实施例,所述编码解码网络包括编码神经网络和解码神经网络;所述利用预先训练的编码解码网络处理所述向量序列包括:通过所述编码神经网络将所述向量序列转换成语义向量;通过所述解码神经网络为所述语义向量预测至少一个字符序列。

根据一个实施例,所述编码神经网络或所述解码神经网络分别为循环神经网络、双向循环神经网络、门控循环单元、长短期记忆模型中的一个。

根据一个实施例,所述通过所述解码神经网络为所述语义向量预测至少一个字符序列包括:根据所述语义向量和开始标识,通过所述解码神经网络的神经元在第一时刻预测预定个数的首字符;根据所述语义向量和第t-1时刻已预测到的字符或字符序列,通过所述解码神经网络的神经元在第t时刻预测预定个数的当前字符序列,其中,t为大于1的自然数。

根据一个实施例,所述编码解码网络通过以下方式训练:将分别与多个推送目标对应的各个序列对作为训练样本,其中,各个序列对分别对应一个源序列和一个目标序列,源序列是相应推送目标的描述信息对应的字符向量序列,目标序列是与相应推送目标的推送序列对应的数字ID序列或者字符序列;将各个序列对中的源序列作为所述编码神经网络的输入,将前面添加一个序列开始标识后的目标序列输入所述解码神经网络,根据所述解码神经网络的输出结果与在后面添加一个序列结束标识的目标序列的对比,调整所述编码解码网络的模型参数。

根据一个实施例,基于所述至少一个字符序列为所述待推送目标确定推送信息包括:通过预先训练的语言模型,预测各个字符序列分别作为句子出现的各个概率;按照各个概率选择满足以下条件之一的字符序列,作为待推送目标的推送信息:属于预定数量概率最大的字符序列、概率超过预设概率阈值。

根据一个实施例,所述描述信息通过光学字符识别方式从针对所述待推送目标的图片中获取。

根据第二方面,提供一种推送信息的生成装置,包括:

获取单元,配置为获取针对待推送目标通过自然语言进行描述的描述信息;

预处理单元,配置为将所述描述信息拆分为多个字符单元,并确定各个字符单元分别对应的各个字符向量,所述各个字符向量按照所述多个字符单元的排列顺序形成向量序列;

预测单元,配置为利用预先训练的编码解码网络处理所述向量序列,以得到至少一个不超过预定长度的字符序列;

确定单元,配置为基于所得到的各个字符序列为所述待推送目标确定推送信息。

根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。

根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。

通过本说明书实施例提供的方法和装置,在推送信息生成过程中,通过获取关于待推送目标的自然语言描述信息,将描述信息拆分成字符单元,根据字符单元对应的各个字符向量确定描述信息对应的向量序列,然后利用自然语言序列处理的编码解码网络处理该向量序列,预测出至少一个字符序列,然后从所确定出的字符序列中确定出推送信息。由于减少了人工参与,不受限于人工策划水平,创新地引入编码解码网络处理待推送目标的描述信息生成推送信息,可以提高推送信息生成的效率以及有效性。

附图说明

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

图1示出本说明书披露的实施例的实施场景示意图;

图2示出根据一个实施例的推送信息的生成方法流程图;

图3示出根据字符单元的独热表示的数字ID生成字符向量的网络示意图;

图4示出一个编码解码网络的示意图;

图5示出在一个具体例子中,将编码解码网络按时间顺序展开的示意图;

图6示出本说明书披露的实施例应用于APP推荐语生成过程的具体场景示意;

图7示出根据一个实施例的推送信息的生成装置的示意性框图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

图1为本说明书披露的一个实施例的实施场景示意图。在该实施场景中,用户可以通过与计算平台进行交互,以向计算平台提供待推送目标的描述信息,并从计算平台获取针对待推送目标的推送信息。其中,计算平台可以是诸如计算机、平板电脑、智能手机之类的硬件设备,也可以是运行于硬件设备的应用,本实施场景中对此不作限定。在一个实施例中,计算平台是终端或者运行于终端的软件,用户和计算平台之间可以直接进行交互。在另一个实施例中,计算平台是为终端运行的应用提供支持的服务器时,用户和终端进行直接交互,终端和服务器通过网络进行交互,从而用户和计算平台之间间接进行交互。

在图1示出的场景中,计算平台可以基于用户的输入,获取待推送目标的描述信息。然后计算平台对描述信息进行拆分,得到至少一个字符单元,例如一个字或一个词作为一个字符单元。每个字符单元可以对应一个字符向量(如词向量),多个字符单元对应的字符向量构成字符向量序列。进一步地,计算平台可以通过编码解码网络处理得到的字符向量序列,从而生成至少一个字符序列。根据这些字符序列,可以确定针对待推送目标的推送信息。该推送信息例如是对待推送目标的广告语等,用于简短醒目地推送待推送目标。在一个实施例中,还可以通过预先训练的预测模型为各个字符序列打分,以评估其作为句子出现的概率,并选择得分较高的字符序列作为待推送目标的推送信息。

如此,通过基于自然语言处理的编码解码网络,将自然语言描述的描述信息,转换成简短醒目的推送信息,提高推送信息的生成效率。

下面具体描述生成推送信息的流程。

图2示出根据一个实施例的推送信息的生成方法流程图。该方法的执行主体可以是任何具有计算、处理能力的系统、设备、装置、平台或服务器,例如图1所示的计算平台等。如图2示,该方法包括以下步骤:步骤201,获取针对待推送目标通过自然语言进行描述的描述信息;步骤202,将上述描述信息拆分为多个字符单元,并确定各个字符单元分别对应的各个字符向量,各个字符向量按照多个字符单元的排列顺序形成向量序列:步骤203,利用预先训练的编码解码网络处理上述向量序列,以得到至少一个不超过预定长度的字符序列;步骤204,基于所得到的各个字符序列为待推送目标确定推送信息。

首先,在步骤201中,获取针对待推送目标通过自然语言进行描述的描述信息。可以理解,待推送目标是信息推送过程中,要推送的对象,例如可以是各种实物商品或虚拟商品、应用(如终端APP)、网站、人物等等。

待推送目标可以对应一些描述信息。这些描述信息可以通过图片或者字符形式,由进行信息推送的业务方提供。通常,在描述信息是自然语言形式时,内容可以涵盖待推送目标的外形、结构、使用方法、功能、效果等等各方面。用于描述待推送目标的自然语言可以是各种语言形式,例如汉语、英语、拼音、数字、符号,等等。例如,针对一款开发脑力的APP的描述信息可以为,“××是一款培养幼儿早期识字能力的优秀应用软件,采用全新的右脑象形思维进行汉字的认知学习,把每个汉字巧妙转化为一个具体动画图形,并把动画、声音、图片、文字等有机结合,刺激幼儿视觉、听觉、触觉等多种感官的发展,快速激活右脑,激发幼儿学习兴趣”。可以理解,该描述信息通常可以是冗杂的,以尽可能详尽地对待推送目标进行各方面的描述。

当描述信息是字符形式时,可以直接获取字符形式的描述信息,当描述信息出现在图片中时,可以通过诸如光学字符识别(Optical Character Recognition,OCR)之类的方式获取对应的描述信息。

描述信息可以是实时获取的,例如用户当前通过键盘输入。描述信息还可以是预先存储在本地的,直接从本地获取。

然后,在步骤202,将上述描述信息拆分为多个字符单元,并确定各个字符单元分别对应的各个字符向量,各个字符向量按照多个字符单元的排列顺序形成向量序列。

由步骤201可知,最终获取的描述信息是文本信息。对于这种文本信息可以按照字、词等字符单元进行拆分。在一个实施例中,对于文字形式的描述信息,如汉语、韩语、日语等文字形式的描述信息,可以按照单个文字(char)和/或至少一个文字形成的词汇(word)等形式进行,在此不做限定。例如,前述的例子中,“××是一款培养幼儿早期识字能力的优秀应用软件”拆分成至少一个字符单元为:“××”、“是”、“一款”、“培养”、“幼儿”、“早期”、“识字”、“能力”、“的”、“优秀”、“应用”、“软件”等等。在其他实施例中,对于字符形式的描述信息,如英语、法语等文字形式的描述信息,可以按照具有独立意义的字符串这样的字符单元进行拆分,其中的具有独立意义的字符串也可以称为单词。例如,“Knowledge is power”,可以拆分成“Knowledge”、“is”、“power”等等。

在进行字符单元拆分时,可以按照预设的词典进行最大长度字符匹配(从一个字符开始,从词典中匹配到最大长度的词汇作为一个字符单元),得到相应的字符单元,也可以按照特殊字符(如英文中的空格等)来分割字符单元,在此不作限定。

对各个字符单元,还可以转换成一个字符向量。字符向量可以通过向量方式对字符的语义进行描述。生成字符向量的方法可以是基于统计学的方法(共现矩阵、SVD分解),也可以是基于不同结构的神经网络的语言模型,例如word2vec(word embeddings,词向量)、glove(Global vectors for word representation,词的全局向量)等等。

以神经网络的语言模型(如word2vec等)生成词向量为例,可以先将词汇通过独热表示(one-hot representation),也就是给每个词分配一个唯一数字串,以此来区分词汇。例如:“香蕉”表示为[0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0...],“苹果”表示为[0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0...]。也就是说,在语料库中,一个词汇(如香蕉、苹果等等)对应一个向量,向量中只有一个值为1,其余都为0。这个向量对应的就是词汇的唯一数字串。如果将上述向量看作是二进制数表示,那么每个词汇还可以对应到一个十进制或十六进制数字。不同的两个词汇对应的数字串也不同。这个数字串也可以称为数字ID,例如数字ID也可以用上述的二进制向量转化成的十进制数表示,如唯一数字串[0 0 0 0 0 0 0 0 0 0 0 0...1 0 0 0]可以对应一个数字ID“8”。这样得到的向量维度的大小取决于语料库中字词的多少。如果语料库中词汇较多,向量维度非常大。词向量模型可以通过低维向量,将意思相近或关联性较强的词汇映射到向量空间中相近的位置。

例如对于word2vec,如图3所示,输入层可以是词汇的独热表示对应的(数字ID),输出层是词汇对应的词向量,其中输出层每个元素对应词向量中的一个词汇维度。例如输出层分别对应词汇[苹果,香蕉,桔子,大米……],每个元素上的值可以表示输入层对应的词汇与该元素对应的词汇的关联程度。其中,在训练模型时,样本词汇的词向量可以通过样本词汇与各个元素对应的词汇的关联程度来表示,对样本词汇而言,该关联程度可以通过对语料库中词汇的上下文关系进行统计确定。两个词汇一起在上下文(如相邻)共同出现的概率越高,其关联程度越强。每个元素上的数值都可以在0-1之间取值。将样本词汇对应的独热表示中的数字ID连接到一个具有较少个节点的隐藏层。连接输入层和隐藏层的权重将成为词向量。该隐藏层的激活函数例如可以是对该层各节点的线性加权和(不会使用如sigmoid或tanh这样的非线性激活函数)。此后隐藏层的节点会馈送到softmax(归一化指数函数)输出层。在训练过程中,对于语料库中出现的词汇,可以不断调整神经网络的权重(模型参数),使输入层对应的每个词汇,其关联程度较高的单词在输出层中输出的概率更高。

如此,可以获取各个字符单元分别对应的各个字符向量。将各个字符向量按照多个字符单元在描述信息中的排列顺序进行排列,就可以形成针对描述信息的向量序列。

然后,通过步骤203,利用预先训练的编码解码网络处理上述向量序列,以得到至少一个不超过预定长度的字符序列。其中,编码解码网络(Encoder-Decoder)适用于处理序列到序列问题的神经网络。所谓编码,就是将输入序列转化成一个固定长度的向量;解码,就是将之前生成的固定向量再转化成序列输出。其中,编码的过程用于解析输入的字符序列中的语言含义,解码的过程将解析到的语言含义通过另外的字符序列表达出来。

如图4所示,编码解码网络可以通过两部分的神经网络实现,第一部分的神经网络401实现编码(Encoder),第二部分的神经网络402实现解码(Decoder)。神经网络401输出的语义向量C作为神经网络402的输入。具体实现的时候,编码神经网络401和解码神经网络402都是可选的,例如分别从CNN(Convolutional Neural Networks,卷积神经网络)、RNN(Recurrent Neural Network,循环神经网络)、BiRNN(Bi-directional Recurrent Neural Network,双向循环神经网络)、GRU(Gated Recurrent Unit,门控循环单元)、LSTM(Long Short-Term Memory,长短期记忆模型)等等中任选。编码神经网络401和解码神经网络402之间通过传递语义向量C进行连接。编码神经网络401的输入为字符向量序列“X1”、“X2”、“X3”……解码神经网络402的输出对应到字符序列“Y1”、“Y2”、“Y3”……其中,解码神经网络402的输出可以是一个字符序列,也可以是独热表示的数字ID序列,每个数字ID对应一个字符,从而对应到字符序列,在此不作限定。

根据一个实施方式,编码解码网络可以作为一个神经网络整体进行训练。首先,可以将分别与多个推送目标对应的各个序列对作为训练样本。其中,每个推送目标对应一个序列对,该序列对包括一个源序列(source)和一个目标序列(target)。源序列可以是针对某个目标(如商品、人物等)的描述信息拆分后的字符向量序列。目标序列可以是人工给出的针对描述信息确定的推送信息拆分得到的各个字符单元的数字ID或字符向量或字符单元本身。如表1所示,是各个样本对应的描述信息和推送信息的示例。从各个描述信息提取相应的源序列的过程与步骤201、步骤203的过程类似,在此不再赘述。从各个推送信息中提取目标序列的过程可以与提取源序列的过程类似。当目标序列是字符序列时,对推送信息拆分成字符单元即可得到目标序列,当目标序列是独热表示的数字ID时,进一步获取拆分到的字符单元的数字ID即可。

表1样本描述信息和推送信息示例

表1的样本示例是针对终端应用(APP)的描述信息,以及对应的终端应用广告语(推送信息)。从表1可以看出,描述信息可以详尽具体冗杂,推送信息则简洁易懂,且主题明确,可以一目了然地了解推送目标的功能。

下面描述利用训练样本训练编码解码网络的过程。

为了更清楚地描述,请一起参考图4、图5。其中,图5是一个具体样本输入编码解码网络过程中,将图4中的神经网络401和神经网络402中的隐藏单元(神经元)按照时间进行展开的示意图。事实上,在神经网络401和神经网络402通过循环神经网络RNN、LSTM等实现时,分别可以只包含一个神经元。该神经元可以在不同时刻按顺序接收不同的输入数据,给出不同的输出结果。

图5中,假设一个序列对的源序列为A、B、C,目标序列为W、X、Y、Z。首先,将源序列A、B、C在不同时刻依次作为特征输入神经网络401,由神经网络401将输入的序列转换成一个固定长度的语义向量。然后将该语义向量传递给神经网络402,该语义向量通过神经网络402将在各个时刻向后传递。

对于神经网络402,需要先对目标序列进行处理,为了使得输出结果更准确,在模型训练阶段,将神经网络402中的隐藏单元的各个时间点的输入进行调整,使得各个输入是前一个字符单元或前一个字符单元对应的数字ID,而不是前一时刻的输出结果。如图5所示,神经网络402的神经元在各个时刻接收到的输入数据分别为序列开始标记(如go)、W、X、Y、Z。其中,序列开始标记表示预测序列的开始。而通过神经网络401得到的固定长度的语义向量会在神经元的不同时刻进行传递。图5中,在初始时刻,神经元接收到输入的序列开始标记“go”,根据语义向量预测第一个字符单元(即与“W”对应的字符单元)。下一个时刻,神经元接收到输入的与字符单元“W”对应的字符单元或数字ID,以及初始时刻传承下来的语义向量,预测出和第一个字符单元“W”组成序列的第二个字符单元(与“X”对应的字符单元),从而输出W、X序列。以此类推,直至神经元接收到最后一个字符单元“Z”对应的字符向量或数字ID,根据上一时刻传承下来的语义向量预测最后一个字符单元(与序列结束标识eos对应的字符单元)。

对模型进行训练时,对于前述的各个训练样本中的每个序列对,将源序列输入到连接到一起的编码解码网络中的编码神经网络401,并把在最前面增加了序列开始标识(如go)的目标序列输入到解码神经网络402。获取解码神经网络402在各个时刻输出的字符序列或数字ID序列,将其与在结尾添加了序列结束标识(如eos)的目标序列中对应的字符单元进行逐个比较,从而调整模型参数,使得损失函数的值向减小的方向改变。从图5中可以看出,由于对于输入解码神经网络402的目标序列添加了序列开始标识“go”,用于比较的目标序列结尾添加了序列结束标识“eos”,使得解码神经网络402的神经元的输入和输出,在目标序列上形成一个字符单元的错位,从而可以通过输入前一个字符单元时,将预测结果与后一个字符单元进行比较,完成编码解码网络的训练。

在利用训练的编码解码网络处理步骤202中得到的向量序列时,可以将各个字符向量按照次序在各个时间点分别输入编码神经网络401的神经元,并获取解码神经网络402的神经元在各个时刻的各个输出结果。神经网络402的各个输出结果可以是字符单元、字符向量、字符单元对应的数字ID,各个输出结果对应的字符单元组成字符序列。神经网络402也可以将各个时刻的输出结果向下一时刻传递,从而最终直接输出预测到的字符单元序列或数字ID序列,并对应到字符序列。首先,通过神经网络401输出的语义向量,以及设定的开始标识,利用解码神经网络402的神经元可以预测预定个数(如10个)的第一个字符。然后,根据神经网络401输出的语义向量和第t-1时刻解码神经网络402已预测到的字符或字符序列,通过解码神经网络402的神经元在第t时刻可以预测出上述预定个数的当前字符序列。其中,t为大于1的自然数。解码神经网络402的神经元在第t时刻的状态,可以理解为图5中解码神经网络402按时间序列展开后的第t个神经元状态。

在通过神经网络402确定字符序列的过程中,可以采用诸如集束搜索(beamsearch)、贪婪算法(Greedy algorithm)之类的方法进行。以集束搜索为例,按照词表中的词汇概率来选择词汇组成序列。其中,词表可以预先通过语料库统计得到。

为了描述方便,以词表中只有“我”“是”“学生”三个词汇作为束流大小(beam size)为2的集束搜索的具体例子进行说明。

仍参考图4所示,在第一时刻,神经网络402的神经元根据输入的语义向量,输出概率最大的2个(2为beam size)词汇“我”(如概率为0.5)和“是”(如概率为0.4),作为预测到的首字符。也就是Y1有两种可能的取值,分别对应词表中的词汇“我”和“是”。分别把“我”和“是”作为在第二时刻神经网络402的神经元输入,同时将神经网络401得到的语义向量保留。当把“我”作为第二时刻的神经元输入时,得到各个词汇作为Y2输出的概率分布,例如为“我”0.3,“是”0.6,“学生”0.1。当把“是”作为第二时刻的神经元输入时,得到各个词汇作为Y2输出的概率分布,例如为“我”0.3,“是”0.3,“学生”0.4。

由于设置的beam size为2,保留概率最大的两个序列。此时可以在第一时刻得到的Y1的两个可能的取值的基础上,计算所有可能的序列概率:

“我 我”的概率为0.5×0.3=0.15;

“我 是”的概率为0.5×0.6=0.3;

“我 学生”的概率为0.5×0.1=0.05;

“是 我”的概率为0.4×0.3=0.12;

“是 是”的概率为0.4×0.3=0.12;

“是 学生”的概率为0.4×0.4=0.16。

两个概率最大的序列为“我是”和“是学生”。这两个序列就可以对应第二时刻预测到的序列。在后续的时刻,神经网络402的神经元不断重复这个过程,直到遇到结束符为止,得到两个概率最大的序列。其中,词表中词汇的数量通常很大,计算过程也比前述过程复杂,但原理是一致的。最终得到的序列数量由束流大小(beam size)确定,当束流大小设置为10时,得到10个概率最大的序列。

值得说明的是,由于解码的过程中,第i时刻神经元的输入,包括了第i-1时刻神经元的输出,那么很自然在神经元的输出不同的时候,就会导致下一时刻模型的输出概率分布会不同,因为第i-1时刻神经元的输出作为参数影响了第i时刻神经元的学习结果。所以,第i-1时刻选择的字符单元或字符序列不同的时候,i时刻的输出概率分布也不同。

可以理解,已知的描述信息中的字符单元的数量是有限的,相应的字符向量序列长度也是有限的。也就是说,在输入字符向量时,按照字符单元的排列顺序输入向量序列长度也是有限的。因此,对于编码神经网络301而言,不必限定隐藏层的层数。对于循环神经网络RNN、LSTM等而言,也可以理解为不必限定隐藏单元的数量。

在一个实施例中,为了模型训练的一致性,还可以对输入序列进行补全,使得输入序列所包含的字符向量的数量是固定的。例如,对于较短的向量序列,后续向量通过预定向量表示,从而补全为预定长度的向量序列。

而对于解码神经网络402而言,由于输出结果是事前无法预知的,输出结果对应的字符序列中的字符数量也不能预先确定。如果输出字符数量较大,计算量也会较大,甚至无限执行下去。对于推送信息而言,往往具有诸如简洁性、概括性、引人注目性等等之类的要求,字符数量过多会变得冗杂,无法满足信息推送的要求。因此,可以预先设置解码神经网络中隐藏层的层数,对于循环神经网络而言,也可以理解为隐藏单元的数量。这样,可以保证预测到的字符序列不超过预定长度。

在步骤203中,根据字符单元的出现概率可以预测出预定数量的字符序列,这里的预定数量至少为一个。接着,在步骤204,基于所得到的各个字符序列为待推送目标确定推送信息。这里,可以将步骤203中预测到的字符序列都作为推送信息,也可以对步骤203中预测到的字符序列通过不同的方式进行质量评估,从中确定一个或多个字符序列作为推送信息。

根据一个实施例,可以在步骤203中最终输出的预定数量的概率最大的序列中,取概率最高的一个或多个序列作为推送信息。例如,在前述示例中,两个概率最大的序列,“我是”的概率为0.3,“是学生”的概率为0.16,可以直接选择“我是”这个序列。

根据另一个实施例,可以使用预先训练的语言模型,预测通过步骤203得到的字符序列作为句子的概率。其中,语言模型可以通过给定语料库,例如××百科、新闻语料等,进行训练。对于给定句子,假设包含字符单元序列P(S)=W1,W2,...,Wk,则相应句子的概率可以表示为:P(S)=P(W1,W2,…,Wk)p(W1)p(W2|W1)…p(Wk|W1,W2,…,Wk-1);

其中,该概率值P(S)可以落在[0,1]的区间范围,p(W1)为W1作为句首的概率,p(W2|W1)可以表示W2出现在W1之后的概率……p(Wk|W1,W2,...,Wk-1)可以表示在W1,W2,...,Wk-1的基础上,出现Wk的概率。

在一个实现方式中,语言模型可以是统计模型。也就是说,对语料库中各个字符单元出现在其他字符单元或字符序列之后的概率、出现在句首的概率等等进行统计。例如,对于“我”和“是”两个字符单元,“是”出现在“我”之后的概率可以为,“是”在语料库出现在“我”之后的次数/语料库中“我”出现的次数。这样,对字符单元序列P(S)=W1,W2,...,Wk,可以查询p(W1)、p(W2|W1)…p(Wk|W1,W2,...,Wk-1)等等,并将它们的乘积确定为P(S)。

在另一个实现方式中,语言模型可以通过预先训练机器学习模型确定。此时,语料库中的各个句子,都可以作为训练样本。语言模型可以是n-gram(N源模型)、NNLM(Nerual Network Language Model,语言的神经网络模型)、LSTM神经网络语言模型等等中的一种。以LSTM神经网络为例,可以将训练样本的各个句子拆分得到的字符单元对应的字符向量,按顺序输入LSTM的神经元,并且每个时刻的神经元影响后续神经元的输出,利用已知的概率1作为标签调整模型参数,从而对LSTM神经网络进行训练。对字符单元序列P(S)=W1,W2,...,Wk,将对应的字符序列按顺序输入训练好的LSTM模型,可以得到LSTM模型为该序列做出的预测分数,来表示这个字符序列作为句子的概率P(S)。

在更多实现方式中,还可以训练更多种类的语言模型,在此不再一一例举。预测的P(S)的值越大,字符序列作为句子的可能性越大。因此,针对步骤203中得到的至少一个字符序列,可以筛选出通过预测模型预测的概率最大的预定数量(如1个)的字符序列作为步骤201中的描述信息对应的推送信息,也可以筛选出通过预测模型预测的概率超过预设概率阈值(如0.5)的字符序列作为步骤201中的描述信息对应的推送信息。

根据又一个实施例,还可以先对步骤203中确定的至少一个序列按照是否完整句子进行筛选。例如,图3中,解码神经网络的神经元的层数最大为10,当预测到“培养您的天才宝贝,就”这样的字符序列时,根据语法特点判断显然不是一个完整的句子,则可以优先筛除。之后再按照前述任一方式从剩余的序列中选择出推送信息。

根据其他实施例,还可以通过人工在步骤203得到的至少一个字符序列中筛选出符合广告语特点的字符序列,作为待推送目标的推送信息。

为了更直观地描述本说明书实施例的效果,请参考图6所示,示出本说明书在具体场景中的实施示例。图6示出的场景是为APP生成推荐语的场景。

首先,通过步即编码解码网络骤1、2、3预先训练Sep2Sep(Sequence to Sequence,序列到序列)模型。并通过步骤4、5、6的文本语料训练语言模型,用于为字符序列打分。

在生成推荐语的过程中,APP作为待推送对象,在步骤7接收用户输入的APP详情,即描述信息。然后,在步骤8,将APP详情对应的向量序列输入预先训练的Sep2Sep模型。Sep2Sep模型根据输入的向量序列,预测到预定个数的字符序列。通过步骤9,用预先训练的语言模型为各个预测到的字符序列打分。在步骤10,根据步骤9的打分为各个预测到的字符序列排序,以从中选择分数最高的预定个字符序列输出。其中,所选择的的分数最高的预定个字符序列就是APP的推荐语。

回顾以上过程,在推送信息生成过程中,仅获取关于待推送目标的自然语言描述信息,通过对描述信息拆分成字符单元,确定描述信息对应的向量序列,利用自然语言序列处理的编码解码网络处理该向量序列,预测出至少一个字符序列,把那个从所确定出的字符序列中确定出推送信息。由于减少了人工参与,不受限于人工策划水平,创新地引入编码解码网络处理待推送目标的描述信息生成推送信息,可以提高推送信息生成的效率以及有效性。

根据另一方面的实施例,还提供一种推送信息的生成装置。图7示出根据一个实施例的用于推送信息的生成装置700的示意性框图。如图7所示,装置700包括:

获取单元71,配置为获取针对待推送目标通过自然语言进行描述的描述信息;

预处理单元72,配置为将获取单元71获取的描述信息拆分为多个字符单元,并确定各个字符单元分别对应的各个字符向量,各个字符向量按照多个字符单元的排列顺序形成向量序列;

预测单元73,配置为利用预先训练的编码解码网络处理预处理单元72得到的向量序列,以得到至少一个不超过预定长度的字符序列;

确定单元74,配置为基于预测单元73预测的各个字符序列,为待推送目标确定推送信息。

在一个实施例中,上述字符单元可以是以下中的一项:

单个文字、至少一个文字形成的词汇、具有独立意义的字符串。

根据一个实施方式,上述多个字符单元包括第一字符单元;

预处理单元72进一步配置为:

查询第一字符单元对应的独热表示的第一数字ID;

将第一数字ID输入预先训练的字符向量模型,从而根据字符向量模型的输出结果确定第一字符单元对应的字符向量。

在一个可能的设计中,编码解码网络包括编码神经网络和解码神经网络;

预测单元73进一步配置为:

通过编码神经网络将向量序列转换成语义向量;

通过解码神经网络为语义向量预测至少一个字符序列。

在进一步的实施例中,编码神经网络或解码神经网络分别为循环神经网络、双向循环神经网络、门控循环单元、长短期记忆模型中的一个。

在进一步的实施例中,预测单元73还可以配置为:

根据语义向量和开始标识,通过解码神经网络的神经元在第一时刻预测预定个数的第一个字符;

根据语义向量和第t-1时刻已预测到的字符或字符序列,通过解码神经网络的神经元在第t时刻预测预定个数的当前字符序列,其中,t为大于1的自然数。

根据一个可能的设计,装置700还包括训练单元(未示出),配置为通过以下方式训练编码解码网络:

将分别与多个推送目标对应的各个序列对作为训练样本,其中,各个序列对分别包括一个源序列和一个目标序列,源序列是相应推送目标的描述信息对应的字符向量序列,目标序列是与相应推送目标的推送序列对应的数字ID序列或者字符序列;

将各个序列对中的源序列作为编码神经网络的输入,将前面添加一个序列开始标识后的目标序列输入解码神经网络,根据解码神经网络的输出结果与在后面添加一个序列结束标识的目标序列的对比,调整编码解码网络的模型参数。

在一个可能的实施例中,确定单元74还可以配置为:

通过预先训练的语言模型,预测各个字符序列分别作为句子出现的各个概率;

按照各个概率选择满足以下条件之一的字符序列,作为待推送目标的推送信息:属于预定数量概率最大的字符序列、概率超过预设概率阈值。

在一个实施例中,装置700还包括识别单元,配置为通过光学字符识别方式从针对待推送目标的图片中获取待推送目标的描述信息。

值得说明的是,图7所示的装置700是与图2示出的方法实施例相对应的装置实施例,图2示出的方法实施例中的相应描述同样适用于装置700,在此不再赘述。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1