本文中的问题精选自上期【你问我答】——深度学习专题中读者的提问。【你问我答】是由美团点评技术团队推出的线上问答服务,你在工作学习中遇到的各种技术问题,都可以通过我们微信公众号发问,我们5000+工程师会义务为你解答,欢迎大家踊跃提问。高质量、定义清晰的问题会优先获得解答。
Q1:您好,有一个问题想请教一下。这里有一批用户的App行为数据,但是有些存在缺失,怎样从相对完整的用户行为数据中,推断出用户缺失的那部分行为数据?思路是怎样的?
A:如果缺失的用户行为数据是数值型,可以建立预测缺失数据的模型,用已有数据训练模型,然后预测结果填充;如果不是,比如埋点统计的用户操作行为之类的,可以通过统计已有数据的分布规律,用随机函数+规则去填充。
Q2:第一,想问下特征提取以及如何删除一些无用的特征。第二,美团点评都使用了哪些推荐系统算法?
A:1. 特征提取的关键在于理解业务数据和业务逻辑,这样才能分析出哪些因素与预测目标相关,另外某些场景还需要对原始特征进行特定的数学变换才能更好地应用。特征筛选可采用的策略比较多,比如树模型、L1正则化等等,主流工具是XGBoost。
2. 美团点评的推荐系统里,召回主要是融合协同过滤、位置、搜索查询、实时用户行为等算法。排序主要采用Learning to Rank技术。
Q3:机器学习的最优新手路程是什么,有没有一套标准的书的栏目?
A:建议看李航的《统计学习方法》打好基础,配合视频coursra《Machine Learning》。喜欢看视频的同学可以看下台大林轩田的两套视频。
之后,开始找一些简单的竞赛题目(基础的点击预估)练手,推荐工具:pandas,sklearn。
Q4:机器学习模型筛选特征一般怎么做?
A:我了解到的筛选特征有两大类,第一类是用固定的评价指标衡量特征对数据的描述能力,例如使用ID3决策树对数据进行分类,就能利用IC3内部的信息增益机制知道哪些特征能够很好的区分数据(信息增益最大),然后用筛选出的特征子集放到自己的模型里训练;第二类是利用模型的反馈来筛选特征,例如向初始为空的特征子集中不断添加能够最大提高模型预测能力的特征,直到添加的特征对模型的预测能力几乎没有提升为止。同样逐步删除特征是该类方法下另一种比较常见的选择特征方式。两大类方法的区别是第一类速度快,但是缺少反馈,第二类结果比较好,但是速度太慢。
Q5:L1正则可以获得稀疏解的数学原理是什么?
A:从梯度下降方法看,由于L1范数的梯度恒定,带来的惩罚效果与位置无关,从而更容易将原损失函数惩罚到0。
Q6:文本分类有什么比较好的算法吗?性能能明显超过tfidf/word2vec + linearsvm/bayes这类传统方法的,谢谢~
A:还是强推一波textCNN,如果embedding那段训练数据量不够,可以使用word2vec代替,效果还是很不错的。
Q7:请教一下,搜索排序的样本集怎么取?我理解模型的作用是对全部返回的item进行排序,但训练的时候却只用了曝光出来的数据,已经使用了线上模型的排序结果,这样会不会造成越是线上模型认为重要的特征越会被低估重要度?召回层和排序层的区分是想解决这个问题吗?
A:一般训练是这样,但是特征提取有泛化性,所以没曝光的结果也可以被很好地学习。召回更多是希望减少精排计算量,又尽可能不损失用户感兴趣结果。
Q8:请教一下,基于wide&deep的推荐排序模型那块,训练集的特征标注是通过人工标注还是其他方式?
A:W&D推荐标注都是基于用户行为数据自动标注的。
Q9:以前做视频中的目标检测,用VIBE算法就能取得较好效果,现在都用深度学习做吗?
A:视频中的目标检测,目前深度学习方法在该领域占据统治地位,ILSVRC 2016 VID比赛的前五名都是深度学习。VIBE的实时性不错,但性能和深度学习比还是有明显差距的。
Q10:想问一下有没有人使用过FM模型来算点击率的?有没有哪些开源工程化的代码可以参考呢?
A:Kaggle上面有一些点击率的比赛,都有公开的代码,可以参考一下 Criteo Display Advertising Challenge 和 Avazu Click-Through Rate Prediction等。
关于深度学习,如果你有其它方面的疑问,可以扫下面的二维码,回复关键词“机器学习”加入我们的微信群进行提问和讨论哦~赶快拿出手机扫一下吧~