内容APP怎样给用户打标签&内容推送?

优采云 发布时间: 2020-08-27 16:52

  内容APP怎样给用户打标签&内容推送?

  

  17年-18年底我参与了一个资讯内容兴趣偏好标签的项目。什么是内容兴趣偏好标签呢?

  简单来说就是剖析用户喜欢看的文章类型,得到用户的兴趣偏好,在这样的基础上,对用户进行内容的个性化推荐和push推送,来有效推动app的活跃并拉长用户生命周期。

  这件事情简单来说虽然就是两步走:

  

  那么在实际操作中真的这么简单吗?看似简单的两个环节,究竟是怎样实现的呢?

  首先我们来聊一聊给文章进行分类

  笔者由于这个项目的缘由,看了十分多竞品app的文章分类,发现基本上渐趋一致,但也有一些细节上的差别,更多的问题,在于资讯文章的分类很难用尽,我们参考了市面上已有的分类,并结合一些资料拟定了一整套内容兴趣偏好体系,在指定分类时,我们遵守MECE原则,基本达到了互相独立完全用尽。

  接下来,我们要对文章进行分类,我们采用了分类算法的有监督的学习。理想情况下,流程是这样的:

  

  但在实际中面临两个问题,由于选择了有监督的学习,就面临必须要提供有标明的样本的基础。一般情况下有三种方法获取样本:

  获取样本之后,就是算法模型的训练及其检验了。算法模型的训练原理,即通过对样本文章进行动词,抽取实体,建立特点工程,将每一个特点词作为向量,拟合出一个函数,这样,当有新的文章时,该文章通过动词,并通过模型估算出结果。但模型并不是才能有样本一次性才能确切的,模型还须要进行测试和矫治。一般测试流程如下:

  

  通过了测试的模型也并不是一劳永逸的,仍然可能在后期出现一些分类不确切的问题,这可能是样本导致的,也可能是算法模型导致的。这须要我们找出这种异常的文章及其分类,并矫治分类,再次作为训练样本投喂给模型,进行模型的矫治。一方面,我们可以对转化率比较低的分类的文章进行人工抽查,确定问题是否出在算法。另外,在这里,由于每一篇文章的标签都被赋于了一个值,我们可以为那些值设置一个阀值,当最高值高于某个阀值,这些文章及其标签将被召回,由人工进行标明和矫治,并在此投入样本库中。

  文章标签的估算,由于文章具有多种标签的可能,并非一些二分类非此即彼的结果,因此我们采用的方法是,通过相似性算法,模型估算出文章的标签,并形参,值越高则说明和这类标签越接近,并被打上相应标签。

  

  至此,文章打标签的部份就已经完成了。

  如何给用户打标签

  给用户打标签的方法或许也可以收录两种,统计类的打标签及算法类的打标签。

  前者在算法资源不足同时营运需求量大的情况下可以先行,而后者可以在后者的基础上切分一部分流量对算法模型进行验证和调整,不断优化。

  但在用第一种形式进行时我们发觉,用户在一段时间内阅读的文章类型并不是稳定的,大部分用户会有一个或则几个主要的兴趣偏好,这些类型阅读的文章篇数会更多,但同时,用户也会或多或少的阅读一些其他类型的文章,甚至有些用户是看见那里算那里,什么就会看。

  基于这样的情况,我们须要对用户的兴趣偏好进行排行,即通过对用户一段时间内每种文章类型阅读的文章数进行排行,并取用户top 10的标签,清晰告诉营运用户喜欢哪些类型的文章,这些类型中,用户喜欢类型的优先级是如何的,便于营运朋友进行推送选择。

  因此,用户的标签也须要愈发灵活,能够使营运朋友基于风波发生时间及风波发生次数等权重进行灵活组合选择用户群。

  由于目前push推送很大一部分是由人工进行的,从选择文章,到选择用户,到文章和用户的匹配,在即将进行推送前通常还会进行大批量的A/B test ,而资讯文章的类型特别多,仅一级标签早已达到30+种,二级标签从100到几百不等,总体的标签极有可能会有成千的标签,单靠营运朋友进行推送,是绝对未能完成的。

  因此,在营运资源有限又未能实现自动化的的情况下通常营运同学会对标签进行测试,并选择其中覆盖用户量大且转化率较高的标签。但同时这样的情况都会造成部份兴趣偏好比较冷门的用户被排除出推送的人群。

  针对这样的情况,我们取了用户top 10的二级标签及其对应的一级标签作为用户的一级和二级标签。这样,解决了用户覆盖量的问题,也可以使营运人员集中精力对主体标签及人群进行推送。

  但同时,另一个问题又出现了,选择用户一段时间内的行为,那么这个一段时间到底是多长会愈加合适,使得既达到能充分反应用户兴趣,同时又覆盖到更多的人群(每天还会有流失的用户,因此时间线越长覆盖用户量越大,时间线越短覆盖用户量越少)

  我们发觉,用户常年的兴趣偏好趋向某种程度的稳定,但短期的兴趣偏好却又反应了用户短期内追随热点的行为。因此从这个层面来看,短期可能更能满足用户的需求,但短期覆盖用户量小。在这里,始终有覆盖量和转化率之间永恒的矛盾。

  我们的方法是,对用户按照浏览时间进行分段。赋予用户常年兴趣偏好和短期兴趣偏好,并优先短期兴趣偏好,从常年兴趣偏好中则将短期兴趣用户进行排除,进行不同的推送。而对于流失用户,极有可能在最近3个月(资讯当时定义流失用户时间为3个月)没有任何访问记录,针对于这样的用户,我们取用户最后一次有记录的标签作为用户标签,并进行流失挽回。

  至此,所有的用户也都有了属于自己的标签,而营运朋友也可以按照用户的活跃时间以及阅读的频度对不同的用户进行不同的文章推送,真正的实现万人千面。

  在这个问题上我们可以说是踩了不少的坑。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线