APP下载

融合上下文信息的个性化序列推荐深度学习模型

2021-05-24孙淑娟钱梦薇

小型微型计算机系统 2021年6期
关键词:卷积向量函数

孙淑娟,过 弋,2,3,钱梦薇

1(华东理工大学 信息科学与工程学院,上海 200237)2(大数据流通与交易技术国家工程实验室 商业智能与可视化研究中心,上海 200237)3(上海大数据与互联网受众工程技术研究中心,上海 200072)

E-mail:guoyi@ecust.edu.cn

1 引 言

在电商行业中,为特定用户推荐其偏好的物品以及解决用户决策困难的问题一直是一个热门而且重要的话题.在许多现实世界的购物场景中,用户未来的购买意愿很大程度上受历史行为序列的影响.例如,购买了手机之后,可能会购买相关配件,诸如手机壳或者手机贴膜等物品.如果体验较好,可能还会购买该商品的周边衍生产品,例如同款服装或者纪念品.目前,该领域传统的算法模型主要是根据用户提供的反馈信息进行用户偏好预测[1].随着深度学习技术在自然语言处理、数据挖掘、目标检测、阅读理解等多个人工智能领域取得的显著进展,科研人员也开始在推荐算法领域利用深度学习(DL,Deep Learning)技术进行不断的深入研究和探索[2].基于深度学习的推荐模型,其核心思想是将用户、项目交互特征映射至多维空间中,然后通过多层感知机网络去学习特征之间的相关性,最后通过该模型为用户提供最佳决策.深度学习推荐模型的发展大致可以分为3个时期,如表1所示.

表1 深度学习推荐模型的3个发展时期Table 1 Development based on deep learning recommendation model

1)发展初期.其主要特点是依赖于人工特征工程,模型简单、参数空间较小、性能高.主要算法以多层感知机(MLP)为和深度协同过滤为基础,利用深度学习技术在复杂用户交互空间中训练出有效的用户特征向量表示.但由于在实际购物场景中用户和商品量级较大经过独热编码之后,存在一定程度的数据稀疏等问题.

2)加速发展时期.该阶段主要算法有FM(Factorization Machine)、FFM(Field-aware Factorization Machines)、GBDT+LR等.FM是一种基于矩阵分解的推荐算法,通过考虑用户和项目之间的相互关系[3],解决了one-hot编码带来的特征空间较大和大规模稀疏矩阵中特征组合的问题,而且该模型可以在稀疏的数据中进行合理的参数估计,时间复杂度低,优化效果好.FFM是Yu-Chin Juan等在FM的基础上提出的引入类别(field)概念后的升级版本[4],同样解决了one-hot编码带来的数据稀疏问题,该模型与FM的不足之处都在于不能进行高阶的特征组合.GBDT+LR(Gradient Boost Decision Tree + Logistic Regression)是由GBDT来对训练集提取特征作为新的训练输入数据[5],LR作为新输入数据的分类器,该模型优势在于方便处理离散化特征,并且模型简单,容易实现分布式计算.缺点也很明显,特征之间进行特征交互(例:衣服款式和性别或者年龄交叉),需要大量人工特征工程.

3)深入研究时期.在加速发展时期模型的基础之上进行模型组合同时与深度学习技术相结合,对项目的特征表示从独热编码处理向嵌入低维稠密向量空间发展[6],通过融合多维度特征进行模型训练,进而挖掘上下文信息与目标之间的联系.其中一类是基于FM或DNN(Deep Neural Networks)进行组合的模型[7],NFM[8](Neural Factorization Machine)、AFM[9](Attention Factorization Machine)、Deep Crossing[10]等;此外,随着深度学习推荐算法研究的不断深入,科研人员开始探索将自然语言处理中的句子序列的处理方法应用到推荐算法研究中,如word2vec、GRU[11](Gate Recurrent Unit)、BERT[12](Bidirectional Encoder Representation from Transformers)、Transformer等.基于Word2Vec模型Barkan等人提出Item2vec[13],将用户购买序列中的商品类比NLP中语言处理方式嵌入到低维稠密向量,把物品视为单词,行为序列视为集合,很好的表示了序列中物品之间的关系,提高了模型的泛化能力,但忽略了用户商品交互之间的上下文信息.目前,有关序列推荐的模型有较为成熟的MC(Markov Chains),经典的TransFM[14](Translation-based Factorization Machines for Sequential Recommendation)和基于BERT的BERT4Rec[15]等,都是通过对序列中物品之间的关系进行建模.大量文献表明,基于行为序列的推荐模型能够很好的捕捉到序列中行为之间的依赖关系,抽取用户兴趣变化特点的强特征向量表示.

