点击上方“数据与智能”,“星标或置顶公众号”

第一时间获取好内容

正题

记得刚开始工作的第一年,那是一个炎热的夏天,刚毕业的我去了一家互联网视频公司,在大数据部门实习。实习期间,部门老大考虑让我迅速了解公司业务,最开始就是和公司运营部门建立业务关联。故事从此拉开序幕,运营的小姐姐们为了促进用户活跃,绞尽脑汁地在APP上做在线抽奖活动,吸引更多的用户参与!

每次抽奖活动启动之前,部门老大都要被运营的同事叫去,给每种奖项计算一个中奖概率( 其实就是拍脑袋决定,但他们就是更迷信大数据的所谓数学“高材生”,貌似大数据部门的脑袋拍得比较准一点)。然后在活动期间,留一个运营小姐姐盯着中奖情况,根据用户中奖情况把中奖概率调高调低(十一长假啊,大家都出去玩儿了,这位小姐姐要一直盯着中奖情况,也太特么不人道了)。

后来我老大被搞烦了,就让我去算。每次活动都算,我也被搞烦了,于是就写了本文中的自适应概率模型,根据这个模型,后面所有的抽奖活动只需要进行简单设置就行了。本文将对这一模型进行详细介绍,并附有测试案例及结果分析,希望能给大家一些启发,权做抛砖引玉。

P.S. 后来正式入职。在接下来的年会抽奖活动上,先后中了一台全自动洗衣机和一套DW的手表+手镯。以至于,那些没中奖的小伙伴都怀疑我在抽奖代码里留了后门。

主菜来了,下面来给大家介绍一下抽奖活动中的概率自适应调整,可能需要阅读两遍,估计一共需要花5分钟!

应用场景

无论运营还是技术,1年当中绝对不会少于1次抽奖活动,迷恋小概率事件是消费者行为学中最普遍被研究放大的,你产品的DAU(日活跃用户数)越大,抽奖概率的设置直接影响了用户体验。除了线上的抽奖活动,线下抽奖活动也会遇到很多,这个模型可以帮助你更好地自动调整中奖概率(当然,如果是一个小型的线下抽奖活动,比如几百人的公司年会,这样的概率模型当然不是必须的)。

开始活动之前有几个问题你一定会思考?

1、如何满足人类从众心理,让活动有一个火爆的开始并很快会有用户中奖?

2、如何让奖品被抽中的数量可控,想让用户中多少就中多少?

3、如何让奖品尽量均匀的在活动期间被抽完?别一上来就全部抽完了,后面没的玩,也别老是中不到奖堆积到最后。

4、如何防止刷奖,奖品一天很快就被抽完,后面的用户都抽不到?

5、如何让整个抽奖活动简单可配置,傻瓜式的只需要填上活动开始和结束时间,各种奖品及其具体数量即可?

概率模型

硬菜上线,看看下文的概率模型是否有帮到你(看到一堆参数,别害怕,简单解释一下即可玩转概率)。

图 1、中奖概率自适应调整公式

公众号回复「公式」下载高清公式图

注:所有奖项均采用该模型,但分别计算中奖概率,即每一种奖项都有一个当前的中奖概率。因此可根据实际需要,实现对不同奖项的分别定制概率。下面以一等奖为例,进行说明:

参数意义

NP:用户活动中的有效抽奖次数(有效抽奖:如果不允许一个用户多次中奖,则同一个用户抽完奖没中,下次为有效抽奖,中过之后再抽奖均为无效抽奖;否则,每次均为有效抽奖),该参数的设置不必精确(模型会即时调整,测试案例中说明),甚至直接使用默认值1000

numRemain:一等奖目前剩余数量

numTotal:一等奖总数量

timeRemain:截止到一等奖抽奖结束,剩余的时间

timeTotal:一等奖从开始到结束,总时间

step:概率调整的步长(解释一下)

offSet:偏置率(活动最后阶段,参加人数会非常少。在保证整个抽奖活动中奖事件按时间成均匀分布的基础上,确保奖品会被抽完)

测试案例

案例一、人数预估过量

(预计40000次有效抽奖,实际为34565)

参数设置讲解:

// 抽奖活动起止时间设置

val startTime = "2016-09-21 13:00:00"

// 活动2016年9月21号,下午1点开始

val endTime = "2016-09-21 14:00:00"

// 活动2016年9月21号,下午2点结束

// 有效抽奖次数估计

val NP = 40000

// 预估有40000次有效抽奖

// 奖品数量设置

val n0_total = 2

// 特等奖2个

val n1_total = 10

// 一等奖10个

val n2_total = 60

// 二等奖60个

