《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 神经网络关联存储器的设计及应用
神经网络关联存储器的设计及应用
2019年电子技术应用第11期
万迪凯,丰大军
华北计算机系统工程研究所,北京100083
摘要: 神经网络的存储能力一直是一个重大的缺陷,其存储主要体现在权重系数上,因此参数量一多,训练起来就十分困难。给神经网络设计一个外部关联存储器,能有效对神经网络的输入进行关联查询,并将查询的结果作为辅助输入传入到神经网络中去。此外,设计了自然语言语句的向量嵌入模型,并将模型和关联存储器集合起来形成一个自动关联语句语义向量的关联存储系统,其性能指标达到了设计要求。
中图分类号: TP183
文献标识码: A
DOI:10.16157/j.issn.0258-7998.190355
中文引用格式: 万迪凯,丰大军. 神经网络关联存储器的设计及应用[J].电子技术应用,2019,45(11):10-12,16.
英文引用格式: Wan Dikai,Feng Dajun. The design and application of neural network associative memory system[J]. Application of Electronic Technique,2019,45(11):10-12,16.
The design and application of neural network associative memory system
Wan Dikai,Feng Dajun
National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: The storage capacity of neural networks has always been a major flaw. Its storage is mainly reflected in the weight coefficient. Therefore, it is very difficult to train a neural network with a large amount of parameters. This paper intends to design an external associative memory for the neural network, which can effectively serve the neural network. The input is associated with the query and the result of the query is passed to the neural network as an auxiliary input. In addition, this paper designs a vector embedding model of natural language sentences, and assembles the model and associated memory to form an associative storage system with automatic association statement semantic vectors. The performance indicators of this system meet the design requirements.
Key words : associative memory;seq2seq;neural network;storage

0 引言

    神经网络和深度学习的发展给语言、图像以及个性化推荐[1-2]等领域带来了突破的进展,但是神经网络的存储能力一直是一个重大的缺陷。目前的神经网络深度越来越深,参数数量也越来越多,横扫自然语言处理多项任务的BERT模型[3]的参数数量更是达到了3亿以上。如此多的参数就带来了神经网络训练上的困难。同时参数数量的增加也会带来额外的计算开销,将模型应用到小型嵌入式等计算能力低的设备中去就要减少参数数量,如对模型进行剪枝优化[4]。要达到减少参数数量的目的,可以给神经网络装配一个大容量的存储器,将一些神经网络学习过程中的知识记录下来,等需要时再进行提取,直观上可以降低神经网络需要学习的参数量。

    知识有两种,一种是触类旁通、举一反三的逻辑推理能力;一种是死记硬背的知识点。大容量的存储器用来存储这两类知识,以便在需要的时候进行存储。然而知识点之间并不是孤立存在的,它们是联系着的,回想下人类思考的过程,在思考一个问题时往往会把相关的问题以及相关的方法都联想起来。为了模拟人类的这一能力,就需要存储器具有关联能力,即逻辑上这些被存储的东西之间构成一张立体的网络图,互相联系,能进行关联性存储。当一个输入到达时,此时如若能将相关的知识提取出来作为当前输入的辅助输入,则可以增强当前神经网络的能力。本文旨在设计一个适合于神经网络使用的大容量的关联存储系统,并通过设计神经网络将自然语言语句向量嵌入后加以关联存储进行实际应用。

1 总体设计

    设计整体分为关联存储器的设计和自然语言语句向量嵌入两部分。关联存储器主要用来存储经过向量表示后的语句的语义,并能进行动态更新和关联性查询。自然语言语句向量嵌入主要负责把语句进行有意义的向量化,其通过训练一个seq2seq的神经网络模型来达到此目的,系统的总体架构图如图1所示。

rngz1-t1.gif

    关联存储器持久化采用的数据库是REmote DIctionary Server(Redis)数据库。Redis是一个开源的、使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值可以是字符串、哈希、列表、集合和有序集合等类型。