尽管以上深度学习推荐算法的研究已经取得了显著的进展,但在实际电商购物中仍存在一定程度的问题.例如,用户可能在某一段时间内收藏化妆品,而在另一段时间开始对衣服感兴趣,而现有模型较少考虑这种用户兴趣随时间变化呈现多样性的特点;大多数模型只关注了行为序列对结果的影响,忽略了序列中不同行为之间的兴趣强度[16].而在实际购物场景中,用户的兴趣是动态变化的,并且近期和长期的行为对用户最终的购物目的影响程度也是不同的.综上所述,可以看出,建立融合上下文信息的序列模型来模拟用户的兴趣变化路径的多样性特点,帮助用户在面对海量商品时快速决策.

本文贡献:

1)提出用户兴趣衰减因子decay_factor,有效反映用户行为之间的依赖关系,模拟用户兴趣路径随时间动态变化的特点;

2)将用户行为序列按照行为习惯划分为长期和短期会话序列形式,利用文本卷积分类(TextCNN)模型自动获取行为序列特征深层次表示,更细粒度的挖掘用户潜在兴趣特征向量表示;

3)提出融合上下信息的序列模型,基于多头注意力机制抽取长短期行为序列特征向量的潜在表示,位置向量和并行化计算有效增强序列之间的依赖性和提升模型的性能.

2 相关研究基础

2.1 TextCNN模型

文本卷积分类(TextCNN)是Yoon Kim等提出的将卷积神经网络CNN应用到文本处理的算法[17].与传统的图像识别领域的CNN网络相比,TextCNN模型结构简单,参数量小,在网络结构上只通过一层卷积和一层池化层输出向量拼接,通过softmax函数激活,从而能够更好地捕捉局部相关性.在本文中,使用用户行为序列预训练好的嵌入向量输入到TextCNN模型中捕捉序列的局部特征,自动进行特征筛选获得不同抽象层次的序列行为潜在向量表征[18].

2.1.1 卷积层

卷积层是TextCNN模型的核心组成,具有局部感知和参数共享的特点,是由一组可学习的卷积单元(kernels)组成.自然语言处理中,嵌入向量矩阵的每一行表示句子中每个单词的信息.由于句子中相邻词之间的相关性普遍很高,使用TextCNN进行卷积操作时,不仅关注了句子本身的词义信息,还考虑了词序之间关系及其上下文信息.

在本文中,将用户历史行为序列行为类比为自然语言中每个句子中词与词之间的关系,使用TextCNN对序列嵌入之后的特征向量进行卷积操作,不仅能够关注行为序列本身的信息,还可以考虑到序列之间的依赖关系和行为的上下文信息.卷积操作的输入是序列经过嵌入层后得到矩阵A∈m×n,A[i:j]表示A的第i到第j行,卷积操作过程如公式(1)~公式(3)所示.

xi:i+h-1=w·A[i:i+h-1]

(1)

ci=f(w·xi:i+h-1+b)

(2)

c=[c1,c2,…,cn-h+1]

(3)

其中c∈n-h+1表示特征图(feature-map),b∈为偏置项,f为激活函数,常用的有softmax、sigmoid、tanh和relu等.

2.1.2 池化层

2.1.3 全连接层

全连接层(fully connected layers,FC)是在整个卷积神经网络传播过程中起到对样本分类的作用.对于经过卷积层、池化层和激活函数层的特征向量隐层表示空间映射到样本标记空间(分类空间).其本质就是特征从一个向量表示空间线性映射到另一个向量表示空间.

2.2 Transformer

Transformer是由是由Ashish Vaswan等人在2017年提出的一个基于多头注意力机制(Multi-Head Attention)的模型结构来处理序列模型相关问题.其结构由编码和解码两部分组成:编码器有6个相同的层堆叠而成,每一层有两个子层,一层是多头注意力机制,另一层是简单的全连接层前馈神经网络,然后又接入残差连接网络并进行层标准化操作;解码器和编码器结构类似,只不过在两个子层结构之上又添加了编码-解码注意力层.总的来说,其优势可以归结为:1)位置向量和并行化计算有效增强序列之间的依赖性和提升模型的性能;2)计算两个位置之间的依赖关系所需计算次数不随距离变长而增长.

