一 、个性化电商广告推荐系统介绍

一 个性化电商广告推荐系统介绍

1.1 数据集介绍

  • Ali_Display_Ad_Click是阿里巴巴提供的一个淘宝展示广告点击率预估数据集

    数据集来源:天池竞赛

  • 原始样本骨架raw_sample

    淘宝网站中随机抽样了114万用户8天内的广告展示/点击日志(2600万条记录),构成原始的样本骨架。 字段说明如下:

    1. user_id:脱敏过的用户ID;
    2. adgroup_id:脱敏过的广告单元ID;
    3. time_stamp:时间戳;
    4. pid:资源位;
    5. noclk:为1代表没有点击;为0代表点击;
    6. clk:为0代表没有点击;为1代表点击;

    用前面7天的做训练样本(20170506-20170512),用第8天的做测试样本(20170513)

  • 广告基本信息表ad_feature

    本数据集涵盖了raw_sample中全部广告的基本信息(约80万条目)。字段说明如下:

    1. adgroup_id:脱敏过的广告ID;
    2. cate_id:脱敏过的商品类目ID;
    3. campaign_id:脱敏过的广告计划ID;
    4. customer_id: 脱敏过的广告主ID;
    5. brand_id:脱敏过的品牌ID;
    6. price: 宝贝的价格

    其中一个广告ID对应一个商品(宝贝),一个宝贝属于一个类目,一个宝贝属于一个品牌。

  • 用户基本信息表user_profile

    本数据集涵盖了raw_sample中全部用户的基本信息(约100多万用户)。字段说明如下:

    1. userid:脱敏过的用户ID;
    2. cms_segid:微群ID;
    3. cms_group_id:cms_group_id;
    4. final_gender_code:性别 1:男,2:女;
    5. age_level:年龄层次; 1234
    6. pvalue_level:消费档次,1:低档,2:中档,3:高档;
    7. shopping_level:购物深度,1:浅层用户,2:中度用户,3:深度用户
    8. occupation:是否大学生 ,1:是,0:否
    9. new_user_class_level:城市层级
  • 用户的行为日志behavior_log

    本数据集涵盖了raw_sample中全部用户22天内的购物行为(共七亿条记录)。字段说明如下:

    user:脱敏过的用户ID;
    time_stamp:时间戳;
    btag:行为类型, 包括以下四种:
    ​ 类型 | 说明
    ​ pv | 浏览
    ​ cart | 加入购物车
    ​ fav | 喜欢
    ​ buy | 购买
    cate_id:脱敏过的商品类目id;
    brand_id: 脱敏过的品牌id;
    这里以user + time_stamp为key,会有很多重复的记录;这是因为我们的不同的类型的行为数据是不同部门记录的,在打包到一起的时候,实际上会有小的偏差(即两个一样的time_stamp实际上是差异比较小的两个时间)

1.2 项目效果展示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EUTDy1BC-1691901710646)(/img/1545049355235.png)]

1.3 项目实现分析

  • 主要包括

    • 一份广告点击的样本数据raw_sample.csv:体现的是用户对不同位置广告点击、没点击的情况
    • 一份广告基本信息数据ad_feature.csv:体现的是每个广告的类目(id)、品牌(id)、价格特征
    • 一份用户基本信息数据user_profile.csv:体现的是用户群组、性别、年龄、消费购物档次、所在城市级别等特征
    • 一份用户行为日志数据behavior_log.csv:体现用户对商品类目(id)、品牌(id)的浏览、加购物车、收藏、购买等信息

    我们是在对非搜索类型的广告进行点击率预测和推荐(没有搜索词、没有广告的内容特征信息)

    1. 推荐业务处理主要流程: 召回 ===> 排序 ===> 过滤
      • 离线处理业务流
        • raw_sample.csv ==> 历史样本数据
        • ad_feature.csv ==> 广告特征数据
        • user_profile.csv ==> 用户特征数据
        • raw_sample.csv + ad_feature.csv + user_profile.csv ==> CTR点击率预测模型
        • behavior_log.csv ==> 评分数据 ==> user-cate/brand评分数据 ==> 协同过滤 ==> top-N cate/brand ==> 关联广告
        • 协同过滤召回 ==> top-N cate/brand ==> 关联对应的广告完成召回
      • 在线处理业务流
        • 数据处理部分:
          • 实时行为日志 ==> 实时特征 ==> 缓存
          • 实时行为日志 ==> 实时商品类别/品牌 ==> 实时广告召回集 ==> 缓存
        • 推荐任务部分:
          • CTR点击率预测模型 + 广告/用户特征(缓存) + 对应的召回集(缓存) ==> 点击率排序 ==> top-N 广告推荐结果
    2. 涉及技术:Flume、Kafka、Spark-streming\HDFS、Spark SQL、Spark ML、Redis
      • Flume:日志数据收集
      • Kafka:实时日志数据处理队列
      • HDFS:存储数据
      • Spark SQL:离线处理
      • Spark ML:模型训练
      • Redis:缓存

