rambo

(一)Low-Rank与用户消费状态判定模型(关键词生成)

本系列文章是基于百度“知识挖掘与用户建模”一文结合自己学习过的一些机器学习模型的思考。

问题描述:当用户对于某类商品具有消费意图时,那么通过他(她)在互联网上搜索、点击和浏览行为往往能能流露出一定的迹象。这种现象非常普遍,尤其是一些以互联网作为载体进行宣传和销售的产品 ,例如,数码产品、化妆品、汽车、房产等。以用户手机数码消费状态为例,首先通过对手机用户日志的分析,对于拟购买手机的用户,典型的行为模式是大量浏览各种品牌、型号的手机,关心各方面的指标,然后逐渐集中品牌型号,最后集中关注某一款手机。对于已购买手机的用户,典型的行为模式是搜索手机的使用教程、软件下载、故障处理等问题,并且品牌型号单一。这两类用户各自的行为均比较繁杂,通过人工的方式去标注一些关键词难以满足判定需求。

一方面,通过人工枚举出来的关键词比较有限,会限制用户消费状态模型的人群定位范围;另一方面,用户在互联网上的点击浏览行为往往具有一定的偶然性(稀疏性),如果仅仅通过1,2,条日志就判定用户的消费意图,就会很不准确。

消费状态判定模型:建立用户消费状态判定模型首先要解决的问题是建立特征空间。对于手机消费而言,需要分别构建“正关键词”和“负关键词”,其中“正关键词”是能影响用户消费状态决策的关键词,如“报价”、“参数”等,而“负关键词”则是能预示用户已完成购买的关键词,如“应用”、“设置”等。显然,如果采用人工枚举的方式确定这些状态关键词,会非常耗时耗力。而较为简单的关键词的选取方式是通过统计词频,然后人工筛选,在进行多类别消费品扩展时效率也很低下。

自动获取正负关键词的方法:

  1. 人工选取种子关键词;
  2. 把手机相关的日志分成正负两类(拟购买和已购买),过滤无用词,并分别统计词频;
  3. 生成两类词频后,对于日志采用稀疏化矩阵分解模型(RPCA),选取出最终权重最高的关键词,删除正负两类中均出现的关键词,生成最终的关键词列表。

给定数据矩阵D\in R_{+}^{m\times n},每列代表一个用户,每行代表一个关键词,矩阵中每个元素d_{ij}表示第i个词在第j个用户的行为中出现的次数或频率。

直观上,我们可以假设认为这个用户行为矩阵是由一个各个用户之间相似的常见行为集合(A满足低秩性),与一个各个用户之间明显不同的个性化行为集合相加得到的(E满足稀疏性),即D=A+E

其中A为低秩矩阵,E为稀疏矩阵。