val n3_total = 200

// 三等奖200个

结果分析

1中奖情况

中奖情况如下图2所示,横坐标为时间(分钟),纵坐标为奖项(0:特等奖,1:一等奖,2:二等奖,3:三等奖)。结论如下:

1.总体来看,中奖按时间呈现均匀分布

2.58分钟,所有奖品抽完(offSet = 0.1,最后6分钟为活动结尾阶段)

3.人数预估过大,导致初始概率较小,开始阶段中奖人数偏少

图 2、案例一的中奖情况

2概率变化情况

分析

1)特等奖只有2个,因此中奖概率明显分成了3段。

2)总奖品有272个,第189个被抽出来奖品为第1个特等奖。

3)因为人数预估偏多,在第1个特等奖被抽出来之前,随着抽奖的进行,特等奖中奖概率缓慢上升。

4)在第1个特等奖被出来之后,特等奖中奖概率瞬间降低,然后缓慢上升,直至第2个特等奖被抽出来。

5)第2个特等奖被抽出来之后(第206个),特等奖已抽完,中奖概率为0。

6)一等奖、二等奖、三等奖的概率呈现同样的规律。

案例二、人数预估不足

(预计30000次有效抽奖,实际为101450)

参数设置讲解:

// 抽奖活动起止时间设置

val startTime = "2016-09-21 9:00:00"

// 活动2016年9月21号,上午9点开始

val endTime = "2016-09-21 12:00:00"

// 活动2016年9月21号,中午12点结束

// 有效抽奖次数估计

val NP = 30000

// 预估有30000次有效抽奖

// 奖品数量设置

val n0_total = 2

// 特等奖2个

val n1_total = 10

// 一等奖10个

val n2_total = 60

// 二等奖60个

val n3_total = 200

// 三等奖200个

结果分析

1中奖情况

如下图3所示,横坐标为时间(分钟),纵坐标为奖项(0:特等奖,1:一等奖,2:二等奖,3:三等奖)。结论如下:

1.总体来看,中奖按时间呈现均匀分布

2.156分钟,所有奖品抽完(offSet = 0.1,最后18分钟为活动结尾阶段)

3.人数预估过少,导致初始概率较大,开始阶段中奖人数偏多

图 3、案例二的中奖结果

2概率变化情况

分析

1)特等奖只有2个,因此中奖概率明显分成了3段。

2)总奖品有272个,第52个被抽出来奖品为第1个特等奖。

3)因为人数预估偏多,在第1个特等奖被抽出来之前,随着抽奖的进行,特等奖中奖概率缓慢上升。

4) 在第1个特等奖被出来之后,特等奖中奖概率瞬间降低,然后缓慢上升,直至第2个特等奖被抽出来。

5)第2个特等奖被抽出来之后(第183个),特等奖已抽完,中奖概率为0。

6)一等奖只有10个,数量较少,因此呈现出与一等奖类似的规律。

7)二等奖和三等奖较多,前期因为人数预估不足,中奖概率一直在下降,直至低于应有的平均值。到活动中期概率,中奖概率在波动的基础上提升。最后阶段,概率波动变化,以保证所有奖品被抽完。

实战效果

1.本模型已经在公司的各种线上抽奖活动中运行多次,均很好地实现了预定目标,且不再需要人力调整中奖概率

2.通过中奖概率的自适应变化,可以实现中奖事件总体上按时间呈现为均匀分布

3.对预估的活动参与人数具有鲁棒性,可以有效应对预估不准的情况

4.抽奖活动的启动,只需要进行简单的设置

5.不同奖项中奖概率使用同一个模型,但分开计算,因此可以实现不同奖项的个性化定制(比如,让特等奖在某个时间点前抽完)