2.2.1 多头注意力(Multi-Head Attention)

Multi-Head Attention是Transformer中编码器和解码器的重要组成部分.其结构如图1所示,从图中结构可以看出,对于初始的Q,K和V向量矩阵,首先分别经过线性变换Linear映射到另一个特征表示空间,然后做h次缩放点积操作.与注意力机制不同的是Multi-Head Attention采用自注意力机制(Scaled Dot-Product Attention),在注意力机制的基础之上添加了缩放点积操作,从两方面提高了注意力层的性能:一方面增强了模型专注于不同位置编码的能力;另一方面自注意力可以提取序列之间自身的依赖关系,帮助编码器在对每个行为进行编码时关注与之相邻的行为信息.

图1 多头注意力机制Fig.1 Multi-head attention structure

2.2.2 位置向量

由于模型中没有任何循环或者卷积操作,不能学习序列中的位置顺序信息.也就是说,如果将序列中每个行为之间的关系打乱不影响Attention的计算结果.为了保持序列中的顺序信息,需要将序列中每一项进行位置编号,然后每个编号位置对应一个向量,通过对位置向量和序列嵌入向量进行拼接或者相同维度向量加和的方式得到新的含有位置信息的行为序列特征表达,这样Transformer层就可以分辨出序列中不同位置的行为信息.可以看出,这种方式的优势在于不管句子中当前的词和其它词的空间距离有多远,对于结果相关性的影响都是相同的.另外,Transformer在计算过程中不仅用到前面的词向量信息还考虑到后面的词信息,并且位置向量和并行化计算有效增强序列之间的依赖性和提升模型的性能.

综上所述,鉴于TextCNN模型参数量小,训练速度快并且可以学习深层次特征表示的特点和Transformer可以并行化计算的优良性能,本文尝试将TextCNN应用于用户序列的特征提取和使用Transformer学习序列之间的位置关系,得到序列特征的潜在向量表示用于之后的推荐任务.

3 序列推荐深度学习模型(DeepSeq)建立

融合上下文信息序列的深度学习推荐模型DeepSeq结构如图2所示.该模型包括4部分:1)输入层;用户历史行为长、短期序列元组嵌入到低维稠密向量空间,行为序列是由用户历史长期和短期的会话组成序列元组并且设计兴趣衰减因子decay_factor表示用户兴趣强度随时间变化情况,长期会话基于用户在最近一个月内的购物情况分析,短期的会话聚合用户在过去的30min内的操作情况和行为类型;2)TextCNN层;自动获取得到用户长期和短期行为序列特征深层次表示;3)Transfomer层;基于多头注意力机制和位置编码抽取用户长、短期行为序列的轨迹向量,位置编码和多头注意力机制不仅降低序列位置对结果相关性的影响,还可以提高模型的计算性能;4)全连接层;是由用户项目辅助信息交叉特征向量和行为序列特征向量拼接输入到深层神经网络.用户项目辅助交叉信息包括用户的年龄和性别的交叉(如年轻女性用户喜欢化妆品款式新颖的衣服)、年龄和职业交叉、用户类型和物品的使用周期交叉等;最终通过MLP预测用户偏好的商品.

图2 模型结构图Fig.2 DeepSeq model structure

3.1 融合上下文信息构造行为会话序列

会话(session-based)是服务端用来记录识别用户的一种机制,可以创建session来跟踪用户的点击、浏览等情况,构造出一组具有时序关系的购物记录长、短期行为序列.融合上下文信息的用户长、短期行为序列构造过程图3所示.

图3 序列构造过程Fig.3 Sequence construction process

首先,对原始的用户行为记录进行数据预处理,清洗惰性用户和爬虫用户;然后,一方面根据采样区间提取出用户行为序列,基于会话划分规则将原始序列分为长期行为和短期行为;另一方面,在预处理后的数据中提取用户、物品的上下文信息,融合到用户长、短期行为序列当中.本文中,把用户行为e按时间戳timestamp顺序构成用户历史行为交互序列S,如式(4)~式(6)所示.

