Redian新闻
>
面试被问到subscription renewal model,大家来集思广益吧
avatar
面试被问到subscription renewal model,大家来集思广益吧# DataSciences - 数据科学
f*k
1
11月底要办事,在LA的有什么推荐的吗?
谢谢了。
avatar
f*d
2
像netflix,dropbox,还有telecom公司,以及基于SaaS的公司都是subscription based,
用模型来预测subscription renewal的肯定都在做吧,大家都在用什么方法?
我只能想到最基本的,以按月续订为例子,create a collection of usage metrics,
and aggregate onto monthly level.每个用户都有一个renew flag作为dependent
variable,然后用个logistic regression,或者什么tree ensemble啊,neural
network之类建个model。那么问题来了,training data怎么建?我的回答是take
several snapshots from historical data, and combine together.但是这也不能保
证这个sample representative of the scoring population.还有一个问题就是同一个
用户可能被抽到多次(比如出现在一月的snapshot里,又出现在二月的snapshot里),
这样数据的独立性又被质疑。总之,面试官肯定是想听到更sophisticated的方法。
回来以后google了下,也没找到什么,看到有用hidden markov chain的,仿佛很高端
,没太看明白。版上牛人多,请不吝赐教,也造福以后碰到类似问题的童鞋们。
avatar
f*d
3
对了,还是这个model的问题,也被问到了time varying covariates,比如第一个星期
非常活跃,之后就很少登陆,这种变量在aggregate之后是没法体现的,但同时又是非
常重要的predictor。咋办?
我说derive some variables to represent the behavioral change, for example,
the delta between Week2 and Week1, etc.感觉不理想。现在想想,是不是应该每个
用户有好几行数据,像longitudinal那样建model啊?但这样的话scoring的时候该咋办
avatar
a*n
4
听上去有点像是银行里做的retention model。
就用logistic regression就行了。training data把每个账单上的所有信息都记录下来
,可以加上些别的有的没有,比如你说的什么登陆频率。(btw,登陆频率,你用time
since last login, time since 2nd last login, etc...这样像你提到的那个人就是
比如,200天,201天,203天,etc...实战中用time since last login应该就够了,最
多加个time since 2nd last login)
然后这些货,以及他们的aggregation, transformation,统统扔到model里。什么
univariate analysis, cluster analysis, stepwise logistic regression,统统用
上,就出来model啦。这里题外话已经,我非常反对把某个变量在时间1和时间2的差放
入model。原因是,这个差和dependent variable肯定不是单调的,所以说不定会对
model反而起副作用。
model要分segment,可以根据屌丝/高富帅分,可以根据产品分(乞丐版9.99/月还是高
富帅白富美终极套餐999/月),可以根据marketing渠道分(主动来订阅/我们发了无数
平信外加给rebate才来定的),etc...

based,
,

【在 f*******d 的大作中提到】
: 像netflix,dropbox,还有telecom公司,以及基于SaaS的公司都是subscription based,
: 用模型来预测subscription renewal的肯定都在做吧,大家都在用什么方法?
: 我只能想到最基本的,以按月续订为例子,create a collection of usage metrics,
: and aggregate onto monthly level.每个用户都有一个renew flag作为dependent
: variable,然后用个logistic regression,或者什么tree ensemble啊,neural
: network之类建个model。那么问题来了,training data怎么建?我的回答是take
: several snapshots from historical data, and combine together.但是这也不能保
: 证这个sample representative of the scoring population.还有一个问题就是同一个
: 用户可能被抽到多次(比如出现在一月的snapshot里,又出现在二月的snapshot里),
: 这样数据的独立性又被质疑。总之,面试官肯定是想听到更sophisticated的方法。

avatar
f*d
5
感激!这个time since last login很有用啊。还有segment也是,他们的确有不同的
model针对不同的用户群。
还是training set的问题,请问要怎样sample?比如我有1 million用户,他们每天的
activity都在log里,很多人已经renew了十几二十次(每月renew一次),难道我要把
他们全放到training里?怎样保证training和scoring的data是相近的呢?

time

【在 a******n 的大作中提到】
: 听上去有点像是银行里做的retention model。
: 就用logistic regression就行了。training data把每个账单上的所有信息都记录下来
: ,可以加上些别的有的没有,比如你说的什么登陆频率。(btw,登陆频率,你用time
: since last login, time since 2nd last login, etc...这样像你提到的那个人就是
: 比如,200天,201天,203天,etc...实战中用time since last login应该就够了,最
: 多加个time since 2nd last login)
: 然后这些货,以及他们的aggregation, transformation,统统扔到model里。什么
: univariate analysis, cluster analysis, stepwise logistic regression,统统用
: 上,就出来model啦。这里题外话已经,我非常反对把某个变量在时间1和时间2的差放
: 入model。原因是,这个差和dependent variable肯定不是单调的,所以说不定会对

avatar
c*z
6
for renewals, maybe consider RFM - recency, frequency and money - as
features
actually unless the product changes a lot, you can simply fit a curve,
either Bass model or Fader model, at either the user level or aggregated
level
if the product changes a lot, the best approach I know is to use experiment,
e.g. bandit algorithms

【在 f*******d 的大作中提到】
: 感激!这个time since last login很有用啊。还有segment也是,他们的确有不同的
: model针对不同的用户群。
: 还是training set的问题,请问要怎样sample?比如我有1 million用户,他们每天的
: activity都在log里,很多人已经renew了十几二十次(每月renew一次),难道我要把
: 他们全放到training里?怎样保证training和scoring的data是相近的呢?
:
: time

avatar
f*d
7
Thank you! I googled Fader's paper - it's pretty informative.

experiment,

【在 c***z 的大作中提到】
: for renewals, maybe consider RFM - recency, frequency and money - as
: features
: actually unless the product changes a lot, you can simply fit a curve,
: either Bass model or Fader model, at either the user level or aggregated
: level
: if the product changes a lot, the best approach I know is to use experiment,
: e.g. bandit algorithms

avatar
s*n
8
Did something similar before. Basically just using movie window to take
multiple snapshot for each user, and realign the dataset to train with your
favorite binary classifier. I added some transient profile (demographics etc
) to characterize the state of the user.
To get fancier you could cut up the customer spending distribution to
multiple tier and estimate with a multinomial/multiclass distribution. Also
you could derive the ergotic/equilibrium distribution with the state-
transition probability matrix, assuming first-order Markov chain.

【在 f*******d 的大作中提到】
: Thank you! I googled Fader's paper - it's pretty informative.
:
: experiment,

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。