2 关联存储器的设计

    神经网络的向量一般维度都较高,且需要存储的向量个数通常较多,采用通常的存储方式,每进行一次相关性查询,需要两两比较,所需要的时间复杂度为O(N2),其中N为存储的向量的个数。要想在神经网络的海量数据训练过程中使用关联存储器,这样的时间复杂度是无法接受的。为了解决这个问题,有两种方法可供选择,一种是LSH(局部敏感性哈希)[5],另一种是Hopfield神经网络[6]

2.1 局部敏感性哈希

    局部敏感性哈希的提出用以解决在大量向量中找到相似的向量而不用两两比较。局部敏感性哈希将两个原本相似的长向量经过哈希后,其哈希向量仍然保持相似性,其原本用在比较文本之间的相似性上,不同的相似性度量对应不同的哈希函数,但并不是所有的相似性度量都有对应的哈希函数。哈希函数族的原始定义如下:

    从S空间变换到U空间的函数族H如果满足以下两个条件:

    (1)如果p∈B(q,r1),那么P(h(q)=h(p))≥p1

    (2)如果prngz1-2.1-x1.gifB(q,r2),那么P(h(q)=h(p))≤p2

则称函数族H是(r1,r2,p1,p2)敏感的,其中B(q,r1)代表与q距离小于r1的点集合,P函数代表概率,h是从H中任选的哈希函数。

    也就是说,如果两个点p、q足够接近,那么它们哈希之后的值也大概率一样;如果两个点p、q相距较远,那么它们哈希之后的值就大概率不一样。

    有了敏感性哈希函数后,通过与或操作可以控制两个向量被映射到同一个哈希桶中的概率。

    通过局部敏感性哈希可以将原来需要O(N2)复杂度的查询操作减少到O(N)。

2.2 Hopfield神经网络

    Hopfield神经网络通过引入物理学中的能量函数的概念旨在构建一个联想的记忆系统,其基本结构如图2所示。

rngz1-t2.gif

rngz1-gs1.gif

其中,Vi、Vj分别为神经元i、j的输出。

    给定所有的神经元一个初始的值,该神经网络最终会达到能量局部最低的状态,整个网络就像一个动力系统,倾向于保持能量处于一个较小的状态,就像物理学中水往低处走的现象。能量的局部极小值可能有很多个,给定神经元以不同的初始值能量可能会收敛到不同的局部最小值。给极小值附近的点施加一个轻微的扰动,它还是会回到极小值点,由于该神经网络的这个特点,可以把它用在联想记忆上。联想记忆系统存储着一系列记忆向量的集合。只要给联想记忆网络一个相关的记忆向量,它就能正确恢复出原来存储的记忆向量,例如联想记忆系统存储着一句话,可能只需要几个词语就能联想起整句话。

    要让上述网络存储不同的记忆向量,就要让这些需要记忆的向量都变成能量方程的局部最小值点。因此需要寻找一种方法可以让任意点都成为局部极小值点。此外学习规则还需要满足以下两条性质:

    (1)局部性,即某个权重的更新要只依赖与它相邻的两个神经元;

    (2)能增量学习,即记忆某个新模式(向量)不必依赖原来的向量,权重的更新只依赖于它的旧值和新的要记忆的模式。

    Hebbian学习规则如下:

    当神经元输出0/1时,有:

     rngz1-gs2-3.gif

其中,s代表迭代步。这个学习规则的意思是同时激发的两个神经元倾向于形成强的连接关系。

    虽然Hopfield神经网络提供了模拟人类记忆的模型,但是其存储效率较为低下,N个神经元的完全图大概能存储0.15N个记忆向量,总共存储了0.15N2 bit的数据。而构建一个这样的神经网络需要的存储量为N(N-1)个权重向量,设每个权重的值范围为[-M,M],则需要N(N-1)log(2M+1)位来存储这些权重。因此,本文选取了局部敏感性哈希作为关联存储器的实现。

3 自然语言语句向量嵌入

    为了将语句存储进关联存储器中去,首先要将文字表达的语句转换为向量,为此本文设计神经网络模型,将语句嵌入为向量。