1.4 点击率预测(CTR–Click-Through-Rate)概念

  • 电商广告推荐通常使用广告点击率(CTR–Click-Through-Rate)预测来实现

    点击率预测 VS 推荐算法

    点击率预测需要给出精准的点击概率,比如广告A点击率0.5%、广告B的点击率0.12%等;而推荐算法很多时候只需要得出一个最优的次序A>B>C即可。

    点击率预测使用的算法通常是如逻辑回归(Logic Regression)这样的机器学习算法,而推荐算法则是一些基于协同过滤推荐、基于内容的推荐等思想实现的算法

    点击率 VS 转化率

    点击率预测是对每次广告的点击情况做出预测,可以判定这次为点击或不点击,也可以给出点击或不点击的概率

    转化率指的是从状态A进入到状态B的概率,电商的转化率通常是指到达网站后,进而有成交记录的用户比率,如用户成交量/用户访问量

    搜索和非搜索广告点击率预测的区别

    搜索中有很强的搜索信号-“查询词(Query)”,查询词和广告内容的匹配程度很大程度影响了点击概率,搜索广告的点击率普遍较高

    非搜索广告(例如展示广告,信息流广告)的点击率的计算很多就来源于用户的兴趣和广告自身的特征,以及上下文环境。通常好位置能达到百分之几的点击率。对于很多底部的广告,点击率非常低,常常是千分之几,甚至更低

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/34913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LangChain-ChatGLM在WIndows10下的部署

LangChain-ChatGLM在WIndows10下的部署 参考资料 1、LangChain ChatGLM2-6B 搭建个人专属知识库中的LangChain ChatGLM2-6B 构建知识库这一节:基本的逻辑和步骤是对的,但要根据Windows和现状做很多调整。 2、没有动过model_config.py中的“LORA_MOD…

validation之自定义注解@Constraint

前言: 首先,接口参数校验应该都不陌生,大部分应该都会借助javax.validation进行快捷校验,一般都是在入参字段上添加NotNull、NotEmpty等,对于一些特殊的入参校验逻辑,可能不是很适用,现在介绍一…

【ECMAScript】ES6-ES11学习笔记

文章目录 注意事项1.声明变量2.定义常量3.解构赋值4.模板字符串5.简化对象写法6.箭头函数7.参数默认值8.rest参数9.扩展运算符10.Symbol11.生成器函数12.Promise基本语法13.集合set14.Map15.类class16.数值扩展17.对象私有属性18.对象方法扩展19.js文件模块化20.async和await21…

数据库操作不再困难,MyBatis动态Sql标签解析

系列文章目录 MyBatis缓存原理 Mybatis的CachingExecutor与二级缓存 Mybatis plugin 的使用及原理 MyBatis四大组件Executor、StatementHandler、ParameterHandler、ResultSetHandler 详解 MyBatisSpringboot 启动到SQL执行全流程 数据库操作不再困难,MyBatis动态S…

Neo4j之MATCH基础

1】基本匹配和返回:查找所有节点和关系,返回节点的标签和属性。 MATCH (n) RETURN n;2】条件筛选:查找所有名为 "Alice" 的人物节点。 MATCH (person:Person {name: Alice}) RETURN person;3】关系查询:查找所有和 &q…

Centos7.6 安装mysql过程全记录

在centos 7.6上 离线安装mysql 的步骤,可参考下文: 一、查看当前MySQL的安装情况并卸载 1. 查看当前MySQL的安装情况 查找之前是否安装了MySQL rpm -qa|grep -i mysql 2.卸载mysql 如果已经安装mysql,则需要先停止MySQL,再删除…

YOLOv5、YOLOv8改进:MobileViT:轻量通用且适合移动端的视觉Transformer

MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer 论文:https://arxiv.org/abs/2110.02178 1简介 MobileviT是一个用于移动设备的轻量级通用可视化Transformer,据作者介绍,这是第一次基于轻量级CNN网络性…

