设计策略时可选的函数汇总

        抽空整理了一些工作中做策略时常用到的函数类型,并画出了各种函数的分布图,在设计策略时可根据某个数据项的期望影响值来匹配相应的函数即可。

一、对数函数

常见的几种对数函数曲线如下:

Fig1. 不同对数函数在原点附近的变化趋势
Fig2. 不同对数函数远离原点的变化趋势

由上面两图可以看出这几个函数的一些特点:

1、当x=0时,y=log(x+1)和y=x/log(x+2)都为0,y=x/log(x+1)的值为ln(10);

2、随着x的增加,y=x/log(x+1)和y=x/log(x+2)的变化趋势一致,且曲线看上去几乎为一条;

3、y=log(x+1)的曲线始终贴着x轴在延伸。当x较小时,y=log(x+1)的变化较大;当x不断增大时,函数曲线变化得越来越慢。

对数函数在工作中的常见应用:

1、比如我们希望视频的播放量达到某个阈值后,它后续是否还有增加,以及增加幅度的大小我们不再关心;但在未达到该阈值前,视频的每一次播放都会对召回或排序环节有明显的影响。这样的场景需求可以考虑对数函数来处理(如log(x+1))。

2、比如在播放量增长的前期能明确反应出用户对该视频的有兴趣,即使数量小,也希望将该兴趣放大;但随着时间的推移,播放量会不断增加,而我们并不想播放量大的视频一直霸占着头版,其他视频没有机会展露头角。这类场景下也可以用对数函数来处理(如1/(1+log(x)))。

        在具体应用中也可基于业务场景对函数的参数进行适当调整,下面可以详细看下各类函数在不同参数下的变化。

1)y=A*log(x+1)+C

Fig3. y=A*log(x+1)+C

如Fig3所示:

1、当x较小时,A可用来调节函数的凸度,A越大函数的曲线越凸;

2、当x较大时(即函数趋于稳定时),A越大,离x轴越远;

3、C可用来上下平移。

2)y=A/log(Bx+1)+C

Fig4. y=A/log(Bx+1) +C

如Fig4所示:

1、A可用来调节曲线与x轴的距离,A越大曲线离x轴越远,但与y轴的距离变化不大;

2、B可用来调节函数凹点离原点的距离,B越小,曲线离原点越远,凹度越小,且离x和y轴的距离几乎相同;B越大,曲线离原点越近,凹度越大,但曲线靠近y轴的速度要大于靠近x轴的速度;

3、C可用来上下平移。

3)y= A*x/log(Bx+1)+C

Fig5. y=A*x/log(Bx+1) +C
Fig6. y=A*(x+B)/log(x+1)

如Fig5、Fig6所示:

1、A可用来调节曲线与x轴的距离,A越大,曲线离x轴越远;x=0处;

2、B可用来调节x=0时,y值离原点的距离;B越大,x=0时的y值越大(也可以用A来调节,但A增大的同时,曲线远离x轴的增速远大于离原点的增速);

3、曲线x/log(x+1)不过原点,曲线x/log(x+2)会过原点

4、C可用来上下平移。

二、指数函数

        指数函数在策略中用的不多,但基于指数函数的变形函数却很好用,例如sigmoid函数:1/(1+e^(-x)),其在机器学习及神经网络中就有广泛的使用。

        下图是不同参数的指数函数曲线的变化趋势。

Fig7. y= A*e^(B*x)+C

从Fig7.可以看出:

1、A可以用来调整与y轴的交点的大小,同时保持曲线调整前后的相对位置不变;

2、B可用来调节曲线与y轴的距离,B越大,曲线离y轴越近。

3、C可用来上下平移。

三、幂函数

        在策略中比较常见的是开根号和开平方的形式,这类函数经常被用在需打压或增强某个指标影响面的策略中。

        下图分别显示了各类幂函数的曲线变化,及相互关系。

Fig8. 几类幂函数的自变量在区间[0,1]的变化趋势
Fig9. 几类幂函数的自变量在x>1时的变化趋势 

从图Fig8、Fig9中可以看出其变化趋势:

1、当幂小于1时,幂的值越小,曲线离x轴越近;当幂大于1时,幂的值越大,曲线离y轴越近;

2、当变量在[0,1]范围且变量间的差很小时,指数函数是用来做区分度较好的选择。当变量聚集在[0,0.5],可选择幂小于1的数;当变量聚集在[0.5,1],可选择幂大于1的数。

