手写一个 multi-head attention
tf.multal(tf.nn.softmax(tf.multiply(tf.multal(q,k,transpose_b=True),1/math.sqr t(float(size_per_head)))),v)
DNN 与 DeepFM 之间的区别
DNN 是 DeepFM 中的一个部分,DeepFM 多一次特征,多一个 FM 层的二次交叉特征
2.你在使用 deepFM 的时候是如何处理欠拟合和过拟合问题的
- 欠拟合:增加deep部分的层数,增加epoch的轮数,增加learningrate,减少正则 化力度
- 过拟合:在deep层直接增加dropout的率,减少epoch轮数,增加更多的数据,增 加正则化力度,shuffle 数据
deepfm 的 embedding 初始化有什么值得注意的地方吗
- 常规的是Xavier,输出和输出可以保持正态分布且方差相近: np.random.rand(layer[n-1],layer[n])*np.sqrt(1/layer[n-1])
- relu的情况下通常是HE,保证半数神经元失活的情况下对输出方差影响最小:: np.random.rand(layer[n-1],layer[n])*np.sqrt(2/layer[n-1])
- 文本项目上也可以用预训练好的特征
YoutubeNet 变长数据如何处理的
input 数据中只拿了近 20 次的点击,部分用户是没有 20 次的历史行为的,所以我们记录 了每一个用户实际点击的次数,在做 embedding 的时候,我们除以的是真实的 history length
20 次点击过去一周内的行为,曾经尝试扩大历史点击次数到 40,60 没有很明显的效果提升
- 点击行为是处理过的,停留时间过短的click不要
- 点击行为是处理过的,连续多次的重复点击会去重
- 点击行为是处理过的,session内的点击次数需要在约定范围内
YouTubeNet 如何避免百万量级的 softmax 问题的
使用负采样方法
推荐系统有哪些常见的评测指标?
按照推荐任务的不同,最常用的推荐质量度量方法可以划分为三类:
i. 对预测的评分进行评估,适用于评分预测任务。
ii. 对预测的 item 集合进行评估,适用于 Top-N 推荐任务。
iii. 按排名列表对推荐效果加权进行评估,既可以适用于评分预测任务也可以用
于 Top-N 推荐任务。
- 评分预测指标:如准确度指标:平均绝对误差(MAE)、均方误差根(RMSE)、标准 化平均误差(NMAE);以及覆盖率(Coverage)
- 集合推荐指标:如精密度(Precision)、召回(Recall)、ROC和AUC
- 排名推荐指标:如 half-life 和 discounted cumulative gain 等