我需要帮助制定一个算法。我有一个用python构建的带有redis后端的社交网络应用程序。其中一个特点是一个广告服务器,广告商可以用来创建和服务网站用户的广告。
广告商购买点击。每次点击的成本不是固定的。一个广告客户可以支付1美分/点击,另一个广告商可以支付2美分/点击等等。广告商付费越多,广告显示的可能性就越大。也就是说,付费较高的广告商会获得更快的点击量,其他一切都是一样的。
例如,设想广告商1为1000点击支付10美元,2为1000点击支付20美元,3为1000点击支付30美元。同样,在每个广告印象下,广告商1的广告出现的概率为1/6,广告商2的广告出现的概率为2/6,广告商3的广告出现的概率为3/6。如果第四个广告商被添加到这个组合中,那么这个概率就会改变。一旦一个广告商的指定点击达到,她被从混合和可能性再次修正。
如何在有效的算法中对此进行建模?
当我试图建模的时候,我被难住的一个原因是,在添加(或减去)一个广告客户时,整个系统的概率会被动态地修正。我还没能对这件事深信不疑,希望专家能帮忙。
发布于 2016-12-05 20:34:19
作为一个广告商购买广告点,我个人不确定我是否愿意支付一个不确定的概率,我的广告将显示。我能想象到的最接近合理的事情(这可能是你一直在想的)只是保证那些支付相同利率的人得到同样的概率。要做到这一点,一种有效的方法是将支付给随机范围的利率的累计总和保持在一定的水平上:
cumsum, rate, company
1, 1, A
2, 1, B
4, 2, C
8, 4, D如果您生成一个从0到7(或1到8)的随机数,您可以执行二进制搜索(O log(n))来确定应该显示哪个广告。
如果你把公司按费率排序,你甚至可以比(O log(N))做得更好.也许吧
公司的加减比较简单:为公司加(或减)一行,然后再重新计算累积数。
https://stackoverflow.com/questions/40982403
复制相似问题