3.1 模型结构

    模型的基础结构为seq2seq模型[7],如图3所示,分为编码器和解码器,编码器将向量编码为语义向量,将生成的语义向量输入解码器解码为所需要得到的输出语句。现在常用的seq2seq结构的编码器和解码器一般由堆叠的LSTM或GRU组成,并且带有attention和beam search,目的并不是为了得到更高的精确度,而是为了获取更加精确的中间向量表示。由于LSTM会生成状态向量c和隐藏层输出h,这两者均输入到解码器,如果是堆叠的多层LSTM,那么就会有多个这样的(c,h)组。由于无法判断使用那个可以较好地代表中间语义向量,因此编码器和解码器只是采用单层的简单的RNN,这样编码器就只生成一个单一的状态向量传递到解码器,通过语料训练后可以得到有意义的语句向量表示。本文采用Cornell Movie-Dialogs Corpus[8]当作训练语料库进行训练,该语料库包含从原始电影脚本中提取的大量元数据丰富的虚构对话集合,该语料集共囊括617部电影,电影人物角色数量达到9 035个,共有10 292对电影角色之间的220 579次对话,总计304 713个对话片段。对于对话片段,相似的回答往往对应相似的提问,根据语料库构建问答对,将提问当作输入传入编码器,生成语义向量,再将该语义向量作为初始状态输入到解码器中去,解码器的目标是生成正确的回答。编码器和解码器的结构如图4所示。虽然在训练过程中分别训练了编码器和解码器,但是实际使用时只用到了训练好的编码器,编码器和解码器一起训练是为了让编码器产生的语义向量更加准确。

rngz1-t3.gif

rngz1-t4.gif

3.2 模型训练

    本次训练采用单个NVIDIA Tesla P100 GPU,使用TensorFlow开源库作为基本框架进行模型搭建。损失函数采用交叉熵损失函数,优化器选用Adam优化器,共计训练30轮,18 720批次,学习率为0.002。训练过程中的损失函数的下降曲线如图5所示。

rngz1-t5.gif

4 结束语

    本文主要介绍适用于神经网络的关联存储器的设计,并设计实验对实际的语句进行向量嵌入并存储到关联存储器中,其性能指标达到了设计要求。

参考文献

[1] 徐中辉,吕维帅.基于卷积神经网络的图像着色[J].电子技术应用,2018,44(10):19-22.

[2] 字云飞,李业丽,孙华艳. 基于深度神经网络的个性化推荐系统研究[J].电子技术应用,2019,45(1):14-18,22.

[3] DEVLIN J,CHANG M W,LEE K,et al.Bert:Pre-training of deep bidirectional transformers for language understanding[J].arXiv Preprint arXiv:1810.04805,2018.

[4] 马治楠,韩云杰,彭琳钰,等.基于深层卷积神经网络的剪枝优化[J].电子技术应用,2018,44(12):119-112,126.

[5] DATAR M,IMMORLICA N,INDYK P,et al.Locality-sen-sitive hashing scheme based on p-stable distributions[C].Proceedings of the Twentieth Annual Symposium on Computational Geometry.ACM,2004:253-262.

[6] HOPFIELD J J.Neural networks and physical systems with emergent collective computational abilities[J].Proceedings of the National Academy of Sciences,1982,79(8):2554-2558.

[7] SUTSKEVER I,VINYALS O,LE Q V.Sequence to sequence learning with neural networks[C].Advances in Neural Information Processing Systems,2014:3104-3112.

[8] DANESCU-NICULESCU-MIZIL C,LEE L.Chameleons in imagined conversations:a new approach to understanding coordination of linguistic style in dialogs[C].Proceedings of the 2nd Workshop on Cognitive Modeling and Computational Linguistics. Association for Computational Linguistics,2011:76-87.



作者信息:

万迪凯,丰大军

(华北计算机系统工程研究所,北京100083)

此内容为AET网站原创,未经授权禁止转载。