【推荐算法系列六】WideDeep模型

news/2024/5/19 23:41:20 标签: 推荐算法, 算法, 机器学习

文章目录

    • 参考资料
  • 模型结构
    • 模型的记忆能力
    • 模型的泛化能力
    • 问题

参考资料

  • 见微知著,你真的搞懂Google的Wide&Deep模型了吗?
  • keras实现的代码参考

模型结构

在这里插入图片描述
它是由左侧的 Wide 部分和右侧的 Deep 部分组成的。Wide 部分的结构太简单了,就是把输入层直接连接到输出层,中间没有做任何处理。Deep 层的结构稍复杂,就是 Embedding+MLP 的模型结构。

Wide 部分的主要作用是让模型具有较强的“记忆能力”(Memorization),而 Deep 部分的主要作用是让模型具有“泛化能力”(Generalization),因为只有这样的结构特点,才能让模型兼具逻辑回归和深度神经网络的优点,也就是既能快速处理和记忆大量历史行为特征,又具有强大的表达能力,这就是 Google 提出这个模型的动机。

模型的记忆能力

所谓的 “记忆能力”,可以被宽泛地理解为模型直接学习历史数据中物品或者特征的“共现频率”,并且把它们直接作为推荐依据的能力 。
但这类规则有两个特点:一是数量非常多,一个“记性不好”的推荐模型很难把它们都记住;二是没办法推而广之,因为这类规则非常具体,没办法或者说也没必要跟其他特征做进一步的组合。
为什么模型要有 Wide 部分?就是因为 Wide 部分可以增强模型的记忆能力,让模型记住大量的直接且重要的规则,这正是单层的线性模型所擅长的。

模型的泛化能力

“泛化能力”指的是模型对于新鲜样本、以及从未出现过的特征组合的预测能力。
这就体现出泛化能力的重要性了。模型有了很强的泛化能力之后,才能够对一些非常稀疏的,甚至从未出现过的情况作出尽量“靠谱”的预测。
我们学过的矩阵分解算法,就是为了解决协同过滤“泛化能力”不强而诞生的。因为协同过滤只会“死板”地使用用户的原始行为特征,而矩阵分解因为生成了用户和物品的隐向量,所以就可以计算任意两个用户和物品之间的相似度了。这就是泛化能力强的另一个例子。

在这里插入图片描述

提了一个 Memorization of feature interaction ⇒ wide part,
deep neural networks can generalize better to unseen feature combinations through low-dimensional dense embeddings learned for the sparse features.

Memorization can be loosely defined as
learning the frequent co-occurrence of items or features and
exploiting the correlation available in the historical data.
Recommendations based on memorization are usually more topical and
directly relevant to the items on which users have already
performed actions.
memorization

部分倾向于对已经反馈过的历史数据,学习其中的关系。

Generalization, on the other hand, is based on transitivity
of correlation and explores new feature combinations that have never or rarely occurred in the past.
Generalization

cross-product transformation

ϕ k ( x ) = ∏ i = 1 d x i c k i c k i ∈ 0 , 1 \phi_k(x) = \prod_{i=1}^d x_i^{c_{ki}} \quad c_{ki} \in {0,1} ϕk(x)=i=1dxickicki0,1

在这里插入图片描述

问题

  • cross-product transformation 部分是只适用于one-hot 之后的分类特征吗?那么当分类特征的量很大的时候,这个组合的量不会非常之大吗?
  • 也就是说,这个部分是手动构建的,而不是自动生成的。

http://www.niftyadmin.cn/n/5395649.html

相关文章

消息队列-kafka

kafka和redis的区别 数据类型和用途: Kafka: Kafka是一个分布式消息队列系统,主要用于高吞吐量的消息发布和订阅。它可以用于构建实时流处理应用、日志收集和传输、事件驱动架构等场景。Redis: Redis是一个内存数据库,…

C#理论 —— WPF 应用程序Console 控制台应用

文章目录 1. WPF 应用程序1.1 工程创建1.2 控件1.2.1 控件的公共属性1.2.1 TextBox 文本框1.2.1 Button 按钮 *. Console 控制台应用1.1 工程创建 1. WPF 应用程序 1.1 工程创建 Visual Studio 中新建项目 - 选择WPF 应用程序; 1.2 控件 1.2.1 控件的公共属性 …

新火种AI|微软扶持下一个OpenAI?Mistral AI新模型对标GPT-4,上线即挤爆

作者:一号 编辑:美美 OpenAI的大金主微软,还想缔造“下一个OpenAI”。 周一晚间,成立仅9个月的Mistral AI正式发布了最强力的旗舰模型Mistral Large。和此前他们所推出的一系列模型不同,Mistral AI本次发布的版本性…

4、正则表达式、本地存储

一、正则表达式 1、定义 用事先定义好的一些特定字符,这样的字符组合,组合成一个“规则字符串” 2、正则的组成 特殊字符 字母、数字、下划线、中文、特殊字符… 元字符(常用) 1、\d 匹配至少有一个数字 var reg /\d/ /…

DeepBI实现AI结合数据仓库做智能数据分析VS传统BI工具

#AI数据分析# 传统数据分析如同一座巍峨的大山,每一步都让人感到沉重和艰难。从数据采集、存储、筛选、整合,到人工预测和技术实现,这些繁琐的过程如同攀登峭壁,既艰难又耗时。 然而,随着AI时代的到来,De…

非同质化权益(NFR):重塑数字资产权益的生态系统

每天五分钟讲解一个互联网知识,大家好我是啊浩 随着区块链技术的深入发展和普及,数字资产已经逐渐渗透到我们生活的方方面面。在这一背景下,非同质化权益(NFR)作为一种新型的数字资产形式,不仅为数字资产权…

libigl 网格等值线

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 网格的等值线(contour lines)是在二维或三维空间中表示等值集合的线条。在二维空间中,等值线通常用于表示具有相同数值的等高线(等值线图),而在三维空间中,等值线则用于表示具有相同数值的等值面(等值面图)…

编程笔记 html5cssjs 090 JavaScript 文档对象模型

编程笔记 html5&css&js 090 JavaScript 文档对象模型 一、文档对象模型二、Javascript编程中文档对象的组成DOM 的主要组件:事件(Events)属性(Properties)方法(Methods) 三、编程应用四…