nextitnet的源码比较通俗易懂,十分有助于理解论文 idea。简单来说,输入是item 时间序列的集合(源数据的item 序列的长度是5),然后经过nextitnet_residual_block网络结构进行堆叠,网络结构的 channel是一个常量dilated_channels(100),该值同时也是item embedding 的长度。堆叠的nextitnet_residual_block网络最后一层的输出和输入的 shape 一致,都是[batch, seq_len, channel/item embedding长度],为了建立item seq和所有 item的联合概率分布,作者在nextitnet_residual_block网络的最后一层加了一个卷积层,卷积核 shape 为[1,1,dilated_channels, items_size],所以最终的输出的 shape 是[batch, seq_len, items_size](**原来我总感觉这里有点强转了,但是后来想了想,经典cnn结构不也是将三维打平然后映射到 n 个类别吗?**)。

发完牢骚再来一发代码解读吧,写博客真的一定要坚持下来啊啊!看似浪费时间,实则有益无害。最近因为科研了解了下 nextitnet网络,看论文的话有点抽象但是阅读完作者代码之后感觉还行,看一遍代码可能不够。

未完待续。