美文网首页
论文代码解读——SRGNN(Session-based Reco

论文代码解读——SRGNN(Session-based Reco

作者: 请不要问我是谁 | 来源:发表于2019-06-18 19:35 被阅读0次

    整体模型

    数据处理

    示例数据集:



    主要有session_id,item_id,time
    程序处理完数据后格式:
    train.txt
    [[session_id序列],[序列下一个session_id...]]



    比如:
    一个session_id中,根据时间顺序,用户点击了商品,1,2,3,4,5

    就有序列([[1,2,3,4],[1,2,3],[1,2],[1]],[5,4,3,2])
    test.txt
    格式与train.txt相同
    all_train_seq.txt
    保存所有的session序列,只保存最长的那个

    训练获得各个商品节点的embedding


    获得最长的序列长度,对所有序列做补零操作



    生成批数据
    slices为序号,对最后一个序列做矫正



    生成论文中的As矩阵


    主要运用的即是GRU网络
    输出得到各个item的embedding,shape为[self.batch_size, -1, self.out_size]
    self.embedding是所有物品的向量,输出的只有batch_size中的物品向量

    Sessing Embeddings构建


    主要是一个Attention的使用



    hybrid是进行拼接


    训练

    最后loss为两个loss相加
    logits为n_node的数值大小,tar为真实数值,即真实下一个数
    tf.nn.sparse_softmax_cross_entropy_with_logits()
    传入的logits为神经网络输出层的输出,shape为[batch_size,num_classes],传入的label为一个一维的vector,长度等于batch_size,每一个值的取值区间必须是[0,num_classes),其实每一个值就是代表了batch中对应样本的类别。函数会进行softmax与one-hot操作。



    测试为取出数值最大的前20.


    总结

    论文主要通过session_id、时间顺序来构建图谱,对图谱item进行embedding,随着迭代次数的增多,物品embedding表达会越来越好。通过item的embedding构建session的embedding,用到了Attention与拼接。模型最终是一次性预测后一个物品的概率。

    相关文章

      网友评论

          本文标题:论文代码解读——SRGNN(Session-based Reco

          本文链接:https://www.haomeiwen.com/subject/imuqqctx.html