模型设计介绍
根据第一章中对建模思路的分析,神经网络模型的设计包含如下步骤:
- 分别将用户、电影的多个特征数据转换成特征向量。
- 对这些特征向量,使用全连接层或者卷积层进一步提取特征。
- 将用户、电影多个数据的特征向量融合成一个向量表示,方便进行相似度计算。
依据这个思路,我们设计一个简单的电影推荐神经网络模型:
图1:网络结构的设计
该网络结构包含如下内容:
-
- 用户特征包含四个属性信息,分别是用户ID、性别、职业和年龄。
- 电影特征包含三个属性信息,分别是电影ID、电影类型和电影名称。
提取用户特征。使用Embedding层将用户ID映射为向量表示,输入全连接层,并对其他三个属性也做类似的处理。然后将四个属性的特征分别全连接并相加。
得到用户和电影的向量表示后,计算二者的余弦相似度。最后,用该相似度和用户真实评分的均方差作为该回归模型的损失函数。
- 如何将“数字”转变成“向量”?
如NLP章节的介绍,使用词嵌入(Embedding)的方式可将数字转变成向量。
- 如何合并多个向量的信息?例如:如何将用户四个特征(ID、性别、年龄、职业)的向量合并成一个向量?
最简单的方式是先将不同特征向量(ID 32维、性别 16维、年龄 16维、职业 16维)通过4个全连接层映射到4个等长的向量(200维度),再将4个等长的向量按位相加即可得到1个包含全部信息的向量。
电影类型的特征是多个数字转变成的多个向量(6个),也可以通过该方式合并成1个向量。
- 如何处理文本信息?
如NLP章节的介绍,使用卷积神经网络(CNN)和长短记忆神经网络(LSTM)处理文本信息会有较好的效果。因为电影标题是相对简单的短文本,所以我们使用卷积网络结构来处理电影标题。
第一章的设计思想结合上面几个细节方案,即可得出上图展示的网络结构。