作者回复: 这个思路我之前还没想到,但感觉应该是work的,可以尝试。 经典的做法是在生成共现矩阵的时候对用户的评分进行用户级别的校正或者归一化,用当前得分减去用户平均得分作为共现矩阵里面的值。
作者回复: 正常的技术迭代。五年前的推荐系统,矩阵分解是很主流的技术方案。但是矩阵分解没法引入除用户行为外的其他特征,深度学习出来之后就逐渐被取代了。
作者回复: 这是一个非常好的业界问题。我之前也是做计算广告的,确实有过类似的经历。我感觉从数据上说,第二个原因的可能性非常大,你其实可以分析一下原始的数据,是不是说点击人群的范围确实比较小。 至于解决方法我建议从特征设计的角度入手,看看能不能加入一些能增强模型泛化能力的特征,比如大家都有的一些人口属性特征,广告的分类结构特征之类的,希望能把特定人群的一些行为泛化出去。
作者回复: SVD一般不用在工业级应用上,因为在求解大规模稀疏矩阵时复杂度过高。
作者回复: 其实没有什么magic,工作中常用的就是负样本欠采样,和正样本过采样,或者增大正样本学习的权重。 还有一种方法叫SMOTE,可以搜一下,大致意思是通过合成的方式过采样正样本。可以尝试但有一定风险。
作者回复: 说的非常好,推荐参考。
作者回复: MF没法做增量更新,新数据来了之后,共现矩阵都变了,整个求解的目标都变了,只能全量更新。
作者回复: 非常好,就是经典的做法了
作者回复: 隐式行为正反馈取值1,负反馈取值0或-1,默认取0。比如点击取1,曝光无点击取0或-1,无交互取0。
作者回复: 人口属性特征就是性别年龄、常驻城市、手机型号等呗; 是的 广告的分类结构特征又是什么意思呢?将广告的标签打成泛泛的类别吗? 广告一般都有分类体系对吧,行业->细分行业之类,可以把用户点击、购买过的广告标签放到特征工程中。 把特定人群的一些行为泛化出去的意思是让每个广告>0.5的人群覆盖度更广,差别度更大吗? 是的。