本申请涉及信息输入领域,尤其涉及一种基于循环神经网络的输入方法及装置。
背景技术:
随着科技发展,多种终端设备应运而生,例如手机、智能电视和计算机等,以满足用户的工作和娱乐需求。在终端设备的使用过程中,用户有时需要输入信息,以便终端设备根据接收到的信息执行相应的操作。为了提高输入效率,优化用户的体验,现有输入方法通常会提供候选词推荐功能。该功能用于根据用户输入的前几个词语,推测出用户希望输入的下一个词语,将其作为候选词,并向用户推荐。
目前,为了实现候选词推荐功能,大部分输入方法采用n元语言模型,这种输入方法中,预先通过大规模的语料统计长度为n的词组出现的频率,据此构建n元语言模型,然后根据用户已经输入的前n-1个词语以及该n元语言模型,确定需要向用户推荐的下一个词语(即候选词)。但是,受到n元语言模型的模型大小和数据稀疏问题的制约,应用该方案时,往往只能根据输入的前n-1个或n-2个词语去推测候选词,而无法考虑更长的上下文信息,导致推荐的候选词不准确。例如,若用户输入“intwodays”,且采用的n元语言模型为三元语言模型,则通过用户输入的“twodays”确定候选词,由于通过大规模语料统计,可以确定“twodaysago”为常用词组,则三元语言模型会推测候选词为“ago”。但是,“intwodaysago”是不符合英语语法的,“ago”并不是一个合适的候选词,导致本次推荐的候选词不准确。
为了解决上述输入方法所具有的推荐候选词不准确的问题,目前还可采用一种应用循环神经网络的输入方法。该方法中,需要构建循环神经网络模型,并将每一个词语分解成一个多维(通常为几百维)的向量,各个词语的向量构成词向量矩阵。其中,若假设用于构建词向量矩阵的词语数量为n,每个词语的词向量维度为e,则词向量矩阵通常为n*e矩阵。当需要向用户推荐候选词时,通过词向量矩阵,能够获取用户输入的各个历史词语的词向量,以及获取当前词的词向量,将各个历史词语的词向量和当前词的词向量输入循环神经网络,循环神经网络即可输出候选词。该方法能够基于用户输入的历史词语的词向量以及当前输入词的词向量,推测得到候选词,从而提高了推荐候选词的准确性。
但是,发明人在本申请的研究过程中发现,应用循环神经网络的输入方法时,每个词语通常被表示成几百维的向量,且词表中往往有几万个单词(即n的数值为几万),这就导致词向量矩阵中包含上万个几百维的向量(即e的数值为几百),容量极大,并且根据词向量确定候选词时的计算量较大,对终端设备的存储能力和运量能力具有较高的要求,甚至难以在某些终端设备(例如手机)上应用。
技术实现要素:
本发明实施例公开一种基于循环神经网络的输入方法及装置,以解决现有技术中,词向量矩阵容量极大,并且根据词向量确定候选词时的计算量较大,对终端设备的存储能力和运量能力具有较高的要求的问题。
本发明的第一方面,公开一种基于循环神经网络的输入方法,包括:
获取词向量矩阵,其中,所述词向量矩阵为n*e矩阵,n为词语数量,e为每个词语的词向量维度;
获取所述词向量矩阵中b个词语的词向量,根据所述b个词语的词向量构建过完备基底矩阵,其中,所述过完备基底矩阵为b*e矩阵,所述过完备基底矩阵中的每个基底向量表示所述b个词语对应的一个词向量,b为小于n的正整数;
根据每个词语的词向量以及所述过完备基底矩阵,构建稀疏表示下标矩阵和稀疏表示系数矩阵,其中,所述稀疏表示下标矩阵和所述稀疏表示系数矩阵均为n*s矩阵,s为预设的稀疏效果参数;
当需要推荐候选词时,根据所述过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,获取所需词语的目标基底向量,并通过所述目标基底向量确定所述所需词语的词向量,根据所需词语的词向量和循环神经网络模型获取候选词;
其中,每个词语的目标基底向量用于组合成所述词语的词向量;所述稀疏表示下标矩阵包含的下标向量表示若组成所述词语的词向量,所需的目标基底向量在所述过完备基底矩阵中的位置;所述稀疏表示系数矩阵包含的系数向量表示若组成所述词语的词向量,所需的目标基底向量对应的系数。
可选的,所述获取所述词向量矩阵中b个词语的词向量,包括:
按照词频为所述词语进行排序;
根据排序结果,选择词频最高的b个词语;
通过查询所述词向量矩阵,获取所述b个词语的词向量。
可选的,所述根据每个词语的词向量以及所述过完备基底矩阵,构建稀疏表示下标矩阵和稀疏表示系数矩阵,包括:
设定其中一个词语的词向量为xi,所述过完备基底矩阵为b,创建以下lasso回归问题:
其中,
求解所述lasso回归问题,获取当wi中非零分量的个数为s时,所述非零分量在wi中的维度,以及所述非零分量的值;
根据所述非零分量在wi中的维度,确定所述词语对应的稀疏表示下标向量,以及根据所述非零分量的值,确定所述词语对应的稀疏表示系数向量;
根据每个词语对应的稀疏表示下标向量,构建相应的稀疏表示下标矩阵,并根据每个词语对应的稀疏表示系数向量,构建相应的稀疏表示系数矩阵。
可选的,所述求解所述lasso回归问题,获取当wi中非零分量的个数为s时,所述非零分量在wi中的维度,以及所述非零分量的值,包括:
41)确定
42)将
43)获取wi中非零分量的个数,判断wi中非零分量的个数是否等于s,若等于,获取所述非零分量在wi中的维度,以及所述非零分量的值,若不等于,执行步骤44)的操作;
44)若wi中非零分量的个数大于s,根据预设的第一调整幅度扩大
可选的,所述当需要推荐候选词时,根据所述过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,获取所需词语的目标基底向量,并通过所述目标基底向量确定所述所需词语的词向量,包括:
查找所述稀疏表示下标矩阵,获取所述稀疏表示下标矩阵中,所述所需词语对应的稀疏表示下标向量,其中,所述稀疏表示下标向量用于指示所述所需词语的目标基底向量在所述过完备基底矩阵中的位置;
查找所述稀疏表示系数矩阵,获取所述稀疏表示系数矩阵中,所述所需词语对应的稀疏表示系数向量,其中,所述稀疏表示系数向量用于指示所述所需词语的目标基底向量对应的系数;
根据所述稀疏表示下标向量查找所述过完备基底矩阵,获取所述所需词语的目标基底向量;
根据所述目标基底向量,以及所述目标基底向量对应的系数,进行加权组合,计算所述所需词语的词向量。
本发明的第二方面,公开一种基于循环神经网络的输入装置,包括:
第一矩阵获取模块,用于获取词向量矩阵,其中,所述词向量矩阵为n*e矩阵,n为词语数量,e为每个词语的词向量维度;
第二矩阵获取模块,用于获取所述词向量矩阵中b个词语的词向量,根据所述b个词语的词向量构建过完备基底矩阵,其中,所述过完备基底矩阵为b*e矩阵,所述过完备基底矩阵中的每个基底向量表示所述b个词语对应的一个词向量,b为小于n的正整数;
第三矩阵获取模块,用于根据每个词语的词向量以及所述过完备基底矩阵,构建稀疏表示下标矩阵和稀疏表示系数矩阵,其中,所述稀疏表示下标矩阵和所述稀疏表示系数矩阵均为n*s矩阵,s为预设的稀疏效果参数;
候选词获取模块,用于当需要推荐候选词时,根据所述过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,获取所需词语的目标基底向量,并通过所述目标基底向量确定所述所需词语的词向量,根据所需词语的词向量和循环神经网络模型获取候选词;
其中,每个词语的目标基底向量用于组合成所述词语的词向量;所述稀疏表示下标矩阵包含的下标向量表示若组成所述词语的词向量,所需的目标基底向量在所述过完备基底矩阵中的位置;所述稀疏表示系数矩阵包含的系数向量表示若组成所述词语的词向量,所需的目标基底向量对应的系数。
可选的,所述第二矩阵获取模块包括:
词语排序单元,用于按照词频为所述词语进行排序;
词语选择单元,用于根据排序结果,选择词频最高的b个词语;
词向量获取单元,用于通过查询所述词向量矩阵,获取所述b个词语的词向量。
可选的,所述第三矩阵获取模块包括:
回归问题创建单元,用于设定其中一个词语的词向量为xi,所述过完备基底矩阵为b,创建以下lasso回归问题:
其中,
回归问题求解单元,用于求解所述lasso回归问题,获取当wi中非零分量的个数为s时,所述非零分量在wi中的维度,以及所述非零分量的值;
向量确定单元,用于根据所述非零分量在wi中的维度,确定所述词语对应的稀疏表示下标向量,以及根据所述非零分量的值,确定所述词语对应的稀疏表示系数向量;
矩阵构建单元,用于根据每个词语对应的稀疏表示下标向量,构建相应的稀疏表示下标矩阵,并根据每个词语对应的稀疏表示系数向量,构建相应的稀疏表示系数矩阵。
可选的,所述回归问题求解单元包括:初始数值确定子单元、回归问题计算子单元、非零分量子单元和数值调整子单元;
所述初始数值确定子单元,用于确定
所述回归问题计算子单元,用于将
所述非零分量子单元,用于获取wi中非零分量的个数,判断wi中非零分量的个数是否等于s,若等于,获取所述非零分量在wi中的维度,以及所述非零分量的值,若不等于,触发所述数值调整子单元执行相应的操作;
所述数值调整子单元,用于若wi中非零分量的个数大于s,根据预设的第一调整幅度扩大
可选的,所述候选词获取模块包括:
第一查找单元,用于查找所述稀疏表示下标矩阵,获取所述稀疏表示下标矩阵中,所述所需词语对应的稀疏表示下标向量,其中,所述稀疏表示下标向量用于指示所述所需词语的目标基底向量在所述过完备基底矩阵中的位置;
第二查找单元,用于查找所述稀疏表示系数矩阵,获取所述稀疏表示系数矩阵中,所述所需词语对应的稀疏表示系数向量,其中,所述稀疏表示系数向量用于指示所述所需词语的目标基底向量对应的系数;
目标基底向量获取单元,用于根据所述稀疏表示下标向量查找所述过完备基底矩阵,获取所述所需词语的目标基底向量;
加权组合单元,用于根据所述目标基底向量,以及所述目标基底向量对应的系数,进行加权组合,计算所述所需词语的词向量。
本发明实施例公开一种基于循环神经网络的输入方法及装置,该方法中,在获取词向量矩阵后,根据词向量矩阵构建过完备基底矩阵,并根据过完备基底矩阵构建稀疏表示下标矩阵和稀疏表示系数矩阵。当需要推荐候选词时,根据构建的过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,能够获取所需词语的词向量,再根据该词向量和循环神经网络模型获取候选词。
也就是说,通过本发明实施例公开的方案,将词向量矩阵分解成过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,通过过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,能够获取各个词语的词向量。而过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵的容量之和小于词向量矩阵,因此相对于现有技术,本发明实施例公开的方法占用的终端设备的空间较小,且计算量较小,从而减少对终端设备的存储能力和运量能力的需求,能够在多种终端设备(如手机)中应用。
进一步的,本发明实施例中,由于过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵的容量较小,减少了终端设备应用程序的安装包体积,从而便于在应用商店分发和下载,便于推广应用。并且,由于该方案中计算量较小,从而能够提高计算效率,用于在采用本发明实施例公开的方案进行文本输入时,会减少程序响应时间,减少终端设备的卡顿感,提高用户的使用体验。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种基于循环神经网络的输入方法的工作流程示意图;
图2为本发明实施例公开的一种基于循环神经网络的输入方法中的矩阵对比示意图;
图3为本发明实施例公开的一种基于循环神经网络的输入方法中,构建稀疏表示下标矩阵和稀疏表示系数矩阵的工作流程示意图;
图4为本发明实施例公开的一种基于循环神经网络的输入方法中,获取非零分量的下标和值的工作流程示意图;
图5为本发明实施例公开的一种基于循环神经网络的输入方法中,获取所需词语的词向量的工作流程示意图;
图6为本发明实施例公开的一种基于循环神经网络的输入装置的结构示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
本发明实施例公开一种基于循环神经网络的输入方法及装置,以解决现有技术中,词向量矩阵容量极大,并且根据词向量确定候选词时的计算量较大,对终端设备的存储能力和运量能力具有较高的要求的问题。
本发明第一实施例公开一种基于循环神经网络的输入方法。参见图1所示的工作流程示意图,该方法包括以下步骤:
步骤s11、获取词向量矩阵,其中,所述词向量矩阵为n*e矩阵,n为词语数量,e为每个词语的词向量维度。
这种情况下,所述词向量矩阵中的每一行表示该行对应的词语的词向量。
步骤s12、获取所述词向量矩阵中b个词语的词向量,根据所述b个词语的词向量构建过完备基底矩阵,其中,所述过完备基底矩阵为b*e矩阵,所述过完备基底矩阵中的每个基底向量表示所述b个词语对应的一个词向量,b为小于n的正整数。
其中,b为小于n的正整数,以避免过完备基底矩阵容量过大。并且,通常b大于e,也就是说,在过完备基底矩阵中包含b个词语对应的基底向量,过完备基底矩阵中基底向量的数量b的具体数值通常大于词向量维度,以保障过完备基底矩阵中包含足够数量的基底向量,满足后续的输入需求。
在实际应用过程中,通常设置b的数值数量为e的数值数量的4至5倍。例如,若词向量矩阵的大小是20000*400,即词向量维度e为400,可确定b的值为2000,则过完备基底矩阵的大小为2000*400。当然,b还可以设置为其他数值,本发明实施例对此不做限定。
在本发明实施例中,由于词语数量通常上万,词向量维度为几百,词语数量远远大于词向量维度,因此各个词语之间的词向量可以互相表达,从而构建过完备基底矩阵。所述过完备基底矩阵中的每个向量即为基底向量,即在该过完备基底矩阵中包括b个基底向量,每个词语的词向量能够由其中的部分基底向量进行加权组合而成。
步骤s13、根据每个词语的词向量以及所述过完备基底矩阵,构建稀疏表示下标矩阵和稀疏表示系数矩阵,其中,所述稀疏表示下标矩阵和所述稀疏表示系数矩阵均为n*s矩阵,s为预设的稀疏效果参数。
s的具体数值为预设的正整数,例如,s可以为10,这种情况下,若词向量矩阵的大小是20000*400,则稀疏表示下标矩阵和稀疏表示系数矩阵的大小均为20000*10。当然,s也可以为其他数值,本发明实施例对此不做限定。
其中,每个词语的目标基底向量用于组合成所述词语的词向量;所述稀疏表示下标矩阵包含的下标向量表示若组成所述词语的词向量,所需的目标基底向量在所述过完备基底矩阵中的位置;所述稀疏表示系数矩阵包含的系数向量表示若组成所述词语的词向量,所需的目标基底向量对应的系数。
在本发明实施例中,认为对过完备基底矩阵中的s个基底向量进行加权组合,即可获取一个词语的词向量,这s个基底向量即为该词语的目标基底向量。也就是说,每个词语的目标基底向量用于组合成所述词语的词向量。
其中,s为稀疏效果参数,表示对于任意一个词语,从过完备基底矩阵中选择s个基底向量(即该词语的目标基底向量),通过对这s个基底向量进行加权组合,能够得到该词语的词向量。
这种情况下,对于某一个词语,无需保存该词语的词向量矩阵,而只需要保存该词语的词向量能够由哪些基底向量通过加权组合而成即可。其中,通过稀疏表示下标矩阵,能够确定该词语的目标基底向量在过完备基底矩阵中的位置,通过查询过完备基底矩阵,即可确定该词语的目标基底向量。另外,通过稀疏表示系数矩阵,即可确定各个目标基底向量的系数,该系数即为对目标基底向量进行加权组合,以获取该词语的词向量时,各个目标基底向量所占的权重。
由于对每个词语,均可通过该词语对应的目标基底向量进行加权组合,得到该词语的词向量,因此,总共需要记录n*s个下标,记录的n*s个下标即为稀疏表示下标矩阵。另外,总共需要记录n*s个系数,记录的n*s个系数即为稀疏表示系数矩阵。
将稀疏表示下标矩阵中包含的每一行向量称为下标向量,其中每个下标向量表示若组成某一个词语的词向量,所需的多个目标基底向量在过完备基底矩阵中的位置。例如,若其中一个词语的s个目标基底向量在过完备基底矩阵中的位置分别为第a1,a2,…,as行,则对应的下标向量可以为(a1,a2,…,as)。
另外,将稀疏表示系数矩阵中每一行向量称为系数向量,其中每个系数向量表示表示若组成所述词语的词向量,所需的多个目标基底向量分别对应的系数。
步骤s14、当需要推荐候选词时,根据所述过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,获取所需词语的目标基底向量,并通过所述目标基底向量确定所述所需词语的词向量,根据所需词语的词向量和循环神经网络模型获取候选词。
该步骤中,通过对所需词语的目标基底向量进行加权组合,能够获取所需词语的词向量。其中,所需词语可以为用户输入的当前词以及之前输入的历史词语等。
当需要推荐候选词时,通过上述各个步骤构建的过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,能够确定所需词语的目标基底向量以及各个目标基底向量对应的系数,进行加权组合,得到所需词语的词向量。然后根据所需词语的词向量和循环神经网络获取候选词,具体的,将所需词语的词向量输入值循环神经网络模型,该循环神经网络模型即可输出候选词,从而满足向用户推荐候选词的需求。
本发明第一实施例公开一种基于循环神经网络的输入方法,该方法中,在获取词向量矩阵后,根据词向量矩阵构建过完备基底矩阵,并根据过完备基底矩阵构建稀疏表示下标矩阵和稀疏表示系数矩阵。当需要推荐候选词时,根据构建的过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,能够获取所需词语的词向量,再根据该词向量和循环神经网络模型获取候选词。
也就是说,通过本发明实施例公开的方案,将词向量矩阵分解成过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,通过过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,能够获取各个词语的词向量。而过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵的容量之和小于词向量矩阵,因此相对于现有技术,本发明实施例公开的方法占用的终端设备的空间较小,且计算量较小,从而减少对终端设备的存储能力和运量能力的需求,能够在多种终端设备(如手机)中应用。
进一步的,本发明实施例中,由于过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵的容量较小,减少了终端设备应用程序的安装包体积,从而便于在应用商店分发和下载,便于推广应用。并且,由于该方案中计算量较小,从而能够提高计算效率,用于在采用本发明实施例公开的方案进行文本输入时,会减少程序响应时间,减少终端设备的卡顿感,提高用户的使用体验。
为了明确词向量矩阵与本发明实施例中的过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵的容量之间的差别,本发明实施例公开了图2。
参见图2所示的矩阵对比示意图,该图中,最左侧的矩形为词向量矩阵,该词向量矩阵的大小为20000*400。另外,该图中右侧的三个矩形分别为过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,根据上述步骤可知,过完备基底矩阵的大小为2000*400,稀疏表示下标矩阵的大小为20000*10,稀疏表示系数矩阵的大小为20000*10。各个矩形的面积代表了该矩形对应的矩阵的维度,也反映了矩阵内部元素数量的多寡。通过图2,可以看出,词向量矩阵被拆分成了三个矩阵,即完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵。
据此,可以计算出词向量矩阵在拆分前后的压缩比,该压缩比=(2000*400+20000*10+20000*10)/(20000*400)=15%。该计算表明,通过本发明实施例公开的方法,能够将词向量矩阵的容量减少6倍左右,这是相当可观的压缩量,表明本发明实施例公开的方法能够有效减少词向量矩阵的容量。
进一步的,在本发明实施例中,公开了获取所述词向量矩阵中b个词语的词向量的步骤,以便通过所述b个词语的词向量构建过完备基底矩阵。其中,所述获取所述词向量矩阵中b个词语的词向量,包括以下步骤:
首先,按照词频为所述词语进行排序;
然后,根据排序结果,选择词频最高的b个词语;
最后,通过查询所述词向量矩阵,获取所述b个词语的词向量。
在构建过完备基底矩阵时,可从词向量矩阵中任选b个词语,通过任选的b个词语的词向量构建所述过完备基底矩阵。另外,为了提高获取候选词的准确性,通常根据词频较高的词语的词向量构建过完备基底矩阵。这种情况下,可根据上述步骤的描述,按照词频为各个词语排序,根据排序结果选择词频最高的b个词语,然后根据词向量矩阵获取这b个词语的词向量,以通过词频最高的b个词语的词向量构建过完备基底矩阵。
进一步的,在本发明实施例中,公开根据每个词语的词向量以及所述过完备基底矩阵,构建稀疏表示下标矩阵和稀疏表示系数矩阵的操作。参见图3所示的工作流程示意图,所述根据每个词语的词向量以及所述过完备基底矩阵,构建稀疏表示下标矩阵和稀疏表示系数矩阵,包括,包括以下步骤:
步骤s21、设定其中一个词语的词向量为xi,所述过完备基底矩阵为b,创建以下lasso回归问题:
其中,
例如,若过完备基底矩阵有5行,即b=5,则wi的维度为5。
n*e的词向量矩阵中的每一行为一个词语的词向量,该词向量的维度为e,各个词向量可分别记为x1到xn,而对于其中任意一个词语的词向量可记为xi,i为不小于1且不大于n的正整数。对于xi,可以构建一个s维的稀疏表示下标向量和一个s维的稀疏表示稀疏向量,以便通过该s维的稀疏表示下标向量和s维的稀疏表示稀疏向量确定词向量xi。
步骤s22、求解所述lasso回归问题,获取当wi中非零分量的个数为s时,所述非零分量在wi中的维度,以及所述非零分量的值。
在求解所述lasso回归问题时,可采用循环坐标下降法和lars方法等,当然,也可以采用其他方法,本发明实施例对此不做限定。
步骤s23、根据所述非零分量在wi中的维度,确定所述词语对应的稀疏表示下标向量,以及根据所述非零分量的值,确定所述词语对应的稀疏表示系数向量。
在本发明实施例中,当wi中非零分量的个数为s时,非零分量在wi中的维度即可指示该词语对应的稀疏表示下标向量,非零分量的值即可指示该词语对应的稀疏表示系数向量。
例如,若预设的稀疏效果参数s=2,b=5,词语数量n=10000,这种情况下,wi的维度为5。通过求解lasso回归问题,当wi中非零分量的个数为s个(即2个)时,获取到的wi为(0,0.3,0,0,0.6),其中非零分量分别为第2维和第5维,则该词语对应的稀疏表示下标向量为(2,5)。另外,非零分量的值分别为0.3和0.6,则稀疏表示系数向量为(0.3,0.6)。
步骤s24、根据每个词语对应的稀疏表示下标向量,构建相应的稀疏表示下标矩阵,并根据每个词语对应的稀疏表示系数向量,构建相应的稀疏表示系数矩阵。
其中,一个下标向量即为稀疏表示下标矩阵中的一行,一个系数向量即为稀疏表示系数矩阵中的一行。
由于对词向量矩阵中的每个词向量,均可构建一个s维的稀疏表示下标向量和一个s维的稀疏表示稀疏向量,因此,一共能够构建n个s维的稀疏表示下标向量和n个s维的稀疏表示系数向量,这n个s维的稀疏表示下标向量即可构成稀疏表示下标矩阵,n个s维的稀疏表示系数向量即可构成稀疏表示系数矩阵,从而获取n*s的稀疏表示下标矩阵,以及获取n*s的稀疏表示系数矩阵。
在上述步骤中,通过求解lasso回归问题,获取当wi中非零分量的个数为s时,所述非零分量在wi中的维度,以及所述非零分量的值,并据此构建稀疏表示下标矩阵和稀疏表示系数矩阵。其中,在所述lasso回归问题中,
这种情况下,参见图4,在本发明实施例中,所述求解所述lasso回归问题,获取当wi中非零分量的个数为s时,所述非零分量在wi中的维度,以及所述非零分量的值,包括以下步骤:
步骤s31、确定
在本发明实施例中,
步骤s32、将
步骤s33、获取wi中非零分量的个数,判断wi中非零分量的个数是否等于s,若是,执行步骤s34的操作,若否,执行步骤s35的操作。
步骤s34、若wi中非零分量的个数等于s,获取所述非零分量在wi中的维度,以及所述非零分量的值。
步骤s35、若wi中非零分量的个数不等于s,判断wi中非零分量的个数是否大于s,若是,执行步骤s36的操作,若否,执行步骤s37的操作。
步骤s36、若wi中非零分量的个数大于s,根据预设的第一调整幅度扩大
其中,预设的第一调整幅度可以为1.5,这种情况下,扩大后的
步骤s37、若wi中非零分量的个数小于s,根据预设的第二调整幅度减小
其中,预设的第二调整幅度可以为0.9,这种情况下,减小后的
在步骤s14中,公开当需要推荐候选词时,根据所述过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,获取所需词语的目标基底向量,并通过所述目标基底向量确定所述所需词语的词向量的操作,参见图5所示的工作流程示意图,该操作包括以下步骤:
步骤s41、查找所述稀疏表示下标矩阵,获取所述稀疏表示下标矩阵中,所述所需词语对应的稀疏表示下标向量。
其中,所述稀疏表示下标向量用于指示所述所需词语的目标基底向量在所述过完备基底矩阵中的位置。
稀疏表示下标矩阵为n*s矩阵,由n个词语的稀疏表示下标向量构成,当需要获取所需词语的目标基底向量时,需要获取所需词语对应的稀疏表示下标向量。
步骤s42、查找所述稀疏表示系数矩阵,获取所述稀疏表示系数矩阵中,所述所需词语对应的稀疏表示系数向量。
其中,所述稀疏表示系数向量用于指示所述所需词语的目标基底向量对应的系数。
稀疏表示系数矩阵为n*s矩阵,由n个词语的稀疏表示系数向量构成,当需要获取所需词语的目标基底向量时,需要获取所需词语对应的稀疏表示系数向量。
步骤s43、根据所述稀疏表示下标向量查找所述过完备基底矩阵,获取所述所需词语的目标基底向量。
例如,若所需词语的稀疏表示下标向量为(2,5),则过完备基底矩阵中的第二行和第五行的向量为所需词语的目标基底向量。
步骤s44、根据所述目标基底向量,以及所述目标基底向量对应的系数,进行加权组合,计算所述所需词语的词向量。
例如,若所需词语对应的稀疏表示系数向量为(0.3,0.6),则表明在对所需词语的两个目标基底向量进行加权组合时,两个目标基底向量的系数分别为0.3和0.6。据此,通过加权组合,即可得到所需词语的词向量。
在获取所需词语的词向量之后,将所需词语的词向量输入至神经网络模型,该神经网络模型即可输出相应的候选词。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
本发明实施例公开一种基于循环神经网络的输入装置。参见图6所示的结构示意图,所述基于循环神经网络的输入装置包括:第一矩阵获取模块100、第二矩阵获取模块200、第三矩阵获取模块300和候选词获取模块400。
其中,所述第一矩阵获取模块100,用于获取词向量矩阵,其中,所述词向量矩阵为n*e矩阵,n为词语数量,e为每个词语的词向量维度。
所述第二矩阵获取模块200,用于获取所述词向量矩阵中b个词语的词向量,根据所述b个词语的词向量构建过完备基底矩阵,其中,所述过完备基底矩阵为b*e矩阵,所述过完备基底矩阵中的每个基底向量表示所述b个词语对应的一个词向量,b为小于n的正整数。
其中,b为小于n的正整数,以避免过完备基底矩阵容量过大。并且,通常b大于e,也就是说,在过完备基底矩阵中包含b个词语对应的基底向量,过完备基底矩阵中基底向量的数量b的具体数值通常大于词向量维度,以保障过完备基底矩阵中包含足够数量的基底向量,满足后续的输入需求。
在实际应用过程中,通常设置b的数值数量为e的数值数量的4至5倍。例如,若词向量矩阵的大小是20000*400,即词向量维度e为400,可确定b的值为2000,则过完备基底矩阵的大小为2000*400。
当然,b还可以设置为其他数值,本发明实施例对此不做限定。
所述第三矩阵获取模块300,用于根据每个词语的词向量以及所述过完备基底矩阵,构建稀疏表示下标矩阵和稀疏表示系数矩阵,其中,所述稀疏表示下标矩阵和所述稀疏表示系数矩阵均为n*s矩阵,s为预设的稀疏效果参数。
s的具体数值为预设的正整数,例如,s可以为10,这种情况下,若词向量矩阵的大小是20000*400,则稀疏表示下标矩阵和稀疏表示系数矩阵的大小均为20000*10。当然,s也可以为其他数值,本发明实施例对此不做限定。
其中,每个词语的目标基底向量用于组合成所述词语的词向量;所述稀疏表示下标矩阵包含的下标向量表示若组成所述词语的词向量,所需的目标基底向量在所述过完备基底矩阵中的位置;所述稀疏表示系数矩阵包含的系数向量表示若组成所述词语的词向量,所需的目标基底向量对应的系数。
在本发明实施例中,认为对过完备基底矩阵中的s个基底向量进行加权组合,即可获取一个词语的词向量,这s个基底向量即为该词语的目标基底向量。也就是说,每个词语的目标基底向量用于组合成所述词语的词向量。
由于对每个词语,均可通过该词语对应的目标基底向量进行加权组合,得到该词语的词向量,因此,总共需要记录n*s个下标,记录的n*s个下标即为稀疏表示下标矩阵。另外,总共需要记录n*s个系数,记录的n*s个系数即为稀疏表示系数矩阵。
所述候选词获取模块400,用于当需要推荐候选词时,根据所述过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,获取所需词语的目标基底向量,并通过所述目标基底向量确定所述所需词语的词向量,根据所需词语的词向量和循环神经网络模型获取候选词。
其中,每个词语的目标基底向量用于组合成所述词语的词向量;所述稀疏表示下标矩阵包含的下标向量表示若组成所述词语的词向量,所需的目标基底向量在所述过完备基底矩阵中的位置;所述稀疏表示系数矩阵包含的系数向量表示若组成所述词语的词向量,所需的目标基底向量对应的系数。
当需要推荐候选词时,通过过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,能够确定所需词语的目标基底向量以及各个目标基底向量对应的系数,进行加权组合,得到所需词语的词向量。然后根据所需词语的词向量和循环神经网络获取候选词,具体的,将所需词语的词向量输入值循环神经网络模型,该循环神经网络模型即可输出候选词,从而满足向用户推荐候选词的需求。
通过本发明实施例公开的方案,将词向量矩阵分解成过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,通过过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵,能够获取各个词语的词向量。而过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵的容量之和小于词向量矩阵,因此相对于现有技术,本发明实施例公开的方法能够占用的终端设备的空间较小,且计算量较小,从而减少对终端设备的存储能力和运量能力的需求,能够在多种终端设备(如手机)中应用。
进一步的,本发明实施例中,由于过完备基底矩阵、稀疏表示下标矩阵和稀疏表示系数矩阵的容量较小,减少了终端设备应用程序的安装包体积,从而便于在应用商店分发和下载,便于推广应用。并且,由于该方案中计算量较小,从而能够提高计算效率,用于在采用本发明实施例公开的方案进行文本输入时,会减少程序响应时间,减少终端设备的卡顿感,提高用户的使用体验。
进一步的,在本发明实施例公开的基于循环神经网络的输入装置中,所述第二矩阵获取模块包括:
词语排序单元,用于按照词频为所述词语进行排序;
词语选择单元,用于根据排序结果,选择词频最高的b个词语;
词向量获取单元,用于通过查询所述词向量矩阵,获取所述b个词语的词向量。
通过上述各个单元,按照词频为各个词语排序,根据排序结果选择词频最高的b个词语,然后根据词向量矩阵获取这b个词语的词向量,以通过词频最高的b个词语的词向量构建过完备基底矩阵,从而能够提高获取候选词的准确性。
在本发明实施例公开的基于循环神经网络的输入装置中,所述第三矩阵获取模块包括:
回归问题创建单元,用于设定其中一个词语的词向量为xi,所述过完备基底矩阵为b,创建以下lasso回归问题:
其中,
回归问题求解单元,用于求解所述lasso回归问题,获取当wi中非零分量的个数为s时,所述非零分量在wi中的维度,以及所述非零分量的值;
向量确定单元,用于根据所述非零分量在wi中的维度,确定所述词语对应的稀疏表示下标向量,以及根据所述非零分量的值,确定所述词语对应的稀疏表示系数向量;
矩阵构建单元,用于根据每个词语对应的稀疏表示下标向量,构建相应的稀疏表示下标矩阵,并根据每个词语对应的稀疏表示系数向量,构建相应的稀疏表示系数矩阵。
在本发明实施例中,当wi中非零分量的个数为s时,非零分量在wi中的维度即可指示该词语对应的稀疏表示下标向量,非零分量的值即可指示该词语对应的稀疏表示系数向量。
例如,若预设的稀疏效果参数s=2,b=5,词语数量n=10000,这种情况下,wi的维度为5。通过求解lasso回归问题,当wi中非零分量的个数为s个(即2个)时,获取到的wi为(0,0.3,0,0,0.6),其中非零分量分别为第2维和第5维,则该词语对应的稀疏表示下标向量为(2,5)。另外,非零分量的值分别为0.3和0.6,则稀疏表示系数向量为(0.3,0.6)。
由于对词向量矩阵中的每个词向量,均可构建一个s维的稀疏表示下标向量和一个s维的稀疏表示稀疏向量,因此,一共能够构建n个s维的稀疏表示下标向量和n个s维的稀疏表示系数向量,这n个s维的稀疏表示下标向量即可构成稀疏表示下标矩阵,n个s维的稀疏表示系数向量即可构成稀疏表示系数矩阵,从而获取n*s的稀疏表示下标矩阵,以及获取n*s的稀疏表示系数矩阵。
在本发明实施例公开的基于循环神经网络的输入装置中,所述回归问题求解单元包括:初始数值确定子单元、回归问题计算子单元、非零分量子单元和数值调整子单元;
所述初始数值确定子单元,用于确定
所述回归问题计算子单元,用于将
所述非零分量子单元,用于获取wi中非零分量的个数,判断wi中非零分量的个数是否等于s,若等于,获取所述非零分量在wi中的维度,以及所述非零分量的值,若不等于,触发所述数值调整子单元执行相应的操作;
所述数值调整子单元,用于若wi中非零分量的个数大于s,根据预设的第一调整幅度扩大
其中,预设的第一调整幅度可以为1.5,这种情况下,扩大后的
进一步的,在本发明实施例公开的基于循环神经网络的输入装置中,所述候选词获取模块包括:
第一查找单元,用于查找所述稀疏表示下标矩阵,获取所述稀疏表示下标矩阵中,所述所需词语对应的稀疏表示下标向量,其中,所述稀疏表示下标向量用于指示所述所需词语的目标基底向量在所述过完备基底矩阵中的位置;
第二查找单元,用于查找所述稀疏表示系数矩阵,获取所述稀疏表示系数矩阵中,所需词语对应的稀疏表示系数向量,其中,所述稀疏表示系数向量用于指示所述所需词语的目标基底向量对应的系数;
目标基底向量获取单元,用于根据所述稀疏表示下标向量查找所述过完备基底矩阵,获取所述所需词语的目标基底向量;
加权组合单元,用于根据所述目标基底向量,以及所述目标基底向量对应的系数,进行加权组合,计算所述所需词语的词向量。
在获取所需词语的词向量之后,将所需词语的词向量输入至神经网络模型,该神经网络模型即可输出相应的候选词。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于……实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。