论文阅读——推荐系统之通过双向自编码器的表示学习模型

1,论文相关信息

PaperRepresentation learning via Dual-Autoencoder for recommendation

JournalNeural Networks

Year2017

2,研究动机

深度学习在图片和文本领域的隐特征表示方面已经取得了很大的成功,之前一般通过直接的矩阵分解来获得用户和商品的隐特征表示,以及过多的关注如社交关系和位置等辅助信息,可能没有充分利用用户商品评分矩阵信息,本文为了充分利用用户商品评分矩阵信息以及学习较好的隐特征表示,提出了一种新的表示学习框架ReDa

3,研究方法

  • 通过自编码器同时学习用户和商品的隐特征表示,利用学习到的隐特征表示来最小化训练数据的误差。
  • 学习商品隐特征表示:把商品作为输入序列,把用户作为商品的特征,通过编码与解码操作得到商品的隐特征表示。
  • 学习用户隐特征表示:把用户作为输入序列,把商品作为用户的特征,通过编码与解码操作得到用户的隐特征表示。

最终目标函数:


模型图例:


4,数据集

公开:MovieLens 100MovieLens 1M

非公开:Douban Book Douban Movie

5,评价指标





### 双向 Transformer 模型架构概述 双向Transformer模型,特别是像BERT这样的预训练语言模型,在处理自然语言任务方面表现出显著优势。不同于单向Transformer仅能从前向后或者从后向前单一方向捕捉序列信息,双向Transformer能够同时利用前后的上下文信息来构建更丰富的表示[^1]。 #### BERT结构特点 - **输入层设计**:为了实现双向编码,输入被精心构造为三个部分的组合——词嵌入(Token Embeddings)、位置嵌入(Position Embeddings)以及分段嵌入(Segment Embeddings),这使得模型可以理解句子内部单词的位置关系及其所属的不同语句片段。 - **多头自注意力机制**:该特性允许网络在同一时间关注到不同长度范围内的依赖关系,并且对于每一个token来说都是并行计算其与其他所有tokens之间的关联权重,从而实现了真正意义上的“双向”。 - **隐藏层堆叠**:通常由多个相同的子层组成,每一层都包含了残差连接(Residual Connections)和Layer Normalization操作以促进深层神经网络的有效训练。 ```python import torch.nn as nn class BidirectionalTransformer(nn.Module): def __init__(self, vocab_size, hidden_dim, num_layers, n_heads): super(BidirectionalTransformer, self).__init__() self.embedding = nn.Embedding(vocab_size, hidden_dim) encoder_layer = nn.TransformerEncoderLayer(hidden_dim, n_heads) self.transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers) def forward(self, src): embedded_src = self.embedding(src) output = self.transformer_encoder(embedded_src) return output ``` 上述代码展示了如何定义一个简单的双向Transformer模块,其中`nn.TransformerEncoder`用于创建一个多层的Transformer编码器栈,而`nn.Embedding`则负责将输入转化为密集向量形式以便后续处理。 #### 关于可视化资源 虽然具体的图形展示未在此处提供,但读者可以通过查阅官方文档或学术论文获取更多详细的图表说明。例如,在原始BERT论文中就提供了清晰易懂的架构图解,有助于直观了解整个系统的运作原理。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值