【今年年会,你中奖了吗?】在线抽奖活动中如何实现中奖概率的自适应调整...相关推荐

  1. 详解如何实现在线聊天系统中的实时消息获取

    序言 传统web浏览器应用采用客户端主动请求方式,只有在收到浏览器请求时服务端才返回消息,这种模式已经不能满足日益多样化的web应用需求,例如: 在线聊天系统:需要实时获取聊天消息. 实时监控系统:需 ...

  2. 腾讯广告X中科院计算所WWW2021论文:在线广告中的探索与优化

    ​ 01 让人头疼的赌博机 未来的某一天,疫情终于结束了,大家都开开心心地出门旅游.如果你是去澳门和拉斯维加斯的赌场,一定会看到这样的成排的老虎机. 每台老虎机都可以投币,按下按钮或者拉一下拉杆之后屏 ...

  3. 在线文本中插入符号工具

    在线文本中插入符号工具 在线文本中插入符号工具 工具能够在文本中任意两个字符之间都插入指定的符号,非常简单就可以完成绚丽个性的文本段落. https://tooltt.com/txt-symbol/

  4. 纵向联邦线性模型在线推理过程中成员推断攻击的隐私保护研究

    纵向联邦线性模型在线推理过程中成员推断攻击的隐私保护研究 尹虹舒, 周旭华, 周文君 中国电信股份有限公司研究院安全技术研究所,上海 201315 摘要:随着大数据的发展以及数据安全相关法规的出台,人 ...

  5. 在线会议中人脸面部轮廓图像提取(三)——Dlib库人脸面部轮廓图像特征提取

    前言:所使用图片并无盈利等目的,如有侵犯他人肖像权请联系删除. 当当当当,第三期来廖!接上一期在线会议中人脸面部轮廓图像提取(二)--HOG人脸面部轮廓图像特征提取,介绍完HOG特征提取我们继续学习D ...

  6. 秋招春招,网申在线测评中的智力测试

    公司招聘中的智力测试(也有叫认知能力测验),并不是说检测不通过就代表一个人的智力不行,这个智力检测其实也超越了单纯的智力测试,主要是评估人的逻辑思维能力,以及在实际生活中解决问题的能力,题型大多是类似 ...

  7. 未来“智能教育”的蓝图:大规模在线教育中的知识智能

    AI TIME欢迎每一位AI爱好者的加入! 人工智能正渗透到各行各业,解放了人类智能,也促进了人类更高层次的智能.近年来,MOOC这种大规模交互式的知识分享平台更是受到AI领域的密切关注,成为探索&q ...

  8. 七月在线机器学习中的数学第二期笔记1

    这套笔记是跟着七月在线机器学习中的数学第二期的学习而记录的,主要记一下我再学习机器学习的时候一些概念比较模糊的地方,具体课程参考七月算法官网: 七月 数理统计和参数估计部分 一. 概率与数理统计 首先 ...

  9. 利用memoQ改善在线翻译中的低级翻译错误

    最近"乘风破浪的姐姐们"大火,各大媒体平台的热搜也都是与节目相关的话题.最近又有一则热搜:#孟佳回应带队拼错everybody#.刚开始看到这则微博,我还认真盯着屏幕看了好久,硬是 ...

  10. 在线办公中最重要的文档处理,飞书很用心

    在线办公经常会遇到的问题,一个是沟通不及时,另一个就是文档处理.身为市场部的文案编辑,在线办公时每天都会产生很多文档,有在线的有本地的,感觉自己的工作就是反复传文件,一版.二版.修改版.最终版--.. ...

最新文章

  1. 新同事不讲武德,乱写 SQL 偷袭我!!
  2. 等差数列末项_等差数列末项(第n项)公式
  3. vc2010中设置ipch与sdf的位置
  4. “玩转课堂”基本构想
  5. java和c++ 删除hash表的内容
  6. github 上 Fork 别人的项目后的常用的操作指南
  7. 威联通+nas+mysql_让不同品牌的 NAS 没有距离,群晖和威联通之间如何同步
  8. keilC51和MDK_ARM的安装与兼容及LED点亮实验
  9. matlab各向异性高斯核方向导数滤波器,基于各向异性高斯方向导数滤波器提取图像粗边缘的方法...
  10. 物联网共享打印机系统是怎么做出来的?
  11. 工业相机和镜头选型技巧
  12. iOS 实现UIButton加小红点
  13. CPU与存储器连接习题
  14. win10向右键新建中添加可创建的文件类型
  15. [附源码]PHP计算机毕业设计-报刊征订管理系统(程序+LW)
  16. 字节数组与String类型的转换
  17. 男人二十岁后应该学会的习惯 - 褪墨
  18. git学习之:如何将远程代码强制拉取同步(覆盖)到本地文件夹
  19. 安卓修改大师揭秘Android手游破解全过程
  20. VQA(图像问答)数据集结构及大致内容

热门文章

  1. 使用ember-simple-auth实现Ember.js应用的权限控制
  2. MFC去掉窗口右上方最大化最小化关闭按钮
  3. 关于MSN群 创建MSN群 使用MSN群
  4. python与vfp做桌面数据库_Python:如何提高将数据从vfp(dbf)加载到oracle的效率?...
  5. 摄影系列:单反相机入门知识
  6. Rainmeter新手教程
  7. 国产双模蓝牙芯片简介
  8. Filter过滤敏感词汇
  9. httpclient4.X 设置代理请求(包含账号密码)
  10. 学校计算机房网络的拓扑结构一般采用,XX学校机房建设规划方案