目录
一.本周任务
- 对推荐系统攻击有一个大致的了解
- 运行出代码
二.已完成的任务
1.有关推荐系统
- Item-Based Collaborative Filtering (Item):计算物体之间的相似度,旨在
找到用户喜欢的那些。 - Latent Factor Model (LFM):构建潜在空间以连接用户偏好
和物品属性。 - Neural Collaborative Filtering (NCF):将深度学习技术与协同过滤相结合,以提高推荐性能。
2.推荐系统的攻击
2.1 step1:Labeled Data Generation
M
p
×
q
f
≈
M
q
×
l
i
t
e
m
⋅
M
l
×
p
u
s
e
r
T
\mathbf{M}^f_{p\times q} \approx \mathbf{M}^{item}_{q\times l}\cdot \mathbf{M}^{user \mathrm{T}}_{l\times p}
Mp×qf≈Mq×litem⋅Ml×puserT
将用户-物品矩阵分解为物品矩阵和用户矩阵,分别代表了物品的性质和用户的偏好,其中物品矩阵的每一行代表了一个物品的特征向量。根据分解的内容训练出一个简单的推荐系统模型,这个简单的推荐系统模型模仿了被攻击的推荐系统模型,用简单的推荐系统模型产生标签数据属于用于训练攻击模型。
2.2 step2: Attack Model Establishment
用两层的多层感知机搭建攻击模型,用于判断某用户是否为会员或者非会员。
2.3 step3:Parameter Optimization
利用交叉熵来最优化参数
3.可能存在的错误
根据描述
所得的表述大致变现为:
M
p
×
q
f
≈
M
q
×
l
i
t
e
m
⋅
M
l
×
p
u
s
e
r
T
\mathbf{M}^f_{p\times q} \approx \mathbf{M}^{item}_{q\times l}\cdot \mathbf{M}^{user \mathrm{T}}_{l\times p}
Mp×qf≈Mq×litem⋅Ml×puserT,约等式右边的矩阵大小与左边并不相等。
三.未完成的任务
1.代码运行
1.按照文档要求配置python=3.6 tensorflow=1.15的环境运行,发现错误
可能原因:tensorflow的1.15版本自带的estimator是2.5版本,版本不兼容的问题
解决办法:卸载2.5版本,下载1.15版本:pip install tensorflow-estimator==1.15.0;
2.若采取pip uninstall tensorflow-estimator会使得所有的有关tensorflow的东西全部删除掉
解决办法:直接下载tensorflow-estimator=1.15,让新下载的覆盖2.5版本;
3.程序能运行一部分,但是还是有报错,无法继续执行下去
四.下周计划
- 运行出代码;
- 进一步理解推荐系统的攻击。