Sshort={e1,e2,e3,…,ei}

(4)

Slong={ei+1,ei+2,ei+3,…,ej}

(5)

S={Sshort,Slong}

(6)

其中,Sshort表示短期兴趣Slong表示长期兴趣,行为信息e由公式(7)所示.

{e=(item,action,timestamp,context)}

(7)

其中item表示物品信息,如项目 ID 及其相关属性,action表示用户行为类型信息,timestamp表示行为发生的时间,decay_factor为兴趣衰减因子,context为行为发生时所处的情境信息,包括时间、地点、心情,以及商品生命周期,物品相对于用户生命周期,评分信息,兴趣衰减因子等.反映用户兴趣随时间动态变化特点的兴趣衰减因子decay_factor可由公式(8)所示.

(8)

其中,ti指当前交互时间,tj之前交互时间,时间差值越大表明该用户对该商品的兴趣持续长度越久,那么兴趣程度也就越高.score表示评分信息,评分规则为:浏览(指浏览商品详情页):1分,点击:2分,购买:3分,收藏:4分,关注:5分,加购:6分,购物车删除:-1分.其中收藏、关注和加购权重分数比购买分数高是因为用户对某种商品购买之后一段时间内则对该物品保持较低的关注度;而收藏、关注、加购表示用户对该物品关注度是递增的;删除表明在该时刻用户对该物品关注度降低;frequency表示交互的频率.

3.2 TextCNN训练特征向量表示

本文特征提取部分以TextCNN为基础,将通过Embedding之后得到向量序列作为卷积模型的输入.具体的向量操作过程如图4所示.

图4 TextCNN分类模型Fig.4 TextCNN classification model

从图4可以看出,用户行为序列长度被设置为n,每个行为嵌入之后的向量维度为k,则序列中第i个行为的嵌入向量可以表示为xi∈k.那么,每个用户历史行为序列的向量表示如公式(9)所示.

x1:n=x1⊕x2⊕…⊕xn

(9)

其中,⊕为拼接运算符, 拼接之后的向量作为卷积层的输入,xi∈Rd表示序列中第i个行为对应的特征向量.文本卷积操作选取3个不同尺寸的卷积核kernel_sizes=(2,3,4),每个尺寸的卷积核分别有两个输出 channel,然后经过激活函数,得到每个特征步的向量ci如公式(10)所示.

ci=f(w·xi:i+h-1+b)

(10)

经过卷积操作之后,该行为序列可以得到当前滤波器所有的输出feature map表示hi,如公式(11)所示.

hi=[c1,c2,…,cn-h+1]

(11)

其中,向量hi为n-h+1维的向量,h表示卷积核的大小.最后经过级联池化操作,选取每个feature map的最大值表示,来捕获序列中重要的特征信息.最终的得序列特征向量表达,如公式(12)所示.

(12)

3.3 Transformer层提取兴趣潜在向量表示

(13)

(14)

(15)

(16)

(17)

(18)

上述Multi-head Self-Attention的过程不能学习行为序列的顺序信息,即如果将用户序列中的K,V值打乱,不影响最终的Attention计算结果.因此需要在序列中引入位置向量Position Embedding,如公式(19)和公式(20)所示.

PE2i(p)=sin(p/100002i/dpos)

(19)

PE2i+1(p)=cos(p/100002i/dpos)

(20)

3.4 基于多层感知机预测用户评分

X=[Xauxiliary,XP]

(21)

然后,将X输入到深层神经网络MLP中进行训练,经过多个隐藏层和激活函数得到最终的预测向量.定义隐藏层计算如公式(22)所示.

H=f(XWh+bh)

(22)

其中,f表示激活函数,X是多层感知机的输入,Wh是隐藏层的权重,H是隐藏层的输出,最终评分预测值y由公式(23)计算得到.设定合适的阈值,为用户推荐其偏好的物品.

y=HW+b

(23)

其中,W是输出层的权重,b输出层的偏置值.

4 实验与结果分析

4.1 数据集

