(十九)从零开始学人工智能-智能推荐系统:深度学习家族

推荐系统系列之三:深度学习家族

1. MLP

来源出处:

  • He, Xiangnan, et al. “Neural collaborative filtering.” Proceedings of the 26th international conference on world wide web. 2017.

目标函数:
L = − ∑ ( u , i ) ∈ O l o g y ^ u , i − ∑ ( u , j ) ∈ O − l o g ( 1 − y ^ u , j ) L=-\sum_{ ( u,i )\in \mathbf{O}}{log\widehat{y}_{u,i}} -\sum_{ ( u,j )\in \mathbf{O^-}}{log (1- \widehat{y}_{u,j} )} L=(u,i)Ology u,i(u,j)Olog(1y u,j)

= − ∑ ( u , i ) ∈ O ∪ O − y u , i l o g y ^ u , i + ( 1 − y u , i ) l o g ( 1 − y ^ u , i ) =-\sum_{(u,i)\in \mathbf{O}\cup\mathbf{O^-}}y_{u,i}log\widehat{y}_{u,i}+(1-y_{u,i})log (1- \widehat{y}_{u,i} ) =(u,i)OOyu,ilogy u,i+(1yu,i)log(1y u,i)

其中, O \mathbf{O} O 表示用户 u u u 和商品 $i $ 之间有交互记录的集合,其中 y u , i = 1 y_{u,i}=1 yu,i=1 O − \mathbf{O^-} O 表示用户 u u u 和商品 $j $ 之间没有交互记录的集合,其中 y u , j = 0 y_{u,j}=0 yu,j=0

说明介绍:

采用神经网络的方法,用交叉熵损失函数对隐式数据进行建模。

在这里插入图片描述

核心代码:

def inference(self, users_inputs, items_inputs):
        embed_users = tf.nn.embedding_lookup(
            self.weights['embedding_users'], users_inputs)
        embed_items = tf.nn.embedding_lookup(
            self.weights['embedding_items'],items_inputs)
        layer0 = tf.nn.relu(tf.matmul(tf.concat([embed_items,embed_users],1), 
                      self.weights['weight_0']) + self.weights['bias_0'])
        layer1 = tf.nn.relu(
            tf.matmul(layer0, self.weights['weight_1']) + self.weights['bias_1'])       
        y_ = tf.matmul(layer1,self.weights['weight_n']) + self.weights['bias_n']
        return y_ 

实验结果:

  • 原论文中的实验处理

数据集:Movielens100K,留一评估(leave-one-out)

HR@10 NDCG@10
0.7411 0.4791
  • 传统随机分割

数据集:Movielens100K,随机分割成训练集:测试集 = 8:2

MAE RMSE Precision@10 Recall@10 (HR@10) NDCG@10
0.7359 0.9275 0.0628 0.0296 0.0130

loss 和 RMSE 的收敛曲线如下图所示:

在这里插入图片描述

在这里插入图片描述

数据集随机分割这个实验中,本人怎么调参都无法将排序指标(Recall 和 NDCG)提升太多,始终在0.1之下。若谁调出个好结果,望留言告知,谢谢!

对比

  • 矩阵分解 MF 实验结果
MAE RMSE Recall@10 (HR@10) Precision@10
0.7279 0.9229 0.0271 0.0575

在关键参数相同的情况下,对比 MF,可以看出其实 MLP 的实验并没提升多少。我想,这也许是原论文作者采用隐式数据加采样训练和留一评估的原因的吧。

2. LSTM

来源出处:

  • Wu, Chao-Yuan, et al. “Recurrent recommender networks.” Proceedings of the tenth ACM international conference on web search and data mining. 2017.

目标函数:
L = ∑ ( i , j , t ) ∈ O ( r i j ∣ t − r ^ i j ∣ t ( θ ) ) 2 + R ( θ ) L=\sum_{(i,j,t)\in \mathbf{O}}\left(r_{ij|t}-\widehat{r}_{ij|t}\left( \theta \right) \right)^2 + R\left( \theta \right) L=(i,j,t)O

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值