常见CTR论文挑刺

 本文主要介绍了对一些常见的CTR论文中的“诡异“之处的思考和总结,欢迎同学们共同交流讨论

文章来源:Typhoon https://zhuanlan.zhihu.com/p/77118891

本文仅供学术交流,如有侵权,请后台联系小编进行删除。

作为推荐的从业者,阅读ctr相关的论文应该是一项非常基本的技能,但阅读论文的过程中,难免遇到一些让笔者觉得很“诡异”的地方,这里笔者把一些自以为论文中有问题的地方po出来,供自己记录和思考。

但笔者毕竟才疏学浅,如有理解错作者本意的地方,还请各位看官指出,促进笔者进步。

  • Wide & Deep Learning for Recommender Systems

这个是笔者见过的最棒的一篇文章,是一篇出自engineer的非常非常简单、务实的文章,而且,这种joint training的思路,也可以同时用于后面的deepfm等模型。

刺点1:文中的例子,deep部分的特征由于less granular,并不是never or rarely occurred in the past。笔者认为,less granular的特征,由于出现频率比较高,充当着某种carbon(bias) feature的作用(即他们的作用对于减小log loss来说是雪中送炭),记忆类的特征由于出现频率比较低,充当着flower feature的作用(即他们作用是锦上添花)。

原文中对于generalization的描述

常见CTR论文挑刺_第1张图片

原文中对于generalization举的一个例子,但显然这个例子中,这些特征会更宽泛一些,出现频率也更高点。

常见CTR论文挑刺_第2张图片
  • DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

这是一篇来自老东家兄弟实验室的论文,是一篇有非常明显huawei style的文章,但刺点也是笔者认为比较多的一篇文章。

刺点1:对于FNN缺点的描述

虽然FNN依赖FM做的pretrain,但embedding index到latent vector的方式,是可以通过学习自动调节的。所以,从最原始数据到FM结果的过程中,信息显然是有损的,如果这种embedding方式是固定的,则FNN的capability被FM limit我觉得也还算合理,但这里FNN只是做初始化,所以笔者觉得,FNN的capability并没有被FM limit。

刺点2:关于Wide and Deep和高低阶维特征交叉的相关描述

首先,文章的作者应该是觉得,wide部分是用来学low-ordr特征交叉,deep部分用来学high- order特征交叉,但我的问题其实很简单,DNN在我看来就是个黑盒子,so,deep部分到底是在学low-order特征交叉,还是high- order特征交叉,还是both?

还有就是,W&D文章中,并未提及这种high-order和low-order的相关问题。

刺点3:轻视特征工程

不说了,title是工程师的,都知道理解特征和业务有多重要。

刺点4:没有一个结合业务的评价指标(有待商榷)

文中对比DeepFM和其他模型时,并由贴合业务说明提升,只是对比了在不同数据集(criteo、自家公司数据)在auc和logloss上的区别,但作为一名奋战在一线的业务boy,算法能带来最终指标的提升才是最重要的,点电商的某些推荐场景,可能就是gmv,但这里文章并没有贴合业务去说明带来的真实提升是多少。不过笔者作为菊厂中央研究院的一名无名小卒,深知信息安全对于菊厂的意义,所以就这个问题也不想过多纠结。

这里在多扯两句,其实,笔者对文章中提及的算法带来的一丁点提升,有很大业务价值这件事,是非常不赞同的。业务价值,取决场景的一些定位啊之类的,以笔者在某电商公司的推荐经验来说(场景uv>2000W),算法即使能带来5个点的提升(其实很高了),产生的业务价值也非常有限。(哎,打个工真难)

常见CTR论文挑刺_第3张图片
  • Deep Interest Network for Click-Through Rate Prediction

这个是笔者看过的,仅次于W&D的文章,(笔者不太喜欢Jack Ma,所以这篇文章只能区居第二)也是出自工程师之手,一篇非常务实的文章。

刺点1:gAUC留了一个大坑

这里笔者主要对文章中的AUC计算方法提出一点质疑,按照文章中的计算方法,相当于每个user计算一个AUC。一般来说,ctr、cvr的数据中,有点击、有成交的user是很少的,大部分user还是没有正样本的,然后这部分user贡献的AUC都是0.5;换句话说,大部分的样本都被这个metric丢弃了。

常见CTR论文挑刺_第4张图片

