行为画像

用户画像在推荐系统中扮演着重要的角色,这篇文章主要是阅读《用户网络行为画像》一书的读书摘要,该书较老,感觉更加适合产品经理或者不懂推荐的人看,如果读者本身就是一个推荐从业者的话,只需要看书的前半部分,对用户画像有个本质的理解即可,后半部分可忽略。

用户描述分为三种情况

  • 用户画像(User Portrait),更倾向于对同一类用户进行不同维度的刻画

  • 用户角色(User Persona),更倾向于业务系统中不同用户的角色区分

  • 用户属性(User Profile),更倾向于对用户属性层面的刻画和描述

一般将用户画像和用户角色合称为用户画像,而用户属性则是用户画像的子集。

用户画像分为:静态属性部分和 动态属性部分。因为用户画像包含动态变化部分,所以要设计合理有效的动态更新机制,从而精确的刻画用户。

用户画像的时效性和空间性

  • 用户画像对于时效性非常敏感,某一时刻的用户画像对该时刻的推荐结果最为有效,距离时间越远,推荐结果的精确性越低,参考价值越差。

  • 用户画像在不同的应用领域有不同的侧重点,比如营销领域的用户画像侧重于用户的消费习惯,而在视频推荐领域,用户画像则主要侧重于用户的观影喜好。

用户画像建模

  • 用户画像建模往往就是用户信息的标签化

  • 用户画像通常包含

    • 定量画像:主要包括用户基础变量,兴趣偏好等可量化的数据特征

    • 定性画像:主要包括用户的基本特征,行为刻画,兴趣建模和表征向量

用户画像的表现形式众多, 常见的有:

  • 关键词法,即一组代表用户属性的特征词

  • 评分矩阵法,以二维矩阵的行为表示用户,列表示特征项目,行列的交叉点为某用户对某特征项目的评分

  • 向量空间表示法,给出一组关键词及对应的比重

  • 本体表示法,以本体模型存储用户的属性和关系

用户画像的存储

  • 关系型数据库(便于理解、通用的SQL语言使得操作库比较方便,维护成本低,如果达到了TB数量级,如果能够正确设计索引,并根据数据的时效性做进一步的分级缓存,减小缓存粒度,改进缓存机制也可以做到非常快)

  • NoSQL数据库。键值(Key-value)存储数据集,比如Redis、Accumulo、BerkleyDB、LevelDB、Dynamo等;列存储数据库,主要应用分布式的海量数据存储,比如Sybase IQ、Hbase、BigTable等;文档型数据库(主要存储文档、半结构化的文档数据、以及特定格式的数据),比如CouchDB、MongoDB;图形数据库,比如Neo4J、InfoGrid、Infinite Graph

  • 数据仓库,是一个面向主题的、集成的、随时间变化的数据集合,用以更好的支持企业或组织的决策分析处理。比较适合用户画像的存储、管理和分析

用户画像的查询

  • 用户画像的用途决定了是以查询为主,因此强调需要有极高的并发查询性能,且同时对聚合性能要求很高。

  • 避免查询重复,利用缓存技术

用户画像的更新

  • 触发更新

  • 定期更新

