原文链接
这两篇文章可以连着看,而且这两篇文章都较为简单,如果读过APR[1],就可以发现ACAE只不过是在神经网络的hidden layer加上了扰动,而FG-ACAE则是在ACAE上更加细粒度的扰动(用系数控制各层扰动的大小)。
Motivation
在这篇文章之前的工作要么在输入上加入随机扰动,如CDAE[2]利用自编码器在被破坏的(加入高斯噪声)的数据上进行学习;要么在latent vector上加入对抗扰动,如AMF[1]。
contributions
- 其在CDAE的基础上,对自编码器的每一层加入对抗扰动进行对抗训练,称为ACAE模型。
- 在ACAE的基础上对每一层的对抗扰动赋予加入权重来控制每一层扰动的大小,同时加入noise mixing layer来concate扰动向量。
模型结构
该模型为FG-ACAE,其与ACAE的区别主要是加入了系数
α
\alpha
α且加入了 Noise Concatenation,详细可以参考ACAE的原文。
根据模型可以看到,其在每一个部分都加上了扰动,且利用系数 α \alpha α来细粒度控制扰动的大小,并且加入了Noise Concatenation来连接扰动向量,这里原文也没有解释为什么要这么做,可能是提升性能的一个trick。
对于每一个扰动,其目标则是最大化加入扰动后的损失:
根据FGSM的思想近似求解扰动:
因此,优化的目标函数则为:
最后模型学习的过程如下算法:
EXPERIMENTS
数据集
其中测试集的采样方式采用NCF[3]的方式,具体来说则是有时间戳的数据集选取最后一个交互作为每一个用户交互的测试正例,没有时间戳的则随机挑选一个作为每一个用户交互的测试正例,然而对每一个用户没有交互过的item随机取200个作为负例。测试时则对包括正例的200个例子进行top-k排序,然后根据正例是否在top-k中评测HR和NDCG。
结果
这里想要记录一下什么时Paired t-test(配对t检测),总结来说就是检验两个模型之间性能是否相同的一个假设检验,可以参考 Paired t-test
总结与思考
总结来说,这两篇文章都较为简单,无非就是在神经网络的每一层都加上扰动,通过模型的训练来调整不同扰动的权重。这篇文章有一个问题就是他没有解释其中的Noise Mixing层的作用,没有分析其对于性能的影响,而且这篇文章是对于hidden layer连接了几个神经元作为扰动,再经过一个全连接层映射到K维,那为什么不直接扩展中间hidden layer的维度,或者扩充hidden layer的层数?我姑且认为这是个trick。
其次,这里讲系数作为超参进行手工调整,是否可以通过学习来调整对每个部分添加扰动的权重。
参考文献
[1] He, X., et al. (2018). Adversarial personalized ranking for recommendation. The 41st International ACM SIGIR conference on research & development in information retrieval.
[2] Wu, Y., DuBois, C., Zheng, A. X., & Ester, M. (2016, February). Collaborative denoising auto-encoders for top-n recommender systems. In Proceedings of the ninth ACM international conference on web search and data mining (pp. 153-162).
[3] He, X., et al. (2017). Neural collaborative filtering. Proceedings of the 26th international conference on world wide web.