为了验证本文提出的DeepSeq模型的推荐质量,选择了3个具有代表性的数据集,阿里巴巴Alibaba和京东JD两个真实购物场景中的数据集和一个Kaggle竞赛Avazu数据集.互联网行业,阿里巴巴和京东作为代表的大型电商购物网站,在保持高速发展和沉淀用户的同时,积累了海量的真实数据用于工业界和学术界的科研工作.对于以上的每个实验数据集都由用户的基本信息表、SKU基本信息表和用户行为表,用户订单表以及评论分数数据表以及日志等信息构成.本文实验为了减少模型的训练时间,分别从京东、淘宝和Avazu数据集中选取了9.8万、5.3万和2.6万个用户交互记录.数据集的统计情况如表2所示.

表2 3个不同数据集的统计情况Table 2 Statistics of datasets

为了构建本文融合上下文信息的行为序列,对于数据每个用户点击过的商品,按时间戳顺序构成含有T个行为信息的序列结构,用来预测第T+1次的用户行为类型.由于抽取的原始数据中存在脏数据,清洗掉该部分数据.最终构建的京东、淘宝和Avazu数据集分别保留了9.5万、5.1万和2.42万条用户行为序列数据信息.对于构建完成的每个数据集,分别选取数据集中前70%的数据用于模型的训练,后30%用于模型的测试与评估.

4.2 评价指标

评价指标采用推荐系统常用的均方根误差(RMSE)和在AUC基础上改进的针对个性化推荐的评价指标GAUC.其中RMSE 是在均方误差基础上进行开方操作,值越小表明模型的损失函数值越小,即模型效果越好;GAUC表示模型同时对正例和负例的分类能力,则值越大代表模型分类准确率越高.均方误差RMSE计算如公式(24)所示.

(24)

其中,n是测试集总记录数,y(i)是真实的用户点击情况,f(X(i))是预测的结果.GAUC计算过程如公式(25)所示.

(25)

即先计算每个用户的AUC,然后加权平均,实际运算中权重可以设置为每个用户浏览量或者点击的次数.

4.3 对比模型和实验设置

为了验证本文融合上下文信息序列推荐模型的有效性,分别设置了CCPM、AFM、PNN、DCN、AutoInt和WDL对比模型:

1)CCPM:Qiang[19]等提出的将卷积神经网络用于预测用户下一次点击行为.

2)AFM:Xiao[20]等提出的使用注意力机制来学习不同特征之间交互的重要性.

3)PNN:Qu[21]等提出基于乘法的运算来体现特征交叉的网络结构.

4)DCN:在2017年谷歌提出的自动进行特征交互的推荐预测模型,并且不需要的额外的特征工程[22].

5)AutoInt:Song[23]等人提出的以多头注意力机制为基础在将高维稀疏特征(包括连续特征和类别特征)映射到低维空间的同时建模高级特征交叉.

6)WDL:在2016年Cheng[24]等提出的将线性特征交叉工程与深度模型进行联合的推荐模型.

4.5 实验结果与分析

4.5.1 参数分析

本实验目的主要探究激活函数对深度神经网络部分的非线性影响能力,常用的激活函数有sigmoid,relu,tanh和leaky_relu.其中sigmoid和tanh函数属于饱和激活函数,relu是修正线性单元,相比relu函数,sigmoid激活函数计算量大,反向传播时容易出现梯度消失情况,而 leaky_relu的特点在于解决了relu函数进入负区间后神经元之间不学习的问题.以下参数实验均在京东数据集上进行.设置模型的学习率为0.001,丢失率为50%.激活函数分别选取sigmoid,relu,tanh和leaky_relu,测试结果如图5所示.从图5结果可以看出,激活函数leaky_relu相对于其它3个激活函数损失函数值最小,并且在较少的迭代次数下便达到收敛状态.当选取激活函数relu和tanh时,模型的损失函数值趋近一致,但都未达到leaky_relu的性能表现.因此,本文选取leaky_relu作为模型的激活函数.

图5 不同激活函数对模型结果的影响Fig.5 Effect of different activation function on model results

在确定失活率对模型结果的影响时,设置学习率为0.001,激活函数为leaky_relu.分别测试dropout值为0.5,0.6,0.7,0.8和0.9时对模型准确率的影响.测试如图6所示.由图中测试集结果可以看出,当丢失率小于0.7时,模型出现过拟合现象;当随机丢失率大于0.7时,模型出现欠拟合现象.因此在本文实验中选取随机丢失率为0.7,使模型达到最优.

图6 dropout对模型结果的影响Fig.6 Effect of different dropout on model results

