在tensorflow中使用wide&deep模型(1)-模型及应用场景简介

1、概述

人工智能的最终目的是为了模拟人的思维状态。而相对于传统的程序而言,人脑的工作机制是非常复杂的。总体来讲人脑的主要功能有一下两个:

  • 记忆
  • 推理

记忆是对已经见过的物体的总结能力,而推理是将这里记忆数据进行泛化,也就是推广到未知事物的能力。能否使用机器学习模型来模拟这两方面的能力呢。本章节将使用wide&deep模型来实现。如下图所示:

在该模型中我们将wide模型由于特征提取,来实现记忆功能。使用该功能对于特征的筛选,异常的检测都非常有效,但无法对新的数据进行推理。而deep模型可以很好的解决这个问题。

2、wide&deep模型的应用场景

wide&deep模型对于稀疏输入通用大规模回归和分类问题很有用,例如推荐系统,搜索和排名问题。例如我们想做一个快餐店的推荐系统。实现这样的推荐系统的方法有很多,当然不同的实现方法带来的效果也是不同的。

2.1 第一版:使用传统的程序开发来实现推荐系统

我们使用用户的消费记录,来为其他用户推荐产品,不如用户吃了一道菜就给该菜品加1分。在产品冷启动时,我们会随机推荐评分最高的几个菜品供用户选择。当这样的一个程序上线之后我们可以遇见他的效率并不高,因为他的匹配规则相当粗暴,而且无法对用户喜好产生推理,而且推荐的内容过于单一,所以我们需要使用机器学习来优化该推荐系统。

2.2 第二版:使用wide模型

在这个版本中我们希望使用tensorflow训练一个线性模型,该模型通过消费数据来计算推荐项目与消费项目的概率模型,而不是单纯的进行项目匹配。该模型以以下面概率函数来作为最终优化目标

P(消费|查询,项目)

第二版的主要是根据查询推荐给你最容易消费的的项目,例如,模型以及从历史数据中发现如下组合(查询=“炸鸡”,item =“鸡肉和华夫饼”)消费概率很高,而(查询=“炸鸡”,项目=“鸡肉炒饭”)即使项目匹配更高,也不会被推荐出来。

模型结构如下图所示:

2.3 第三版:使用deep模型

使用wide模型实现的推荐程序上线之后我们很快发现,这种推荐方式非常的死板,无法对新推出的菜品进行推荐,换句话说,wide模型仅仅实现了人脑的记忆功能,对于没有见过的事物是无法发现以及推荐的。此时我们使用deep模型来解决这个问题,使用深度模型我们可以通过他们在词向量空间中的距离来判断相似与相近的项目从而发现新的菜品并推荐给用户。

模型结构如下图所示:

2.4 第四版:wide&deep模型

但单单使用深度模型会发现模型会忽视原始数据的特征,而非常宽泛的推荐一些不相关的产品。所以两个模型结合会更好,这就是我们提高的wide&deep模型。

模型结构图如下图所示:

使用wide&deep模型会兼顾记忆与推理的能力,既保证了推荐系统的多样性,也保证了推荐系统的相关性与准确性,类似推荐系统的场景应用该模型的表现会尤为出色。

猜你喜欢

转载自blog.csdn.net/amao1998/article/details/81901916