设计用户画像时,注意要有一个唯一的id表示用户,如果有多个,注意数据间的同步。

  • 主流推荐算法分类

    • CF

    • 基于内容

    • 基于知识

    • 混合推荐

  • 推荐系统的评测方法

    • 离线评测;评分准确度-MAE(平均绝对误差),评分准确度-MSE、NMAE、RMSE,评分准确度-预测评分关联度(Pearnson积距、Spearman相关方法、Kendall's Tau),排序准确度、平均准确度、NDCG(Normalized Discounted Cumulative Gain),分类准确度(准确率、召回率、F值、AUC曲线),覆盖率、多样性、新颖性

    • 用户调查

    • 在线评测;ABTest/点击率/转化率

  • 常见的评测指标

    • 点击率&转化率

    • 用户满意度

    • 预测准确度

    • 覆盖率

    • 多样性

    • 新颖性

    • 适应性

    • 扩展性

  • SVD算法

    • SVD的基本原理是将给定的矩阵分解成3个矩阵的乘积形式,即

    • 分解出的矩阵和被分别称为左、右奇异矩阵,其本质是酉矩阵,即与他们各自的共轭转置矩阵相乘后会得到单位矩阵

    • 矩阵 为对角矩阵,其对角线上的值即为矩阵的奇异值

混合推荐方法

  • 整体式混合设计

    • 特征组合(从多种推荐数据源中获取特征,将这些特征组合起来放入单一的推荐算法中

    • 特征补充(将一种推荐算法输出的特征信息作为另一种推荐算法的输入特征信息

  • 并行式混合设计

    • 加权式(对多种推荐算法的计算结果进行加权平均处理,产生出单一的推荐结果)

    • 混杂式(同时呈现出多种推荐算法的推荐结果)

    • 切换式(在不同的推荐算法中进行切换以适应当前的推荐情境)

  • 流水线式混合设计

    • 层叠式(一种推荐算法对另一种推荐算法的推荐结果进行提炼)

    • 级联式(一种推荐算法学习到的模型作为另一种推荐算法的输入)

A/BTest(线上普遍使用),其宗旨为

  • 同时运行两个或者两个以上方案

  • 两个方案只有一个变量不变,其他条件均相同

  • 有明确的评价指标用于评价两套方案的优劣

  • 实验过程中,同一个用户从始至终都应该只接触一个方案

笔者曾混迹过各种攻防演练活动,参与过防守方、攻击方,也算是大概了解了每一个队伍的任务~参加防守时印象尤为深刻,也跟一起防守的“战友”做过有趣的事情,例如:反打攻击队;题外话说的有点多了,来说说为什么开发这样一个平台:作为一个防守方光看日志固然是枯燥无味的,偶尔来几次反向打击啥的,增添防守的乐趣~所以我想到了做这样一个系统,就是想在“空暇”时间能获取点“黑客攻击者”的“画像”。 本平台采用被动式的方式分析黑客攻击者画像,可扩展赋能蜜罐以及安全设备,将平台接口部署在蜜罐Web界面上即可,当攻击者访问所部署的Web界面即触发平台分析功能,对访问者进行分析,数据回传平台分析其网络身份、IP、IP定位:物理地址等信息。 AHRID 信息展示 平台支持接口授权的方式授权站点,已授权站点才可使用平台接口进行被动式的攻击者画像分析以及数据回传。 AHRID 接口授权 平台的分析功能采用模块化设计,可针对不同的分析功能新建不同的分析模块进而让平台的分析功能更加丰富完善(开源版本目前只支持JSONP探针模块) AHRID 提交模块 AHRID开源版使用 授权使用 登录进AHRID平台之后需要先添加接口授权: AHRID 接口授权 当添加完毕后,复制接口代码至蜜罐页面或需监测的页面中即可(建议复制到最后),这样就已经部署成功了,只需要等待攻击者触发数据回传功能,等待画像信息即可。 模块提交 当已经发现一个JSONP劫持漏洞时,即可提交到AHRID平台上: JSONP 劫持漏洞 漏洞地址:http://my.website/dorabox/csrf/jsonp.php?callback=test 要获取的信息:username 模块提交说明: 1. 名字模块名字(建议使用英文) 2. SRC存在JSONP劫持漏洞的URL地址 3. 回调参数值回调参数的值(参数=值) 4. 数据字段JSON字段(例如:{"username":"123"},要获取的是username即填写username;例如:{"data":{"uid":"123"}},要获取的是uid即填写data.uid) 5. 信息展示地址一般填写无或者随意填写 6. 模块描述根据模块功能说明 AHRID 模块提交示例 AHRID开源版设计概述 当攻击者访问到部署了AHRID接口的页面,即触发JSONP探针获取攻击者已登录状态下的登录信息,回传登录信息+IP+UA,后端会对IP进行物理地址转换,最终将数据记录到数据库。 数据库结构 表:Admin - 列:id,username,password 表:Hackinfo - 列:hid,host,ip,user_agent,jsondata,creaye_time,times 表:Plugins - 列:pid,name,src,callback,columns,url,commit 表:Apis - 列:aid,host IP地址转换依赖:GeoLite2-City.mmdb IP定位依赖:接口 apis.map.qq.com、way.jd.com + 取中心点 依赖环境:Python2 + Flask + Mysql 所需网络环境:互联网(可出网) AHRID开源版搭建 1.config.py 配置文件修改 需要配置的信息如下: USERNAME: Mysql用户名 PASSWORD: Mysql用户密码 HOST: Mysql主机地址 PORT: Mysql端口 SECRET_KEY: SESSION 秘钥(建议16位以上随机英文字母+数字+特殊符号) TX_KEYS: 腾讯接口KEYS(2个以上,参考:https://lbs.qq.com/webservice_v1/guide-ip.html) JCLOUD_KEY: 京东云接口KEY(Github可白嫖) 2.Mysql创建“ahrid”数据库 3.执行如下代码 python manage.py db init python manage.py db migrate 4.启动服务:sudo python app.py 默认端口为:80,可自行修改app.py文件如下代码部分 server = pywsgi.WSGIServer(('0.0.0.0', 80), app)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值