AI源码解读:卷积神经网络(CNN)深度学习案例:Python版
上QQ阅读APP看书,第一时间看更新

1.3.2 模型设计

获得数据集并进行预处理之后,进行神经网络的构建和设计,包括定义嵌入矩阵、构建全连接层和损失函数。

1.定义嵌入矩阵

神经网络的起点是嵌入层,包括用户特征和电影特征。其中,对于用户特征,只需将预处理后的数据作为嵌入矩阵的索引即可。电影特征需要分类讨论,然后多个矩阵相加求和,因为一部电影可能有多种类型特征,对电影名称的分析则需要用到文本卷积网络。

文本卷积网络的第一层是词嵌入层,由每一个单词的嵌入向量组成嵌入矩阵。第二层是使用多个不同窗口大小的卷积核在嵌入矩阵上做卷积(窗口大小是指每次卷积覆盖几个单词)运算,文本卷积要覆盖整个单词的嵌入向量。第三层网络通过最大池化得到一个长向量,最后使用Dropout进行正则化,得到电影名称的特征。

2.构建全连接层

从嵌入层索引出特征后,将各特征传入全连接层,将得到的输出结果再次传入全连接层,最终得到用户特征和电影特征向量。

3.损失函数

直接将用户特征和电影特征进行矩阵乘法运算得到预测评分,再用MSE算法将预测评分与真实评分进行回归运算得到损失函数。