Online Learning中的优化器 今天详细看了下推荐广告系统的online_learning,顾名思义,online_learning就是在线输入样本,更新模型,尽可能做到分钟级/小时级的模型更新,其实关键就是几个问题: 模型怎么学习? 怎么降低模型复杂度,保证inference的低延时? 参考博文 : FTRL 不太简短之介绍 模型怎么学习?这个其实很简单,其实要求我们可以基于在线输入的样本,进行权重参数更新,基于类似随机梯 2022-08-10 搜推广
浅谈FM和FFM 梳理一下FM和FFMFM: 参数复杂度:O(n*k) 计算复杂度:O(n^2 k),但可以通过目标函数转换变为O(n k) FFM: 参数复杂度:O(nkF) 计算复杂度:O(n^2 k),无法简化。*注意:每个特征都有自己所在的域,特征1和特征2交叉时,特征1的域向量选择特征2所在域F2,特征2的域向量选择特征1所在域F1。其实FFM就是把一个one-hot 变量中FM对应的向 2022-08-10 搜推广
计算广告基础概念 广告类型 原生广告 原生广告在视觉形式上与广告投放到的应用内容界面相契合,可为用户带来浑然一体的体验。这种类型的广告就是原生广告。(这个就是不容易让人发现它是一个广告) 搜索广告 搜索广告是以上下文查询词为粒度进行受众定向,并按照竞价方式售卖和CPC(即“按点击收费”)结算的广告产品。例如大家在百度上面搜索python,就会搜索出一堆培训机构放在前面,这就是搜索广告。 信息流广告 信息流 2022-08-10 搜推广
理解召回和LTR 参考文章:万变不离其宗:用统一框架理解向量化召回 召回本质召回本质上和排序其实存在很大的区别: 召回模型特征是解耦的,排序模型的特征是交叉的,这个是性能上的考虑。 召回是样本的艺术,排序是特征的艺术。召回的负样本如果用的是曝光未点击,和排序类似的话,就有问题,这样召回的训练和预估的数据分布不一致了。因此召回的负样本是随机采样。 召回的几种类型 i2i:拿用户喜欢的item找相似item。就比如 2022-08-10 搜推广
Attention和Transformer 一、背景Attention是目前最热的深度学习方向,最开始从NLP领域的机器翻译方向发源,到如今百花齐放到各个领域,包括推荐搜索,计算广告等等,万物皆可embedding,万物皆可attention,因为attention的本质就是为了更好的做embedding。 本篇文章按照attention发展的顺序来阐述: Seq2Seq模型 Attention机制 Transformer的Self-At 2022-08-10 深度学习
类变量和实例变量 注意事项类和实例都可以访问 类变量,但是实例只能访问,无法修改,一旦修改了,则会生成一个同名的实例变量,而非本身的类变量。 12345678910class A(object): a = 1 # 类变量print(A.a) # 1t = A()print(t.a) # 1, 访问的是类变量t.a = 4 # 生成一个实例变量,而非修改类变量print(t.a) # 4print(A 2021-06-25 编程开发 > Python
C++虚函数和Java类比 小结: 在C++中,多态是靠虚函数实现的,因为如果是普通函数,调用的方法是根据当前指针类型来判断的,而不是根据指针所指向对象的类型,JAVA则是根据实际对象分配的,所以JAVA的普通函数就类似C++的虚函数。 所以C++如果一个类是基类,它的析构函数一定是虚函数。 C++的纯虚函数就类似JAVA的抽象函数,也就是只有函数定义。 C++的抽象类就是JAVA的抽象类,也就是有至少有一个纯虚函数/抽 2021-05-31 编程开发 > C++
理解blade 今天在研究一个大型c++工程如何做单元测试,这个工程是用blade进行构建的,之前不是特别懂blade,看了网上的相关博客以及github的wiki,大致明白了blade原理,确实相比makefile而言,blade构建是更加方便简洁的。 参考相关博客:blade学习 , blade git wiki ,blade cc wiki 具体不解释了,主要记录几个关键点: cc_library就是要打 2021-02-03 编程开发 > C++
系统管理工具Systemd 以前linux用的是initd工具来管理系统,后来渐渐被systemd取代了。具体可看这篇博客,介绍得非常详细。 注意以下几点: systemd是可以直接与系统内核交互的,比如关机,关电源,停止cpu计算等。 unit是一个资源的概念,不仅仅包含service,还有很多其他的比如挂载,硬件设备等资源。 target是一个unit组的概念,相当于以前的run_level。比如poweroff,re 2021-01-20 操作系统 > Linux
内积、叉积和外积 内积首先介绍点积(dot product),点积是一种接受两个等长的数字序列(通常是坐标向量)、返回单个数字的代数运算。 而内积(inner product)就是两个笛卡尔坐标向量的点积。 符号:$a \cdot b $ 叉积叉积(cross product),又称向量积(vector product)。 外积首先介绍张量积(tensor product),记为$\otimes$,可以应用于不同 2021-01-08 数学