推荐与广告可以说是很多互联网公司的两个重要业务,其中推荐是为了 DAU 的增长,或者说流量的增长,而广告则是利用这些流量进行变现。两者的要解决的问题也很相似,都是在每条流量到来的时候,要从一个庞大的候选集中选出 topk 个候选返回,基本都采用 召回 + 精排 的架构,中间还可能插入粗排,本质上都是在效果与工程之间做 trade-off。

如果说两者技术上最大的 diff,笔者认为是出价,因为在广告场景中引入了广告主 (advertiser) 这一角色,因此我们除了考虑用户体验,还需要满足金主爸爸们的诉求(如跑量、成本等),才能带来持续的收入增长,而金主爸爸们表达其诉求的最直接的手段就是出价,其含义就是愿意为每个 click / convert 付出多少钱 (truthful telling)。这带出来的就是 bidding 这一研究领域,关于这个领域在 rtb-papers 中有很多相关的 paper。

本文主要讲的是 2019 KDD 阿里的 Bid Optimization by Multivariable Control in Display Advertising,这篇 paper 解决了出价的两个的核心问题:出价公式和调价策略,从最优的出价公式的推导到出价控制器的构建,文章的总体的建模思路非常值得学习,整个推导的 paradigm 能够推广到更一般的出价场景, 实践性也较强,推荐读原文。

阅读全文 »

本文是 程序的表示、转换与链接 中第 7 周的内容,主要介绍了 C 语言程序中过程调用、也就是函数调用对应的机器级表示, 包括如何传递参数,如何将控制转移到被调用过程, 寄存器使用约定,递归函数的实现等等。 通过了解这些内容,能够更清楚机器执行的详细过程,同时也能更清楚函数调用过程中栈空间是如何变化的;课程选用的指令系统是前面介绍过的 IA-32 指令系统。

阅读全文 »

Real-time Personalization using Embeddings for Search Ranking at Airbnb is KDD 2018’s best paper. Reading through it, at first glance it seems to just apply word2vec to generate user and item embeddings. But reading more carefully, there are many details worth examining. This style is similar to YouTube’s 2016 paper Deep Neural Networks for YouTube Recommendations. Both are very practical papers worth reading. The two articles represent two major approaches for generating embeddings in deep learning: unsupervised and supervised. This article mainly describes Airbnb’s approach and key details.

阅读全文 »

Real-time Personalization using Embeddings for Search Ranking at Airbnb 是 KDD 2018 的 best paper, 整篇文章读下来,初看好像只是套了 word2vec 来生成 user embedding 和 item embedding;但是细读下来,会发现其中有不少细节值得考究,这种风格跟 youtube 在 2016 年发表的那篇 Deep Neural Networks for YouTube Recommendations 很像,两篇都是实践性很强的 paper,非常值得看。而且两篇文章分别代表着 deep learning 中生成 embedding 的两大流派:无监督和有监督。本文主要讲的是 Airbnb 的这篇 paper 的基本做法和一些细节。

阅读全文 »

本文的内容主要是 程序的表示、转换与链接 这门课第二周的内容,主要介绍了浮点数和整数在机器内如何编码和存储 (大端和小端) 的,了解这些细节后,能够更好地理解代码中进行数值计算和比较时出现的违反直觉的结果,同时也能避免出现这样的问题。

阅读全文 »

一直对以 C / C++ 为代表的的编译型语言的编译、运行的原理了解不多,最近正好看到这本由国人写的书 链接、装载与库,书名已经比较言简意赅的介绍了书里相关内容,而且写得挺通俗的,值得一看。这里是书里第一、二部分内容的一些笔记,主要讲了操作系统的一些基本概念,编译生成的目标文件格式和静态链接的过程;由于笔者只摘录一些不太了解的内容,因此总体内容可能不是非常成体系,建议读原书。

阅读全文 »

最近在 coursera 上发现一门不错的课程,程序的表示、转换与链接,内容是类似《深入理解计算机系统》这本书的,说来惭愧,虽然在上学时零星上过一些相关的课程,但是却没有系统地将这些内容串起来理解。本着算法工程师首先得是个工程的原则,觉得还是有必要去了解一下这块内容; 而且课程内容讲得挺通俗的,值得一听。

本文的内容主要是 week1 的内容,较为宏观地介绍了如何从冯・诺依曼体系结构演进至现代计算机结构、程序执行的基本原理、微体系结构与指令集 (ISA) 等。由于课程 PPT 说得已经较为清晰了,这里大部分内容会直接截图(懒得再打字也是一个原因。。。)

阅读全文 »

In computational advertising, conversions are delayed—users may convert some time after clicking, and deeper conversion funnels tend to have longer delays. When training CVR/deep-CVR models, two situations arise: (1) sending samples to the model too early, treating events that will eventually convert but haven’t yet as negative examples, causing model underestimation; (2) sending samples to the model too late, waiting for all samples to complete a sufficient time window, preventing timely model updates.

Therefore, modeling the conversion feedback delay is necessary. This paper “Modeling Delayed Feedback in Display Advertising” from Criteo provides a solution. The main idea: for samples where conversion hasn’t been observed yet, don’t treat them directly as negative samples, but instead give the model different gradient magnitudes based on how long since the click occurred. The paper validates this method’s effectiveness on Criteo’s real data. Additionally, the modeling approach from problem formulation to solution is worth studying.

阅读全文 »
0%