ps:图Fig9中也加入了指数函数,可以看出e^x和x^3大概在[1.86,6.41]和[4.5,93.4]相交,即x在[1.86,4.5]时,x^3的值大于e^x。

幂函数的常见应用:

1、从Fig8可以想到,若某个指标x在[0,1]范围内,可以通过控制幂的大小,扩大/缩小该指标的区分度。如各视频在某项的打分上太相似,无法区分孰优孰劣,可以对该指标归一化在[0,1],并根据预期的区分效果取幂的值。

2、从Fig9可以看出,幂函数还可以用在抑制某类数值过度增大的场景,并将其限制在较小的范围内,缓慢增加。

将三类函数的曲线画在一起后,它们的相对关系如下图:

Fig10. 三类函数在x取值较小时的变化趋势对比
Fig11. 三类函数在x取值较大时的变化趋势对比

从Fig10.和Fig11.可以看出:

1、y=x²,y=x^3,y=x^(1/3)和y=x^(1/2)的自变量在正数区间内, e^x、2^x和x^2的变化趋势相近,e^(-x)、x^(1/2)和1/log(x+1)的变化趋势相近。

2、2^x和x^2在[2,4]和[4,16]相交,即x在[2,4]时,x^2的值大于2^x。

四、其他函数

        除了以上常见的基础函数外,还有些其他的函数也会在策略中时常用到,如取值范围在[-1,1]的双曲正切函数tanh(x)和阶跃函数sgn(x),取值范围在[0,1]的sigmoid函数等有界函数。

        此外,在工作中遇到的问题并不是都能用以上这些基础函数解决,实际问题的解决难度也会随业务的复杂度而增加,这就需要将这些基础函数综合运用,来达到我们期望的目标。

        比如我们在给用户推荐视频,或推荐某个作者发布的视频时,希望最新发布的好视频能优先展现给用户,这需要在考虑用户反馈的基础上加入时间衰减的因子。这样优化后,即使某个视频的用户反馈好,CTR很高,若不是新视频,排序也会相应靠后,把前面的位置留给最新发布且当前效果好的视频。

        时间衰减的方法有很多,比较著名的是牛顿冷却公式(想了解的可看这篇:https://www.zybuluo.com/evilking/note/1029052)。当然我们也可以通过以上基础函数结合具体需求组合出我们想要的公式,如下面两个公式:

1、以幂函数为基础

Fig12. 通过幂函数构造的时间衰减函数及其变化曲线(x表示时间差(天),a用来调节衰减幅度)

        从上图可以看出,当时间差在1天内,呈指数级衰减;时间差大于1天后,衰减变缓慢(在a=0.1的条件下,几乎没有差别)。这在实时性要求较高的场景下非常好用,有新视频产生时,会很快被推荐出来。

2、以指数函数和幂函数为基础

Fig13.  通过指数函数和幂函数构造的时间衰减函数(x = 时间差(小时)/168)
Fig14. Fig13中衰减函数的变化曲线(x<1是紫线,x>=1是红线)

其中,绿虚线是24h,橘虚线是48h,黑虚线是7天。

        从图中可以看出,24h内的衰减很慢,几分钟和几小时差别不大,24h到48h内,衰减幅度开始增加,超过7天的衰减是呈指数级的变化趋势。这可以鼓励作者每周至少发布一条内容,且需要持续更新才会有稳定的流量。平台会优先把流量给新发布的视频,而超过7天的内容会由于优胜劣汰而被系统逐渐过滤掉。这对于平台来说主要是为了内容的更新迭代,使得用户和作者在我们搭建的平台上能自动运转起来,形成良性的循环,从而达到良好的促进和监督作用。

        以上讨论了一些工作中常会用到的函数,它们具体的实际应用还需大家去不断地探索发掘,若有发现其他好的函数或应用,也可留言分享出来^_^

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • 首页 资讯 文章 资源 小组 相亲 登录 注册 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他...
    Helen_Cat阅读 3,781评论 1 10
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,055评论 0 13
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,517评论 0 38
  • 窗玻上的窗花,已经被时光掠去了当初的鲜艳。聚目细看,那精致的刻痕蜿蜒的剪裁功力非凡,诞生了活脱脱的生肖图腾。我们这...
    山水依情阅读 222评论 0 2
  • 在雨季的晴天里 想念就化成了一封信 没了信封,也没有地址 唯有署名和日期 我用装满爱的笔在信纸上从头写起 然后这爱...
    隋源远阅读 215评论 1 3