刺点2:序列特征那里留了一个大坑

作为一个看过LR模型的特征和对应weight的人,笔者一直认为特征分为carbon feature和flower featrue,而这种行为序列是非常显然的flower featrue。

如果笔者哪天去搞din,应该会搞很多序列特征(including and not restricted to文章里提及的item_id),还有就是会控制每个序列特征的序列长度,作为一个电商用户,笔者会把这个长度设置为一个不大的数(20以内)。

to be continued。

  • XGBoost: A Scalable Tree Boosting System

首先,这是一篇非常非常非常非常非常棒的文章,笔者这里只是纯粹吃饱了撑的挑别人的刺

刺点1:二阶展开后过于结合tree解释xgb的详细生成过程,而非简述xgb的思想

笔者觉得,xgb每一棵在生成的过程中,可以认为是用一棵regularized regression tree对weighted neg gradient做weighted regression。

而gbdt是用regression tree,对neg gradient做regression。

而这篇文章过于执着地介绍每个split point下,在当前tree结构下,在regularization constraint下,如何计算每个leaf的score,即如何去构造每棵tree。笔者觉得,这样做,反而容易让读者陷进细节,而丧失了对整体算法思想的把控。

常见CTR论文挑刺_第5张图片

刺点2:没强调cost function的二阶倒数h大于0

天奇大佬在某一个tutorial pdf中提及了cost function的二阶倒数要大于0的,但文章并未提及这一点。

  • Practical Lessons from Predicting Clicks on Ads at Facebook

圣经,没找到可以挑刺的地方。

  • Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate

同样是出自工程师的一篇非常扎实的文章,主要的吐槽点在于,整体的loss这里应该是要对两个子任务的loss调下权重的,但文章并未提及这一点(估计是故意的),如果两个loss的权重都是1,不难推测出:

对一个3.5% ctr,2% cvr的场景来说,ctr累加项贡献的logloss一般略低于-(0.035 * np.log(0.035) + 0.965 * np.log(0.965)) = 0.152,而ctcvr累加项贡献的logloss一般略低于-(0.0007 * np.log(0.0007) + 0.9993 * np.log(0.9993)) = 0.006,也就是说只要上面的累加学好了,下面的ctcvr任务里的cvr模型只要输出一个static cvr就行了,此时这个任务的目的退化为一个单纯的ctr模型

常见CTR论文挑刺_第6张图片

这了补充说几句,笔者认为一个扎实的推荐系统,一定要基于行为,从各个方面去挖掘用户对商品的兴趣,因此背后应该是有不同的模型打出不同的分,这些分通过合理的方式融合在一起。电商中国经常是训练一个ctr模型,一个cvr模型,而不是直接训练一个ctcvr模型(看起来好像也没毛病),一个原因是,ctcvr模型没有利用用户的“点击”这种行为,二是数据过于稀疏。

  • Neural Collaborative Filtering

看名字就知道模型是怎么样的论文吧。

  • Click-through Prediction for Advertising in Twitter Timeline

同样是一篇工程师写的,比较扎实的文章,其实作者看这篇文章是为了学习pairwise training在实际中是怎么做的。

刺点1:关于样本少任务重要性的描述

但作者认为,如果pairwise的样本数量过少,模型会更容易在这部分上狂降loss,而忽略了在classification上的表现,即,这个任务会biased towards minimizing rank loss,恰好跟文章中作者的意见相反。

常见CTR论文挑刺_第7张图片

其他1:关于NRIG

太棒了!终于有人跟我一样去重视这个relative information gain了,作为一个打过kaggl的人,对logloss这个东西太敏感了。

对于一个正样本占10%的training set来说,考虑到模型是沿着优化logloss的方向在前进,因此,一个naive model便是,不论是X长啥样的,y_hat输出均为0.1,此时的logloss即是模型的baseline,然后训练越充分的模型,输出的score区分度越大,logloss越低。

  • Conversion Rate Prediction via Post-Click Behaviour Modeling

同样是笔者比较欣赏的一篇文章,而且,属于那种,一看就知道,作者很懂业务的那种文章,在周会上,其实笔者跟同事说了很多次,收藏这种行为很重要,但似乎没人重视这个问题,这里阿里的同行们,就拿收藏开刀。

喜欢的话点个在看吧????

你可能感兴趣的:(常见CTR论文挑刺)