在训练模型时其它超参数不同也会对实验结果产生相应的影响,但这些参数选取不是本文研究的重点,通过实验测试可知其它参数设置如表3所示.

表3 模型参数Table 3 Model parameter

4.5.2 增加项目辅助信息消融实验分析

为了验证项目辅助信息对DeepSeq模型的影响,设计增加了辅助项目信息的消融实验.辅助项目信息,包括用户年龄、性别、职业、用户等级、项目使用周期、项目类型和评论等信息,交叉信息包括年龄和性别、年龄和职业、用户类型和项目的使用周期交叉等.该实验对比了本文模型增加辅助信息后分别在京东、淘宝和avazu 3个不同数据集上的性能表现.实验结果如图7所示,其中original表示未添加辅助项目信息,auxiliary表示增加了项目辅助信息,从图7结果可以看出,增加项目辅助信息auxiliary使得DeepSeq模型在京东、淘宝和avazu 3个数据集上的GAUC值均有明显提升.

4.5.3 不同序列长度和衰减因子decay_factor对比分析

为了探究用户行为序列长度对模型结果的影响,本文在以上参数实验和项目辅助信息消融实验基础之上进一步实验.分别设计了20,30,40,50,60,5种不同长度的序列,实验结果如图8所示.图8结果显示,当序列长度为50时,模型的损失函数值最低,模型的预测效果达到最优.另外,可以看出当序列越长时,模型性能反而降低,推测可能随着序列长度的增加,序列中噪声增多,从而导致模型准确率降低.

图7 增加项目辅助信息模型结果的影响Fig.7 Effect of increase auxiliary information on model results

图8 序列长度对结果的影响Fig.8 Effect of different sequence lengths on model results

为了进一步验证衰减因子decay_factor对模型结果的影响.在以上参数实验基础之上,设计未添加兴趣衰减因子的Base模型和在序列中融合兴趣衰减因子之后的模型对比分析,通过评价指标值GAUC值反馈模型性能变化情况.实验结果如表4所示,可以看出,融合兴趣衰减因子之后,模型在3个不同数据集上分别得到了0.28%、0.46%和0.12%的提升.

表4 增加decay_factor模型性能变化Table 4 Comparison of model performance

4.5.4 模型分析

通过表3设置的预训练参数和以上优化后的参数值搭建本文的DeepSeq序列推荐深度学习模型,采用训练集对模型进行训练得到分类器,然后使用测试集对训练好的模型进行性能评估.为了进一步验证本文序列深度推荐模型相对于现有模型的有效性,分别选取了CCPM、AFM、PNN、DCN、AutoInt和WDL模型与本文提出的DeepSeq模型在3个数据集上进行对比分析,测试结果如表5所示.从表中结果可以看出,本文序列推荐模型在评价指标RMSE和GAUC在3个数据集上均得到了优化.并且,在RMSE评价指标上至少降低了0.21%,在GAUC评价指标上提升值均超过了0.59%.

表5 不同模型对比结果Table 5 Model test results

5 结 语

随着用户购物习惯呈现的兴趣多样性和动态性,现有的推荐模型已经不能满足用户的购物需求,为了解决该问题.本文建立一种融合上下文信息的个性化序列推荐深度学习模型,可以在序列中融合用户和项目的辅助信息,将位置向量和序列向量结合并行化计算有效增强序列之间的依赖性和提升模型的性能,并且能够模拟用户兴趣随时间动态变化的特点,解决传统推荐模型中存在的数据稀疏和冷启动问题,深入挖掘用户兴趣.

近年来,随着知识图谱和图神经网络嵌入技术的发展,基于知识图谱和社交网络的智能推荐算法也逐渐成为该领域研究的热点.以知识图谱和社交网络作为边信息生成推荐的价值在于一方面可以引入更多的语义关系,发现用户的深层次兴趣;另一方面通过知识图谱中不同对象之间的链接关系,有利于推荐结果的发散.利用知识图谱和社交网络丰富的信息表示与推荐系统结合将是未来该领域研究的热门方向.

猜你喜欢

卷积向量函数
基于全卷积神经网络的猪背膘厚快速准确测定
向量的分解
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
关于函数的一些补充知识
向量垂直在解析几何中的应用
高中数学中二次函数应用举隅オ
向量五种“变身” 玩转圆锥曲线
无独有偶 曲径通幽