1. 在每个epoch跑之前,用np.random.shuffle(train_data)来随机打乱数据。能将performance从52%提高到68%。非常有效。
2.multi-modality特征融合激活函数不要是relu function.准确率auc 测试持续为0.5
3. sigmoid计算速度非常之慢,收敛速度也非常之慢。到网上查阅资料发现,有以下缺点:
1)not zero-centered; 2) gradient vanishing; 3) exponential computation not efficient. (https://zhuanlan.zhihu.com/p/25110450, https://blog.csdn.net/edogawachia/article/details/80043673,
https://blog.csdn.net/qq_23304241/article/details/80300149)
可以替代的activation func (tanh, relu, leakyReLU, EReLU)
4. 在只是加入周围entity 特征时leakyrelu比tanh有效,尤其在高维度时。
5. 在有序列长度(batchsize*seq_length, dim)先concat再用不同filter size处理效果很好。远好于平均处理。
6. visual(f_v), textual (f_t). 将f_v送入embs_visual,将f_t送入embs_textual
f_concat = [f_v*embs_visual + f_t * embs_textual]
f_concat*embs_concat + bias_concat--->降至与self.user_embedding一样的维度。
sigmoid改为leakyrelu提高很多
7. 按照6)方法,act换成sigmoid,DKN的act换成sigmoid,结果一直调不上去。
8.在写ratings_final_word_entity_list.txt时,由于当时只在一个gpu,另一个没跑,中午花了几个小时的东西瞬间完成!!!…^-^
9. 用text+entity+KG做实验,activation function影响不大,无和leakyrelu差别不大。
网友评论