您的位置:首页 > 业界新闻

用户画像之年龄和性别等基础属性预测方法详解

2016-07-01 21:53 459 查看
目录:

一、概况
二、详细步骤说明
三、目前存在问题

内容:

一、概况
      因性别和年龄的预测思路和方法,大致相同,故此处仅以性别预测为代表说明之。
      共分为以下7步,
      1.1 人工标签专辑名称对应的属性偏好
      1.2 基于人工标记,取得用户在性别偏好置信度,作为性别语料候选集
      1.3 基于性别语料候选集,对性别维度的属性的置信度倒序排列,越靠前则置信度越高,其质量越好,从而得到优质语料集。
      1.4 将语料集拆分成训练集和测试集,分别为24万训练集和2-5万的测试集。
      1.5 以训练集作为输入训练性别预测分类模型,并做封闭和开放测试,当封闭测试准确率和召回率均>=0.90时,开放测试准确率和召回率>=0.80时候,则训练结束。否则,迭代。
      1.6 做与线上平行时间窗口的线下测试,并统计全端、各端、cid、pid的性别分布。若分布情况合理,则可以上线,否则根据具体bad case,做优化并迭代之。
      1.7 上线操作并配置bdp持久化。

二、详细步骤说明
     2.1  人工标签专辑名称对应的属性偏好
            共分2步, 
           2.1.1 获取每个频道30天时间窗口内的按cv倒序排列的top 20列表,示例如下:
                         

                 2.1.2 为以上专辑人工标记性别偏好,参考爱奇艺指数(http://index.iqiyi.com/)、腾讯指数(http://v.qq.com/datacenter/1114.html)、百度指数(http://index.baidu.com/),以及自己的业务常识,
                          第1列为专辑名称,第2列为男性占比,第3列为女性占比,
                          示例如下:
                          
                
        2.2  基于人工标记,取得用户在性别偏好置信度,作为性别语料候选集
                以30天为计算时间窗口,计算每个pc端的letv_cookie_id对应的观影专辑列表,并与人工标记的专辑与性别属性偏好做乘积并求和,
                比如:用户A的letv_cookie_id为id_a,其观影专辑列表为(超级中情局:5;荒野烈人:4;好运来临:3; )
                则A的性别偏好的男得分male_score=5*0.80+4*0.70+3*0.32=7.76,
                                                  female_score=5*0.20+4*0.30+3*0.68=4.24
                则A为男性的置信度为male_confidence=7.76/(7.76+4.24)=0.65
                   A为女性的置信度为female_confidence=4.24/(7.76+4.24)=0.35                 
               故可以获取,男和女属性的置信度、特征集合的语料候选数据集,示例如下:
               偏男姓demo :

                 偏女性demo:  

         2.3 基于性别语料候选集,对性别维度的属性的置信度倒序排列,越靠前则置信度越高,其质量越好,从而得到优质语料集。
                  基于以上两部分语料,
                  按男性的置信度,由高到低排序,可得指定数量的男性语料集:

             
                    按女性的置信度,由高到低排序,可得指定数量的女性语料集:
                    
  2.4 将语料集拆分成训练集和测试集,分别为24万训练集和2-5万的测试集。
             根据3.3的数据集总量,可以自由拆分出训练集(一般选用男、女各12万,共24万的训练集),测试集(一般选用2-5万,男、女对等去选择)
             形成train_set.txt和test_set.txt来作为训练的输入和模型测试的输入。

  2.5 以训练集作为输入训练性别预测分类模型,并做封闭和开放测试,当封闭测试准确率和召回率均>=0.90时,开放测试准确率和召回率>=0.80时候,则训练结束。否则,迭代。
             目前是基于liblinear做的二次开发封装,以及基于weka的二次开发封装。
             当数据集较大,超过10万以上,且特征维度超过100维以上时候,选择liblinear来做逻辑回归。
             当特征维度在100维以内,数据量在100万以内时候,选择基于weka的多个模型来做综合测试,直到达到预期。
             基于之上的两条筛选规则,我们目前采用的是基于liblinear的逻辑回归来做。
             由于我们选择的特征的语料是比较准确的,故在训练和开放测试时候的准确率和召回率都相对较搞。

              封闭测试的准确率和召回率如下:
             

               开放测试的准确率与召回率如下:
               

     2.6 做与线上平行时间窗口的线下测试,并统计全端、各端、cid、pid的性别分布。若分布情况合理,则可以上线,否则根据具体bad case,做优化并迭代之。
               该预测应用目前主要集中在提供画像服务和纵横项目的专辑、频道的属性分布,故我们采用专辑画像和频道画像的准确率来判定模型训练和预测的好坏。
               我们会用乐视的pc、mobile_cli、mh5、tv、phone端的月播放数据和日播放数据与相对应的最新的画像数据相关联,取得各端的画像。

               全端的画像输出:
                      

                各端的画像输出:
                

                
                频道的月度画像输出:
                

                频道的日画像输出:
                 

                专辑的月度画像输出:
                 

                 专辑的日画像输出:
                 

           2.7 上线操作并配置持续集成工具后持久化。
                 在2.6的基础之上,如果人为去评判是可以接受的,则进行代码的git同步、ci的分发、BDP的调度布署。 
                 并在每周末和每月末的计算完成后,给出计算出来的最新的数据的各端、专辑、频道的分布日志。如下图:

                

                 

                          

三、目前存在问题
       3.1 没有充分运用长短期兴趣特征来综合预测结果
       3.2 特征丰富度不够,尚未加入播放时长、观看时间等重要特征



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息