召回模块
- 标签类
- 基于用户历史回答过的话题、关键词召回
- 基于用户关注、浏览等兴趣话题去召回
- 基于内容分类去召回
- embedding召回
- 创作话题、兴趣话题有embedding,通过最近邻去召回相似的问题
- 通过深度学习模型学习出来embedding召回
- 协同类模型
- 热门或其他策略类召回
排序模块
ranking特征
- 问题侧主要是问题的话题、文本、时间、提问作者
- 用户侧主要是用户基础特征、用户兴趣、用户历史创作特征
- 交叉特征:问题与历史回答话题相似度、文本相似度等
ranking模型
- 传统GBDT、GBRank,在一些不追求极致效果情况中有一定优势
- 深度学习模型:Wide&Deep、DeepFM,效果有较大提升,但训练要求资源多,样本规模大
- ESMM(多目标)
目前模型主要是天级更新,在做onlinelearning的尝试
一些tips
- 模型融合或者复杂网络可能在比赛中有效,但是在实际生产中要考虑实际情况,一般情况下留给ranking阶段的时间不超过100ms,如果模型过于复杂,运行时间往往得不到标准,一般会使用单一的模型,或者直接使用多目标或多任务目标学习模型。
- 线上仍有不少地方在使用GBDT、GBrank,树模型有一些非常大的优势:模型简单,可解释性强,需要的样本量不大,训练时间短,使用资源少,模型稳定,一定时间不更新衰减比较弱,可维护性比较强,在一些不过分追求极致效果的情况使用比较多。