LeetCode150道面试经典题--单词规律(简单)

1.题目 给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。 2.示例 pattern"abba" s "c…

SpingBoot-Vue前后端——实现CRUD

目录​​​​​​​ 一、实例需求 ⚽ 二、代码实现 🏌 数据库 👀 后端实现 📫 前端实现 🌱 三、源码下载 👋 一、实例需求 ⚽ 实现一个简单的CRUD,包含前后端交互。 二、代码实现 🏌 数…

[树莓派]ImportError: libcblas.so.3: cannot open shared object file

尝试在树莓派4b安装opencv-python,出现以下错误,ImportError: libcblas.so.3: cannot open shared object file: No such file or directory 解决方法,安装依赖 sudo apt install libatlas-base-dev 再次import cv2就不会报这个错误。

约束综合中的逻辑互斥时钟(Logically Exclusive Clocks)

注:本文翻译自Constraining Logically Exclusive Clocks in Synthesis 逻辑互斥时钟的定义 逻辑互斥时钟是指设计中活跃(activate)但不彼此影响的时钟。常见的情况是,两个时钟作为一个多路选择器的输入,并根据sel信号…

八、解析应用程序——分析应用程序(1)

文章目录 一、确定用户输入入口点1.1 URL文件路径1.2 请求参数1.3 HTTP消息头1.4 带外通道 二、确定服务端技术2.1 提取版本信息2.2 HTTP指纹识别2.3 文件拓展名2.4 目录名称2.5 会话令牌2.6 第三方代码组件 小结 枚举尽可能多的应用程序内容只是解析过程的一个方面。分析应用程…

小龟带你敲排序之冒泡排序

冒泡排序 一. 定义二.题目三. 思路分析(图文结合)四. 代码演示 一. 定义 冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元…

【深度学习】再谈向量化

前言 向量化是一种思想,不仅体现在可以将任意实体用向量来表示,更为突出的表现了人工智能的发展脉络。向量的演进过程其实都是人工智能向前发展的时代缩影。 1.为什么人工智能需要向量化 电脑如何理解一门语言?电脑的底层是二进制也就是0和1&…

Arduino+esp32学习笔记

学习目标: 使用Arduino配置好蓝牙或者wifi模块 学习使用python配置好蓝牙或者wifi模块 学习内容(笔记): 一、 Arduino语法基础 Arduino语法是基于C的语法,C又是c基础上增加了面向对象思想等进阶语言。那就只记录没见过的。 单多…

全国各城市-货物进出口总额和利用外资-外商直接投资额实际使用额(1999-2020年)

最新数据显示,全国各城市外商直接投资额实际使用额在过去一年中呈现了稳步增长的趋势。这一数据为研究者提供了对中国外商投资活动的全面了解,并对未来投资趋势和政策制定提供了重要参考。 首先,这一数据反映了中国各城市作为外商投资的热门目…

Effective Java笔记(31)利用有限制通配符来提升 API 的灵活性

参数化类型是不变的&#xff08; invariant &#xff09; 。 换句话说&#xff0c;对于任何两个截然不同的类型 Typel 和 Type2 而言&#xff0c; List<Type1 &#xff1e;既不是 List<Type 2 &#xff1e; 的子类型&#xff0c;也不是它的超类型 。虽然 L ist<String…

Oracle自定义函数生成MySQL表结构的DDL语句

1. 自定义函数fnc_table_to_mysql create or replace function fnc_table_to_mysql ( i_owner in string, i_table_name in string, i_number_default_type in string : decimal, i_auto_incretment_column_name in stri…

Linux 文件查看命令

一、cat命令 1.cat文件名&#xff0c;查看文件内容&#xff1a; 例如&#xff0c;查看main.c文件的内容&#xff1a; 2.cat < 文件名&#xff0c;往文件中写入数据&#xff0c; Ctrld是结束输入 例如&#xff0c;向文件a.txt中写入数据&#xff1a; 查看刚刚写入a.txt的…

Yolov5(一)VOC划分数据集、VOC转YOLO数据集

代码使用方法注意修改一下路径、验证集比例、类别名称&#xff0c;其他均不需要改动&#xff0c;自动划分训练集、验证集、建好全部文件夹、一键自动生成Yolo格式数据集在当前目录下&#xff0c;大家可以直接修改相应的配置文件进行训练。 目录 使用方法&#xff1a; 全部代码…