2018年8月2日星期四

KDD2018 | 电商搜索场景中的强化排序学习:形式化、理论分析以及应用

本文主要贡献如下:

(1)对电商搜索场景中的多步排序问题进行形式化描述,定义搜索会话马尔科夫决策过程问题模型(Search Session Markov Decision Process, SSMDP);

(2)从理论上分析 SSMDP 的性质,并证明累积奖赏最大化对于多步排序问题的必要性;

(3)提出全新的策略梯度算法 Deterministic Policy Gradient with Full Backup Estimation(DPG-FBE),解决了 SSMDP 中奖赏值方差较大以及奖赏分布高度不平衡的问题。

一. 背景

在任何一个电商平台中(如:淘宝、亚马逊等),商品搜索都是一项基础性的服务。用户通过商品搜索引擎对目标商品进行搜索、浏览、比较,进而选取自己满意的商品购买。本文关注商品搜索场景中对商品进行打分排序的问题。具体地,商品排序问题可以从一个搜索会话中用户与搜索引擎之间交互的角度来进行描述:(1)用户进入搜索引擎,输入 query;(2)对候选商品进行打分排序,并从中选取分数最高的前 K(比如:K=10)个商品进行展示;(3)用户在商品展示页面上进行浏览、点击、购买、翻页等操作;(4)当用户选择翻页时,搜索引擎将对未展示商品进行重新排序,然后又展示分数最高的前 个商品;(5)这一过程将持续进行下去直到用户退出搜索会话(比如:发生购买或者放弃搜索)。

用户在搜索会话中的操作(比如:点击商品)是反映用户对商品偏好的信号。从统计的角度来看,这些信号可以用来学习排序打分函数,使得用户更喜爱的商品(比如:点击率更高的商品)能够有更高的排序分数或次序。Learning to Rank(LTR)方法正是基于这样的思想而提出。早期基于监督学习的 LTR 方法大致可以分为 Point-wise LTR、Pair-wise LTR 以及 List-wise LTR。最近十多年,在线学习的理论模型和技术也被很多研究者将引入到 Learning to Rank 领域中,使得一系列 Online LTR 方法被相继提出,如:BatchRank [1]、 CascadeKL-UCB [2]、RankedExp3 [3] 等。

尽管 LTR 研究领域蓬勃发展,但现有的 LTR 方法基本上都无法直接用于电商搜索场景中的商品排序问题。其原因在于,同一个搜索会话中的不同排序决策之间是存在一定相关性的。举一个直观的例子,用户在一页一页浏览商品时,看过的商品必然会对用户如何看待后续页面上的商品产生影响。然而,现有的 LTR 方法并没有考虑这种相关性,对每一个排序决策步骤均独立看待。为了利用这种同一搜索会话中不同排序决策步骤之间的相关性,本文提出将强化学习(Reinforcement Learning)应用于商品排序问题中,并考查最大化累积奖赏这种机制在其中的具体作用。本文接下来的内容包括对商品排序问题的形式化建模、理论分析、新型算法设计以及实验结果。

二. 搜索排序问题形式化

如前所述,在淘宝、天猫等电商平台的商品搜索场景中,对商品的打分排序是一个多步顺序决策问题。本节将提出搜索会话马尔科夫决策过程模型(Search Session Markov Decision Process, SSMDP),作为对搜索排序问题的形式化定义。在此之前,我们通过手机淘宝中具体的例子复述用户和搜索引擎之间的会话过程,加强直观感受。

图 1. 手机淘宝中搜索会话示意图

如图所示,用户和搜索引擎之间的搜索会话过程为:

(1)用户在手机淘宝的搜索框中输入「可乐」作为 query,并点击「搜索」按钮。 (2)搜索引擎执行一次商品排序,并展示第一个可乐商品页面。

(3)用户浏览第一个商品展示页,并点击其中某些商品进入详情页。

(4)用户发现并没有满意的商品,于是向下滑动手机屏幕,提出翻页请求。

(5)搜索引擎接到翻页请求,执行第二次商品排序,并展示第二个可乐商品页面。 (6)经过若干次这样的「翻页-排序-浏览」回合,搜索会话将最终在用户购买某个可乐商品或者放弃浏览时结束。

2.1 搜索排序问题建模

我们首先对搜索会话过程中的上下文信息和用户行为进行建模,定义商品页、商品页历史、成交转化率等概念,它们是定义状态和状态转移关系的基础。

定义 1. [Top K List]


给定商品集合 D,排序函数 f,以及一个正整数,关于 D 和 f 的 top K list,记为 ,是用函数f对 D 中商品进行打分以后的前 K 个商品的有序列表。其中,是排在第 k 位的商品(),并且对于任意,都有

定义 2. [Item Page]

令 D 为关于某个 query 的商品全集,为一个页面能够展示的商品数量。对于一个搜索会话的任意时间步 t (),其对应的 item page  是关于的第(t-1)步的打分函数  和未展示商品集合  的 top K list 。对于初始时间步 t = 0,有。对于其他任意时间步 ,有 

定义 3. [Item Page History]

令 q 为一个搜索会话的 query。对于初始时间步 t = 0,对应的初始 item page history 为 。对于任意其他时间步 ,对应的 item page history 为。在这里,为第(t - 1)步的 item page history,为第 t 步的 item page。

对于任意时间步骤 t,item page history  包含了用户在 t 时刻能够观察到的所有上下文信息。由于商品全集 D 是一个有限集合,不难发现一个搜索会话最多包含  个 item page。对于搜索引擎来讲,它在一个搜索会话中最多决策  次。根据我们之前的数据分析,不同的用户会在不同的时间步上选择购买或者离开。如果我们把所有用户看作一个能够采样出不同用户行为的 environment,就意味着这个 environment 可能会在任意时间步上以一定的成交转化概率(conversion probability)或者放弃概率(abandon probability)来终止一个搜索会话。我们形式化定义这两种概率如下。

定义 4. [Conversion Probability] 


 对于一个搜索会话中的任意 item page history  ( t > 0 ),令  表示用户在观察到  之后发生购买行为的随机事件,则  的 conversion probability,记为 ,就是事件  在  下发生的概率。

定义 5. [Abandon Probability]


对于一个搜索会话中的任意 item page history  ( t > 0 ),令  表示用户在观察到  之后离开搜索会话的随机事件,则  的 abandon probability,记为 ,就是事件  在  下发生的概率。

由于  是在(t - 1)时刻的 item page history  上执行动作  的直接结果,因此  和  也表征了 Agent 在 上执行动作  之后环境状态的转移:(1)以  的成交概率终止搜索会话;(2)以  的离开概率终止搜索会话;(3)以 的概率继续搜索会话。方便起见,我们对用户继续进行搜索会话对概率也进行形式化描述。


定义 6. [Continuing Probability] 


对于一个搜索会话中的任意 item page history  ( t > 0 ),令  表示用户在观察到  之后继续停留在会话中的随机事件,则  的 continuing probability,记为,就是事件  在  下发生的概率。

显然,对于任意 item page history h,都有成立。特殊地,对于初始 item page history 来讲,是一个必然事件(即)。这是因为在第一个 item page 展示给用户前,不可能存在成交转化事件和离开事件。

2.2 搜索会话马尔科夫决策过程

基于上面定义的几个概念,我们可以定义 search session MDP(SSMDP)如下:

定义 7. [Search Session MDP] 

令 q 为某个 query,D 为和 q 相关的商品全集,K 为一个页面可展示的商品数量,关于 q、D 和 K 的 search session MDP 是一个元组,记为。该元组中的每个要素分别为:


  •  为搜索会话最大决策步数,

  •  为关于 q 、D 和 K 的所有可能的 item page history 的集合,其中 为 t 时刻所有可能 item page history 的集合

  •  为状态空间,是包含所有的继续会话事件的非终止状态集合(nonterminal state set),分别是包含所有成交转化事件和离开事件的终止状态集合(terminal state set),

  • A 为动作空间,包含搜索引擎所有可能的排序打分函数,

  •  为奖赏函数,

  •  为状态转移函数,对于任意时间步、任意 item page history  和任意动作 ,令 ,则 agent 在状态  上执行动作 a 后,环境转移到任意状态  的概率为

在一个 Search Session MDP 中,Agent 是搜索引擎,环境是所有可能用户共同构成的总体。环境的状态表征了用户总体在对应 item page history 下的动向(继续会话、成交或离开)。动作空间 可以根据任务需要进行设定(例如:离散的动作空间或连续的动作空间)。环境状态的转移则直接基于我们之前定义的成交转化概率(conversion probability)、放弃概率(abandon probability)以及继续会话概率(continuation probability)。奖赏函数与具体的任务目标高度相关,我们将在下一节进行讨论。

2.3 奖赏函数

在一个 Search Session MDP 中,奖赏函数 R 是对每个状态下的每个动作的即时效用的量化评估。具体地,对于任意的非终止状态 ,任意动作 ,以及任意其他状态 表示在状态 s 中采取动作 a,并且环境状态转移到 s' 的情况下,Agent 从环境获得的即时奖赏期望。因此,在搜索排序问题中,我们必须将用户在每个商品展示页面的反馈信息(翻页、点击、购买等)转化为学习算法能够理解的奖赏值。

在 online LTR 研究领域,用户的点击反馈被广泛用作定义奖赏值的基础 [1,4,5]。然而,在电商场景中,买家和卖家之间的成功交易要比用户点击更加重要。基于阿里巴巴让天下没有难做的生意的使命,也就是,我们定义的奖赏函数将尽可能多地促进用户与卖家之间的交易。对于任意时间步 、任意 item page history  和任意动作 ,令 。在观察到 item page history ,用户将以  的平均概率购买商品。尽管不同的用户会选择不同的商品进行购买,但从统计的角度来看,在  上发生的成交转化事件对应的商品成交价格必然会服从一个特定的分布。我们用  表示 item page history    的成交价格期望,则 agent在状态  上执行动作 a 并且环境转移到任意状态  的奖赏定义如下:

在这里, 为  上发生的成交转化事件对应的终止状态。从我们的奖赏函数定义可以看到,Agent 只有在成交发生时才能从环境获得正的奖赏。在其他情况下,Agent 获得的奖赏值都是零。需注意,任意 item page history 的成交价格期望通常是未知的。在具体应用中,我们可以用每一次的实际成交价格作为对应成交事件的奖赏信号。

三. 理论分析

在将 Search Session MDP 模型进行实际应用之前,我们需要对一些细节做出说明。本节将首先证明 Search Session MDP 的状态具有马尔可夫性质,以证明该理论模型是良定义的。然后我们将在上一节给出的奖赏函数的基础上对折扣率进行理论分析,证明在搜索排序问题中最大化长期累积奖赏的必要性。

3.1 马尔可夫性质

上一节定义的 search session MDP(SSMDP)可以看作是 MDP 模型的一个实例,但要保证 SSMDP 是良定义的,我们需要证明 SSMDP 中的状态都具有马尔可夫性质(Markov Property)。马尔可夫性质指的是对于任意的状态动作序列

,都有如下等式成立:

也就是说,当前状态 的发生概率仅仅取决于最近一个状态动作对 ,而并非整个序列。我们可以证明对于一个 SSMDP,它的所有状态都具有马尔可夫性质。

命题 1

对于任意 search session MDP ,其状态空间 S 中的任意状态都具有马尔可夫性质。


证明:

我们只需证明对于任意时间步  和关于 t 的任意状态动作序列,都有等式  成立即可。

除了状态  以外,序列  中的其他所有状态都是非终止状态(non-terminal state)。根据状态的定义,对于任意时间步

,必然存在一个 item page history  与状态  相对应,且有

。因此,整个序列可以重写为 。需注意的是,对于任意时间步 ,都有

成立。其中, 也就是关于  时刻的动作  和未展示商品  的 top K list。给定 ,集合  一定是确定的。所以, 也就是状态动作对  的必然和唯一结果。那么事件  也就能够等价地表示为事件 。基于此,我们可以进行如下推导:

第三步推导成立是由于对于任意时间步  都包含在  中。类似地,第四步推导成立是由于事件  已经包含了  的发生。

3.2 折扣率

在这一小节我们将讨论本文最重要的问题:延迟奖赏(delay reward)对于搜索排序的优化到底有没有作用?简单地来说,也就是 search session MDP 的折扣率(discount rate)到底应该设多大。在任意 MDP 中,折扣率 y 的大小直接决定了 future rewards 在 agent 的优化目标中所占比重。我们将分析优化长期累积奖赏与优化搜索引擎的经济指标这两个目标之间的关系给出答案。

令  为一个关于 query q、商品全集 D 和正整数 K ( K > 0 ) 的 SSMDP。给定一个确定性策略 ,记每个时间步 

对应的 item page history 为 ,我们把在策略 下能够访问的所有状态都展示在图 2 中。

图 2. Search Session MDP 在固定策略 下能够访问的所有状态示意图

在这个图中,红色的节点表示 item page history,注意它们并不是 SSMDP 的状态。方便起见,在本文接下来的部分,我们将把  和 

分别简化记为  和 

不失一般性,我们设 SSMDP  的折扣率为 。由于 SSMDP 是一个有限时间步 MDP(finite-horizon MDP),所以折扣率可以取到 1。对于任意时间步 ,状态  的 state value 为

其中,对任意  为 agent 在未来时刻 (t + k)的 item page history  中收到的即时奖赏。根据我们奖赏函数的定义, 在策略  下的期望值为 。在这里,为 item page history  的成交价格期望。由于  表达的是在  发生的条件下的长期累积奖赏期望,所以我们还要把从  到达 item page history 的概率考虑进来。记从状态  到达  的概率为 ,根据状态转移函数的定义可以得到

从状态  到 item page history  的概率为 1 是因为  是状态动作对 

 的直接结果。将上面的几个公式综合起来,我们可以进一步计算  如下:

根据图 2 中展示的每个 item page history 的 conversion probability 以及成交价格期望,我们也可以将搜索引擎在策略  的作用下在一个搜索会话中引导的成交额期望表达出来,即

通过比较  和 ,不难发现当折扣率 y = 1 时,有  成立。也就是说,当 y = 1 时,最大化长期累积奖赏将直接带来搜索引擎成交额的最大化。当 y < 1 时,由于  是  的上界,所以最大化  并不一定能够最大化

命题 2

令  为任意 search session MDP。对于任意确定性策略  和折扣率 ,都有式子  成立,其中  为 agent 在策略 和折扣率 y 下的状态值函数, 为搜索会话的初始状态,  为搜索引擎在策略 下的单次搜索会话成交额期望。并且仅当 y = 1 时,有  成立。

证明:

我们只需证明当 y < 1 时,有  成立。这是显然的,因为二者之差,即 在 y < 1 时一定为正。

至此,我们可以回答之前提出的问题:站在提高搜索引擎成交额的角度,搜索排序问题中考虑延迟奖赏是必要且必须的。从理论上,这是因为最大化无折扣累积奖赏能够直接优化搜索引擎的成交额。究其深层原因,是因为用户在搜索商品的每个步骤(即每个 item page history)的行为都是基于之前观察到的所有信息(或者大部分信息)做出的反应,这天然决定了搜索排序问题的序列决策本质。

四. 算法设计

本节将提出一个全新的策略梯度算法,用于学习 Search Session MDP 的最优排序策略。采用策略梯度算法能将排序策略用参数化的函数来表示,并直接对策略函数的参数进行优化。这能够同时解决 Search Session MDP 中排序策略的表示以及大规模状态空间的难题。我们首先在 Search Session MDP 的语境下对策略梯度方法进行简要回顾。另  为一个 Search Session MDP,为参数化的排序策略函数,其参数为 。Agent 的学习目标是找到最优的策略函数参数,使得它在所有可能状态-动作-奖赏轨迹中的 -步回报最大:

在这里,为形如 的状态-动作-奖赏轨迹,它服从策略参数为  时的轨迹概率分布  为轨迹  对应的 -步回报。需注意的是,如果在轨迹  中到达终止状态的步数小于 ,那么对应的奖赏和  将在那个状态进行截断。优化目标  关于参数  的梯度为

其中, 表示在轨迹  中,从时间步 t 到时间步 之间的奖赏之和。此梯度更新公式是著名的REINFORCE 算法 [6] 的核心。Sutton 等人提出的策略梯度定理(policy gradient theorem)[7] 提供了更加一般的策略梯度更新方法。一般地, 的梯度为

在这里, 为策略 下的状态动作值函数。如果策略 是一个确定性策略(deterministic policy),那么  的梯度可以重写为

Silver 等人证明了确定性策略梯度(deterministic policy gradient)[8] 是一般性的随机策略梯度(stochastic policy gradient)在策略方差趋近于 0 时的极限。状态动作值函数  可以通过蒙特卡洛估值方法(Monte Carlo evaluation)或时间差分方法(temporal-difference learning)进行估计。例如,REINFORCE 算法采用的就是蒙特卡洛估值方法,而 Sutton 等人提出的演员评论家方法(actor-critic method)[9] 则采用的是时间差分方法对值函数进行估计。

我们基于确定性策略梯度算法(deterministic policy gradient,DPG)[8] 提出学习 Search Session MDP 最优排序策略的算法。我们并没有基于更一般的随机策略梯度方法,因为计算随机策略的梯度通常需要更多样本,且这一点在高维动作空间问题中更为明显。然而,在 Search Session MDP 中,对状态动作值函数  进行估计面临两个难点。首先,Agent 在每个状态上所能获得的即时奖赏具有很大的方差。从奖赏函数的定义可以看到,任意状态动作对(s, a)对应的即时奖赏要么为 0,要么为 (s, a)对应的 item page history 的成交价格期望 m(h),而 m(h)的值通常比  0 大很多。对  进行估计的第二个难点在于每个状态上的即时奖赏分布的高度不平衡。对于任意状态动作对(s, a),由(s, a)引导的成交转化事件(产生非零即时奖赏)发生的概率要远远低于由(s, a)引导的继续会话事件和离开事件(这两类事件产生值为 0 的即时奖赏)。不单是即时奖赏,Search Session MDP 中状态-动作-奖赏轨迹的- 步回报也同样存在方差较高和分布不平衡的问题。这是因为在任何一条可能的状态-动作-奖赏轨迹中,只有最后一步的奖赏值可能为非零。因此,如果简单地采用蒙特卡洛估值方法或者时间差分方法来对 进行估计将会导致不精确的值函数更新,从而影响参数  的优化。

我们解决上述问题的方法类似于基于模型的强化学习方法 [10,11],借助对环境模型(奖赏函数和状态转移函数)的近似估计来完成可信的值函数更新。根据贝尔曼等式,任意状态动作对(s, a)在策略 下的状态动作值为

其中, 表示贝尔曼操作。令为(s, a)引导的 item page history。根据 Search Session MDP 的状态转移函数定义,在环境接收(s, a)之后,只有  这三个状态能够以非零的概率被访问,所以  可以简化为

在这里, 分别为 item page history 对应的成交转化概率、继续会话概率和成交价格期望。一般地,我们会用一个带参函数 来对  进行近似计算,其优化目标是最小化参数 w 的均方误差(MSE,Mean Squared Error)

而 MSE(w)关于 w 的梯度为

由于  未知,我们无法准确地计算出  的值。一个普遍的做法是将 作为  的代替来计算出  的近似值,所以我们可以得到

其中,表示(s, a)引导的 item page history。在我们实际采用随机梯度法来优化  w 时,就能用一种完全回退(full backup)的方式来对 w 进行更新。具体地,对于我们观察到的任意状态动作对(s, a)及其对应的 item page history ,w 的变化量为

在这里, 为学习率, 为 item page history 对应的继续会话事件。这种完全回退的更新方法可以避免单步样本回退方法(one-step sample backup)带来的采样误差。同时,在我们的问题中,这种完全回退方法的计算量并不比单步样本回退方法的计算量大。

我们的策略梯度算法在确定性策略梯度定理 [8] 和对 Q 函数的完全回退估计的基础上提出,我们将其命名为 Deterministic Policy Gradient with Full Backup Estimation (DPG-FBE)。与已有的基于模型的强化学习算法 [10,11] 不同,DPG-FBE 算法并不需要维护完整的奖赏函数和状态转移函数模型,而只需要对 Search Session MDP 中的成交转化概率模型 、继续会话概率模型  和成交价格期望模型  进行建模。任何可能的统计学习方法都可以用来对这三个模型进行在线或离线地训练。DPG-FBE 的细节展示在算法 1 中。

如算法 1 所示,DPG-FBE 算法的策略函数参数 和值函数参数 会在每个搜索会话结束后进行更新。为了保证算法学习到好的排序策略,探索(Exploration)机制必不可少(算法第 行)。对于离散动作空间问题,探索可以通过 -贪心方法实现;而对于连续动作空间问题,探索则可以通过对 的输出添加高斯噪音来实现。DPG-FBE 算法并未对策略函数 和值函数 采用的具体模型做任何假设,但由于 Search Session MDP 通常具有很大的状态空间和动作空间,所以我们建议尽量采用非线性模型(例如:神经网络)来进行学习。为了确保学习的稳定性以及解决函数近似带来的收敛性问题,样本池(replay buffer)和目标更新(target update)等 [12, 13] 在深度强化学习中广泛应用的技巧,也建议在 DPG-FBE 算法的具体实现中采用。

五. 实验与分析

为了对 DPG-FBE 算法的性能进行验证,我们进行了两组实验。在第一组实验中,我们构建了一个简易的在线购物模拟器,并对 DPG-FBE 算法以及目前最新的几个 online LTR 算法进行对比测试。在第二组实验中,我们将 DPG-FBE 算法在淘宝搜索引擎中进行投放,以检验其实际应用效果。

5.1 模拟实验

模拟实验中使用的在线购物模拟器基于淘宝中部分商品和用户的统计信息构建。其中,商品被表示为形如 的 n 维特征向量。搜索引擎的排序动作也是一个 n 维向量,我们用 来表示。对于任意商品 

,它在排序动作  作用下的打分为  和  的内积 。我们选择了连衣裙类目商品的 20 个重要商品特征,并根据这些特征的分布进行随机采样,生成了 1000 个虚拟的商品。搜索会话中展示给用户的每一个商品页面包含 10 个商品。因此,一个搜索会话最多会包含 100 轮排序。用户在每个商品展示页面的行为(比如:点击、购买、离开等)通过用户行为模型进行模拟,该模型是从淘宝的连衣裙类目的用户行为数据中构建的。在一个搜索会话中,给定最近展示的 个商品展示页面,用户行为模型将输出用户点击商品、购买商品、继续会话以及离开会话的概率。一个搜索会话将在用户购买商品或者离开会话时结束。

我们采用深度神经网络作为策略函数和值函数的模型,实现了 DPG-FBE 算法的深度强化学习版本 DDPG-FBE。同时,我们也实现了 DPG 算法的深度强化学习版本,即 DDPG 算法 [13]。环境的状态是从当前搜索会话的最近 4 个商品页面中抽取的 180 维特征向量。DDPG-FBE 和 DDPG 两个算法的网络结构和参数采用相同的设置:(1)actor 和critic 网络都采用 2 个全连接的隐层,第一个隐层包含 200 个单元,第二个隐层包含 100 个单元,隐层所有单元的激活函数都是 \textit{relu};(2)actor 网络的输出层包含 20 个单元,每个单元的激活函数为 \textit{tanh},critic 网络的输出层只有 1 个单元,无激活函数;(3)actor 网络的输出会作为输入接到 critic 网络的第二个隐层前;(4)actor网络和 critic 网络的参数通过 Adam 算法进行优化,学习率分别为  和 ;(5)目标网络的更新比例 设置为 。我们设置了 0、0.1、0.5、0.9 和 1.0 五组折扣率,分别测试 DDPG-FBE 算法和 DDPG 算法在不同折扣率下的性能。同时,为了和两个强化学习算法进行对比,我们也实现了五个 online LTR 算法:point-wise LTR 算法、BatchRank 算法 [1]、CascadeUCB1 算法 [2]、CascadeKL-UCB 算法 [2] 和 RankedExp3 算法 [3]。同 DDPG-FBE 和DDPG 类似,我们实现的 point-wise LTR 算法学习也是在搜索会话的每个状态下输出一个 20 维的排序权重向量。我们采用深度神经网络作为 point-wise LTR 的模型,并用 logistic regression 算法对其进行训练,训练目标为最大化总成交额。其他的 online LTR 算法则是基于的多臂老虎机模型的遗憾最小化算法(regret minimization algorithm)。对每个算法的测试包含 100,000 个搜索会话,我们记录下被测算法在每个搜索会话中引导的成交额,并将结果展示在图 3、图 4 和图 5 中。

图 3. DDPG-FBE 算法在模拟实验中的测试结果

图 4. DDPG 算法在模拟实验中的测试结果

图 5. 五个 online LTR 算法在模拟实验中的测试结果

首先考察 DDPG-FBE 算法的测试结果。从图 3 中可以看到,随着折扣率 y 变大,DDPG-FBE 算法的性能逐渐改善。DDPG-FBE 算法在折扣率 y = 0 时引导的成交额要远远低于它在其他折扣率下引导的成交额。由于 y = 0 表示只考虑最大化即时奖赏,这样的结果也就说明延迟奖赏在搜索排序决策中的重要性。不难发现,DDPG-FBE 算法在折扣率 y = 1 时引导的成交额最大(比第二好的结果高出 2%),这也进一步验证了我们在上一节给出的理论结果。值得一提的是,在淘宝搜索这样的大规模场景中,即便是 1% 的提升也是很可观的。同样地,DDPG 算法也是在折扣率 y = 1 时引导了最高的成交额。然而,与 DDPG-FBE 算法相比,DDPG 算法并没有学到很好的排序策略。如图 4 所示,DDPG 算法所有的学习曲线最终在 y 轴方向都没有超过 40,而 DDPG-FBE 算法在 y = 1 时最终收敛到 55 左右。我们测试的 5 个 online LTR 算法引导的成交额都没能超过 DDPG 算法引导的最高成交额。由于这些算法并非为多步排序决策问题所设计,所以这样的结果并不奇怪。

5.2 搜索排序应用

第二个实验是一个实际的应用。我们将 DDPG-FBE 算法应用到淘宝搜索引擎中,提供实时在线商品排序服务。淘宝的搜索任务面临两大挑战,一个是大量在线用户导致的高并发度的需求,另一个则是对用户所产生的海量数据的实时处理。具体来说,淘宝搜索引擎每秒需要同时响应数十万计的用户的搜索请求,并同时处理这些用户产生的行为数据。在大促活动中(比如:天猫双十一),在淘宝中产生的数据量以及数据产生速度都要比平时高数倍。

图 6. 基于数据流的强化学习排序系统构架

为了满足对高并发度和海量数据处理的需要,我们设计了一套基于数据流的强化学习商品排序系统,并在此基础之上实现 DPG-FBE 算法。如图 6 所示,整个系统主要包含五个部分:查询规划器(关键词 planner)、排序打分器(ranker)、日志中心(log center)、强化学习组件和在线 KV 系统(online KV system)。从图中可以看到,系统的工作过程由两个循环构成:其中一个循环代表用户和搜索引擎之间的交互过程(图中右下角的循环),也是搜索引擎执行排序动作的地方,我们称其为 online acting loop;另一个循代表学习算法的训练过程(图中靠左的大循环),我们称其为 learning loop。这两个循环通过日志中心和在线 KV 系统相连接。

在 online acting loop 中,每当有用户发出商品页面的请求时,查询规划器(关键词 planner)将抽取当前搜索会话的状态特征,从在线 KV 系统中获取当前的排序策略模型参数,从而计算出当前状态下搜索引擎的排序动作。在这之后,排序打分器(ranker)将接收这个排序动作,对商品进行打分,并将 Top K 商品展示到一个商品页面中。用户看到该商品页面之后,就能对页面上的商品进行相应的操作。与此同时,用户在商品页面上的各种行为将会以日志的形式记录到日志中心,作为训练学习算法的数据源。在日志中心,从不同搜索会话中产生的用户日志数据都会转化为形如 (s,a,r,s')的训练样本。这些样本将以数据流的形式不断地输出给强化学习组件,用于策略模型参数的更新。每当策略模型有更新时,新的模型将被写入在线 KV 系统。这时,搜索引擎就可以采用更新后的排序策略来产生排序动作,对商品进行排序。需注意的是,整个系统的两个循环是并行的,但并非同步。这是因为,用户在搜索会话中产生的行为日志并不能立即被用来对算法进行训练。

我们仍然采用模拟实验中线性点乘模式对商品进行排序。搜索引擎的排序动作是 27 维的权重向量。在一个搜索会话中,环境的状态是一个 90 维的特征向量,包含了当前搜索会话中的用户特征、关键词特征和商品页面特征。与模拟实验不同,淘宝中的搜索排序服务面向所有类型的用户,且对输入关键词没有任何限制,所以我们也将用户和关键词的信息加入到状态中。我们仍然采用神经网络作为策略函数和值函数的模型,两个网络都包含两个全连接隐层。其中,第一个隐层包含 80 个单元,第二个隐层包含 60 个单元。由于淘宝搜索排序服务对实时性能和数据快速处理有很高的要求,所以实验中策略函数和值函数模型的网络规模要比模拟实验中采用的网络规模小很多。我们在基于数据流的强化学习商品排序系统中分别实现了 DDPG 和 DDPG-FBE 算法,并进行了为期一周的 A/B 测试。在每天的测试中,DDPG-FBE 算法引导的成交额都要比 DDPG 算法引导的成交额高 2.7%~4.3%。在 2016 年的双十一当天, 我们也将 DDPG-FBE 算法进行了线上投放。同基准的算法相比 (一个离线训练的 LTR 算 法),DDPG-FBE 算法带来了 30% 的成交额提升。


参考文献

[1] Masrour Zoghi, Tomas Tunys, Mohammad Ghavamzadeh, Branislav Kveton, Csaba Szepesvari, and Zheng Wen. 2017. Online Learning to Rank in Stochastic Click Models. Proceedings of the 34th International Conference on Machine Learning (ICML'17), 4199–4208.

[2] Branislav Kveton, Csaba Szepesvari, Zheng Wen, and Azin Ashkan. 2015. Cas- cading bandits: Learning to rank in the cascade model. In Proceedings of the 32nd International Conference on Machine Learning (ICML'15), 767–776.

[3] Filip Radlinski, Robert Kleinberg, and Thorsten Joachims. Learning di- verse rankings with multi-armed bandits. In Proceedings of the 25th international conference on Machine learning (ICML'08), 784–791.

[4] Sumeet Katariya, Branislav Kveton, Csaba Szepesvari, Claire Vernade, and Zheng Wen. 2017. Stochastic Rank-1 Bandits. In Artificial Intelligence and Sta- tistics. 392–401.

[5] Paul Lagree, Claire Vernade, and Olivier Cappe. 2016. Multiple-play bandits in the position-based model. In Advances in Neural Information Processing Systems (NIPS'16). 1597–1605.

[6] Ronald J Williams. 1992. Simple statistical gradient-following algorithms for connectionist reinforcement learning. Machine learning 8, 3-4 (1992), 229–256.

[7] Richard S Sutton, David A McAllester, Satinder P Singh, and Yishay Mansour. 2000. Policy gradient methods for reinforcement learning with function approxi- mation. In Advances in Neural Information Processing Systems (NIPS'00). 1057– 1063.

[8] DavidSilver,GuyLever,NicolasHeess,ThomasDegris,DaanWierstra,andMar- tin Riedmiller. 2014. Deterministic policy gradient algorithms. In Proceedings of the 31st International Conference on Machine Learning (ICML'14). 387–395.

[9] R.S. Sutton and A.G. Barto. 1998. Reinforcement Learning: An Introduction. MIT Press.

[10] Michael Kearns and Satinder Singh. 2002. Near-optimal reinforcement learning in polynomial time. Machine Learning 49, 2-3 (2002), 209–232.

[11] Ronen I. Brafman and Moshe Tennenholtz. 2002. R-MAX - A General Poly- nomial Time Algorithm for Near-Optimal Reinforcement Learning. Journal of Machine Learning Research 3 (2002), 213–231.

[12] VolodymyrMnih,KorayKavukcuoglu,DavidSilver,AndreiARusu,JoelVeness, Marc G Bellemare, Alex Graves, Martin Riedmiller, Andreas K Fidjeland, Georg Ostrovski, et al. 2015. Human-level control through deep reinforcement learning. Nature 518, 7540 (2015), 529–533.

[13] Timothy P Lillicrap, Jonathan J Hunt, Alexander Pritzel, Nicolas Heess, Tom Erez, Yuval Tassa, David Silver, and Daan Wierstra. 2015. Continuous control with deep reinforcement learning. arXiv preprint arXiv:1509.02971 (2015)


论文地址:https://ift.tt/2n8SMvG

]]> 原文: https://ift.tt/2KiUV0Z
RSS Feed

机器知心

IFTTT

文因互联 CEO 鲍捷:确保搞砸人工智能项目的十种方法

鲍捷博士于5月10日在将门创投的线上 talk 中盘点了人工智能项目的大坑小坑,选出了看上去非常反常识的十个经典坑

这是一篇大实话合集,但别绝望,最后将会放出从二十年踩坑经验中总结出的彩蛋,共勉。

作者介绍

鲍捷博士,文因互联 CEO。拥有20年学术界和工业界的相关经验。美国Iowa State University人工智能博士,RPI博士后,MIT访问研究员,W3C OWL(Web本体语言)工作组成员,前三星美国研发中心研究员,三星问答系统SVoice第二代系统核心设计师。主要研究领域涵盖人工智能的诸多分支,包括机器学习、神经网络、数据挖掘、自然语言处理、形式推理、语义网和本体工程等,发表了70多篇领域内相关论文。是中文信息学会语言与知识计算专委会委员,中国计算机协会会刊编委,W3C顾问会员会代表。2010年以来关注金融智能化的研究和应用,成果有XBRL语义模型,基于知识图谱的基本面分析、金融问答引擎、财务报告自动化提取、自动化监管等。


以下为演讲原文:


鲍捷博士:我今天的题目是《确保搞砸人工智能项目的十种方法》,按照这十种方法,基本上可以搞砸项目。(笑)

之所以能够讲这个题目,是因为我自己之前也搞砸过很多项目,下面列表里超过一半的项目最后是失败的:

我开始想,为什么大部分的项目最后做不成?

我经历了好几次很痛苦的时刻,比如刚到RPI(伦斯特理工学院)做博士后,这个学校有全美做知识图谱最好的实验室,实验室的James Hendler和Deborah Mcguinness,都是这个领域最好的老师。

我在那里做了一个知识管理系统,在我看来,我们是世界上最好的语义网实验室,也是最专业的一群人,不用这个技术来武装自己好像说不过去,所以我就做了一个语义检索系统,但是后来没有人用。

我就在反思到底问题在哪,为什么这行真正最好的专家,做出这样一个系统,连自己都不用?

我不停地在想,人工智能项目失败的核心原因到底有哪些?

当然,后来经历了更多的失败。基于这些直接或者间接失败的经历,我逐渐总结出来确保一个项目会失败的一些原因。这些原因很多时候看起来是反直觉的,我会逐一地跟大家讲。

在最后,我也会总结如果想要避免这10个坑,应该做什么。

NO.1 一下子砸很多的钱

第一种确保你的项目失败的方法:一下子砸很多的钱。

我目前也在创业,有VC问我:"你们做的这个事,如果BAT砸很多的钱,是不是就一下子能赶上你们?"

我说不会,通常举的例子,就是日本的五代机。当初日本举全国之力,砸了几百亿日元,最终没有做成。

五代机是什么?1970年代末是人工智能的第一次冬天开始回升的时候。80年代开始进入人工智能第二个高峰。这时候,日本启动了一个新的项目,叫第五代计算机。

什么叫第五代计算机?前四代计算机,分别是电子管的、晶体管的、集成电路的,和大规模集成电路的。日本到第五代计算机的时候,他们认为要想做人工智能,就必须用人工智能的专有硬件。


(《知识信息处理系统的挑战:第五代计算机系统初步报告》中第五代计算机系统概念图)

这个话是不是听起来很耳熟?最近在做深度学习的时候,看到了很多关于深度学习芯片的想法。这个想法并不新,因为在30年前,日本人在五代机的计算里,就已经有这样的想法了,只是当时的人工智能芯片,不是现在深度学习的芯片,而是Prolog的芯片。

Prolog是人工智能的一种语言,主要是一种逻辑建模语言。如果能够用Prolog来建计算机,计算机就可以进行思维,可以处理各种各样认知的任务。这是一个非常大型的国家项目,最终花了几百亿日元,耗掉10年时间以后,在1992年,终于胜利地失败了。

这不是个例,很多大型的项目,最后都失败了。

一开始砸很多钱,为什么还会失败?你要想,做一个项目,通常是有目标的。当你有一个大预算的时候,你的目标通常也定得很高。像五代机的目标,不单当时是做不到的,三十年后的今天,也是做不到的。

虽然五代机失败了,但是日本的人工智能技术,在五代机的研发当中得到了很大的提升,所以到了20年后,语义网兴起的时候,日本的语义网研究水平还是相当好的,那些钱没有白花,它培养了很多的人才。

在日本做五代机的同时,美国也有类似的研究,主要是LISP machine,LISP是人工智能的另外一种语言,也是逻辑建模的语言。其中有一个公司叫think machine。当时至少有100家LISP公司。

为什么单独要提到think machine?创始人在失败之后沉寂了一段时间,开了一个新的公司叫MetaWeb,MetaWeb是2005年的时候成立的,这个公司有一个产品叫Freebase,用Wikipedia做了一个很好的知识库。

2010年这个公司被谷歌收购,改名叫谷歌知识图谱。所以今天谷歌的知识图谱有很多历史渊源,可以追溯到30年前LISP machine的研究里面。

罗马不是一天建成的,所以一下子砸很多钱,就会导致项目的目标过高,从而导致这个项目有极大的失败概率。

我曾经遇到过一个大型国企的人,他跟我说,他们要花3000万建一个企业内部知识管理系统。我就问他,你那个3000万是怎么投的?他说我第一年就要投3000万。然后我没说话,因为我的想法是这个项目一定会失败。后来这个项目的的确确失败了。

也有一些大公司投比这还多得多的钱来做AI项目。这些都不一定让事情更容易成功。

这是第一种方法,一下子砸很多钱。

NO.2 根据最新论文来决定技术路线

第二种方法:根据最新的论文来决定技术路线,这可能也是一个反常识的事情。

因为最新的技术不是最好的技术,要注意,在工程领域里面,通常面临着实际的约束来解决问题的。而论文是一种实验室的环境,是不一样的。

比如说实验室里,可以假设有一些数据,可以假设这些数据已经被集成了,被清洗了,是没有噪声的。可以假设目标是清晰的,但所有的这些假设在现实中都不一定成立的。

最好的例子,就是信息抽取,这是2013年的EMNLP上的一篇文章,我拆出来的图。

这个图告诉我们做NLP的论文和实际的工业系统所采用的技术路线有什么不一样的地方。

从2003年到2012年整整10年,学术界所发表的自然语言处理论文的实体抽取子领域里,完全用机器学习的方法论文占到了75%,混合机器学习和基于规则的方法论文占到了21%,完全只用规则方法的论文,只有百分之一点几,非常低的比例。但是当看到工业界的实际应用的时候,发现了完全不同的技术占比分布,用规则方法的占到了45%。

如果光看大型的供应商,比如说IBM这样的公司,67%的软件是完全基于规则方法的。完全基于统计方法即machine learning方法的软件,在所有的供应商那里占33%,在大型的供应商那里只占了17%。

所以从学术界的研究到工业界的实践,有一个非常巨大的差异。为什么会有这样的差异?就是我刚才提到的,在发表论文的时候,完全不需要考虑现实中所会遇到的那些约束条件。在知识提取、实体提取领域,尽管现在从理论上来说,已经解决了,比如说实体识别问题、NER问题、分词问题,但是到了真正现实的语料中,发现这些方法都不好用。这也可以用另外一个问题来验证这一点,就是问答系统。

今天看到大部分的论文——我没有做精确的统计,只是基于模糊定性的看法——能看到大部分发表的问答系统的论文都是基于统计方法的。特别是这两年基于NLP的方法,尤其是基于端到端的方法的。无一例外,能够真正在工业中应用起来的问答系统,除了小冰这样的闲聊系统之外,真正的面向解决任务型的问答系统,全部都是用规则系统的。我还不知道哪一个是用深度学习的,当然也可能有用在某一个具体的细节,或者某一个组件上面,我没有见到过用于整体架构上。

所以当决定一个工程问题技术路线的时候,不一定要按照最新的论文趋势来做这件事情,甚至,论文和十年之后的技术都不一定有相关性。一定要根据现实的情况,根据现实的约束,来决定技术路线。

NO.3 脱离真正的应用场景

第三种方法:如果脱离了真正的应用场景,项目就注定会失败。

这里我用OWL2来说明。OWL2是一种语言,对于做语义网的同学们很熟悉了。

在Web上所知道的所有的这些标准化的格式,比如说HTML都是W3C,即万维网联盟设计的。万维网联盟也会负责Web上其他的协议,其中有一个协议叫OWL。它是在讲,在互联网上如何表达我们的知识。

比如说,一个餐馆要发布它的菜单,该用什么样的格式来发布?或者我现在要在网上发布我的简历,希望被谷歌更好地检索到。我要告诉谷歌,我是一个人,我姓什么,叫什么,出生年月是什么,我应该用什么样的格式发布这样的数据。其中一个格式就是OWL。OWL的第一个版本在2004年发布,第二个版本是在2010年发布。

OWL WORKING GROUP比较活跃的工作组的成员里面,有相当多的知名大学的老师,还有一些知名公司的科学家,包括IBM、Oracle、惠普。你们注意到,我刚才提到这些大公司的时候,有一些名字没有出现,比如说谷歌和Facebook。

OWL2本来希望想做的事情,是设计如何在网上表达并发布日常生活衣食住行信息的。但是,最终工作组成员的构成,一种是大学研究人员,另外一种是大公司做企业级应用的,大部分是远离场景的。

最终设计出来的产品,也就是OWL2语言,脱离了真正想去服务的那个场景。OWL WORKING GROUP在开会的时候,写了大概好几十个应用案例,但是大部分的案例都是这样的:一个制药公司要做一个药,应该怎么表达制药的知识,或者一个医生如何表达病历、疾病或基因,大体上都是这样的应用。没有任何一个案例是在讲述在网上如何找一个朋友,或者如何跟朋友聊天,或者如何去订餐,日常生活中的案例都是没有的。

OWL2最终写出来以后,有600页纸,这是一个非常复杂的语言。事实上,也就是在一些少量的企业级应用里面被用到了,在真正的日常应用当中,成功的案例几乎没有。这就是个典型的脱离了应用场景的项目,所以这个项目,花了很多钱,最终没有达到真实想达到的目标。

NO.4 使用过于领先的架构

第四种方法,使用过于领先的架构。

这也是跟前面第二种方法相呼应的,第二种方法说,你不能根据最新的论文来决定你的技术路线。第四种方法是在讲,如果你使用了一种特别先进的架构,反而有可能导致你的项目失败。

Twine在2007年被称为世界上第一个大规模的语义网的应用。当时是一个明星企业,这个公司到了2010年的时候关门了。为什么?Twine在成立的时候,想做一个语义书签的应用。比如说我读了一篇文章,我觉得很好,把它保存下来,留着以后再读。Twine的机器人就会分析我保存下来的这篇文章到底在说啥,然后给这个文章一个语义标签。如果有人订阅了我的标签,他就可以不断地看到我这个标签下收藏的好东西,就这么一个想法。

Twine在底层用了一个叫RDF的新数据库,RDF是一种语义网的语言,比关系数据库增强很多,它是可以进行推理的数据库。但是当Twine用户量达到200万的时候,它就遇到了一个瓶颈,数据库的性能不够。所以Twine的CEO就决定,开发一个新的数据库。

当时这个公司大概是40个人,用20个人来研发基础性的东西——一个新的语义数据库。2008年的时候,情况还不错,他们发现自己做的东西是个很好的东西,突然就在想,我们做的东西为什么只搜索书签?完全可以搜索整个Web上的东西。于是他们就做了一次转型,去做整个Web的语义搜索。步子太大,就把公司拖死了。到了2008年经济危机爆发的时候,资金链断裂,撑了一年以后就死了。

在死的时候,Twine的CEO Nova Spivack ,是我们领域非常值得尊重的一个先行者,也是一个技术大拿,同时也是一个非常成功的投资人。他就检讨了Twine的失败。他说我试图在太多的地方进行革新,我应该要么革新一个平台,要么革新一个应用,要么革新一个商业模式,但是我似乎在太多的地方都进行革新了,而且我使用了一种非常超前的架构,就是RDF数据库,导致了我要追求的目标太大,我无法达到这个目标。

我想他说的这个话,即使到今天,也是非常值得思考的。

这个项目相关的分析文章,我差不多每过两年都要仔仔细细地看一遍。Twine失败了以后, Nova Spivack 对公司进行了一次转型,成立了一个新的公司叫 Bottlenose,还是用了同样的技术,用在了更聚焦的应用场景上,从2C的服务转到2B的服务上去。

Bottlenose这个公司,到目前为止已经8年时间了,还是很成功的。2B的应用相对而言不太需要这么大量的数据,不用解决系统可伸缩性问题,突出了这个系统最核心的优势,即语义分析和理解能力。

像Twine这样失败的例子是不罕见的。用一个过于先进的架构的时候,通常会面临一开始很难去预期的一些风险,甚至不仅仅是像RDF数据库这样的小众的产品,更加大众的产品,也有可能会遇到这样的情况。

比如说有人经常会问我说,你们做知识图谱的应用,是不是一定要用图数据库?我就通常回答说不一定。

如果你熟悉图数据库,比如说你对 Neo4j 整个运维都非常地熟悉了,你知道它的JAVA虚拟机如果出错的时候,该如何处理;你知道它内存不够的时候,该怎么办;你知道怎么进行数据的分片,知道怎么进行主从的复制……所有这些运维问题都很熟悉的时候,你就可以试一试上这个应用。

在上应用的时候不要太着急,如果你只是一个在线应用,可以放一放,先把离线的这部分运维的工作搞清楚以后,然后再上线,也可以先用一个小数据集试一试。总之,步子不要太大。

NO.5 不能管理用户预期

第五种方法,不能管理用户预期。

这是一个特别常见的项目失败的原因,甚至不是因为技术上做不到,而是用户预期更大。

我先说一个技术上完全做不到的,比如说有一个银行,他们推出了所谓的机器人大堂经理,你可以跟一个机器人对话办理业务。显然,这个东西如果真的能够做到,应该是非常令人吃惊的事情,这已经远远超出当前技术边界。

最近有一个比较有名的骗局,就是机器人索菲亚。沙特阿拉伯还给了它第一个公民的身份,这是一个非常典型的诈骗。

这种类型的机器人是不太可能出现的。

在其他应用当中也会遇到这样的情况,尤其是对话机器人是最容易引起用户的图灵测试欲望。当用户发现跟他对话的是一个机器人的时候,他就会试图去调戏这个机器人。比如很多人都会去调戏siri,所以siri积累了很多段子,准备应对大家调戏。

如果你是提供了一个搜索引擎,那么大家的预期是比较低的。但如果你以一个问答引擎的形式,提供同样的内容,大家的预期就会高很多。

我们最早提供了一个终端级产品,用户的评价就不是特别好,后来我们调整了一下定位,把它调整成用搜索界面来提供服务,系统顶层的智能程度没有太大改变,但是用户的预期和评价马上就好起来了,因为用户预期降低了。这样的语义搜索引擎,相比其他的搜索引擎,其实还是好一些的。

对话机器人其实也一样,如果你给用户的预期,是能够跟他平等对话的机器人的话,通常是很难达到的。用户通常玩一玩就会发现好傻,然后就不玩了,所以大家注意到谷歌机器人跟Apple的siri机器人定位有很大区别,谷歌机器人不仅仅做对话,它能够预先帮你去做一些事情,甚至主动地去帮你做一些自动化的事情,其实这是非常聪明的选择。

目前能够跟人长期进行交互的机器人,其实是一个更加偏秘书型的,或者说它就是一个帮助你进行任务自动化的机器。如果你是立足于对话,其实很难满足用户预期,但是如果你立足于自动化,就比较容易达到用户预期。同样的技术,你用不同的方法去服务用户,用户预期不一样,用户的感觉就完全不一样。所以要尽可能地让用户感知到产品的成熟度,在他的预期之上,这个产品才有可能成功,他才愿意付费。


NO.6 不理解认知复杂性

第六点叫做不能理解认知复杂性。

这个事情我在刚开始的时候就提到了,这个例子就是Semantic Wiki,我写了很多个这样的系统,Semantic Wiki是什么呢?大家肯定都用过维基百科或者百度百科,这只是一个典型的维基系统,有很多人去写一个页面。Semantic Wiki也是基于协作的,也是一个Wiki,只不过在这个Wiki的页面上,你可以打一些标签,加一些注释。

它可以解决什么问题呢?比如可以解决页面之间的数据一次性问题,就是一个页面上的数据,可以流到另外一个页面上去,举个例子,比如说在维基百科上面,可以看到很多国家的GDP,就是国民生产总值,在中国的页面上,会有中国GDP,在亚洲国家的GDP列表上面,也会有中国GDP,然后在世界国家的GDP列表上,也会有中国GDP,那么是不是可以有一个机制,比如在一个页面,写下中国的GDP是多少,只要这个数字改变,其他所有页面上的数字会同步改变,用Semantic Wiki技术就可以做到这一点。当然Semantic wiki还可以做很多很酷的其他的事情,很强大。

我从2004年开始就开始写Semantic Wiki系统,前前后后写了三个Semantic Wiki系统,后来我加入了一个开源社区,叫 Semantic MediaWiki, 基于这样的系统,我做了一个很好的知识管理系统。

2010年我们试图来推广这个系统,当时是做了一个实验,也是一个美国的国家机构委托我们做的,就是要测试用这种协作的知识管理系统来记录一些事件,能不能记录得很好,好到可以后面让机器自动进行处理。

当时做的对比实验是找了一群RPI的计算机系本科生,让他们来看电视连续剧,看完以后描述情节。一部分人用自然语言来进行描述,一部分人用Semantic Wiki,以更加结构化的方式来进行描述。然后再找了学生来分别阅读前两组学生的描述,最后让他们来做题,看哪个组能够更精准地来复原电视剧情节。最后得到的结果发现是用自然语言描述是更容易,就是描述得更精准,速度更快。

然后我们仔细去看那些学生写的结构化的描述,发现是错误百出,比如说张三拥抱了李四,对于一般的所谓有过知识工程训练的人来看,很明显拥抱应该是一个关系,张三和李四应该是两个人,一个是主语,一个是宾语,那么就应该是主谓宾,张三拥抱李四是很清楚的一个知识建模,但是相当多的学生,他们把这么一个特别简单的建模就给搞错了,他们没有办法理解什么叫概念?什么叫关系?什么叫属性?甚至他们不知道什么叫主语和宾语?然后发现在一开始设想这件事情的时候,忽视了绝大多数的人,在他们的教育生涯中比如高中教育里面,是没有结构化思维的训练的,这是一种事先无法意识到的认知复杂性。

由于我们都经过十年以上的训练,所以就完全把这些东西当成是天然的事情。后来在OWL WORKING GROUP也遇到了同样的事情,有人说这个东西太复杂了,其中有一个逻辑学家就抗议说,这东西不复杂,这东西在计算机上跑的时候,它的算法复杂性只是多项式复杂性而已,然后我听了这句话以后,突然意识到了一个事情,就是在这些逻辑学家的脑子里面,他们所提到的复杂性是指一个语言对于机器的复杂性,所以我们通常把它称为计算复杂性。

但是实际上普通人所理解的复杂性不是这样的,比如说你半页纸就能说明白的东西,那是一个简单的东西,如果让我看到20页纸,才能看明白,那这个东西是一个复杂的东西。所以一个技术,你能不能够让程序员用起来,能不能让用户用起来,最核心的事情,你是不是能够让他们在认知上面觉得这东西,一看就懂,一听就懂,一打开就懂,不用解释,这才叫简单。

在很多算法的设计上面也好,文档的设计上面也好,应用的设计上也好,它最终能不能用得好,关键是让人感觉到它简单好用,这就是一个很重要的因素。斯坦福Parser,为什么在NLP领域里面被用的这么广,一个很重要的原因,它的文档写的好,每一个类都有文档,提供了足够多的案例。

所以好的文档可以极大地降低一个产品的认知复杂性,即使你的产品本身是复杂的,你把文档写好,也足以有助于推广这个产品,所以尽可能地让能够接触到你产品的人,不管是搞语言的,搞技术的,搞算法的人都感觉到这东西简单,是保证你的产品成功的一个关键。

NO.7 专业性不足

第七点,这一点就很好理解了,专业性不足。

我经常会遇到这样一些人,说某某公司现在想做一个问答系统,希望投入三五个人,可能大多数情况下没有博士,多数情况下可能就是一个工程人员,试图很快的时间,两三个月之内,甚至三五个月之内,把这样一个东西做出来,也是一种幻想。当然我不会直接说破。

人工智能产品,的的确确是有它的专业性的。很多机构想试图自己去做这样的事情,花了1000万、2000万、3000万冤枉钱,结果做不到。确实,如果没有一个足够专业的人是很难把这种事情给做成的。

我也经历了很多这样的事情,在曾经做过的一个语义理解系统里面,也经历了这样的问题。我想能够完成这样一个系统,实际上是要综合很多不同的算法,不是一个算法就能够解决掉的。比如说,从正面的例子来看,IBM Watson 系统里面有几十种不同的算法,有机器学习的算法,有自然语言处理的算法,有知识图谱的算法。你要把所有的这些算法恰到好处地组合在一起,拿捏的尺度就是一个特别重要的能力。你该用什么样的东西,你该不用什么样的东西。

比如说规则系统,任何一个人都可以写10条正则表达式,这是没有问题的。但是如果你能够写好100条正则表达式,那你一定是一个非常优秀的工程人员,你的软件工程能力很过硬。如果你能够管理好1,000条正则表达式,那你一定是一个科班出身的,有专业级的知识管理训练的人。如果你能够真正地管理好10,000条正则表达式,那你一定是一个有非常丰富的规则管理经验的人。

当然我说的1,000条、10,000条,并不是说你 copy paste 10,000次,改其中几个字,那个不算。人工智能的很多事情,困难就在这儿。你到网上去拿一个什么开源包啥的,你把它做到80%,都很容易做得到。但难度就在于最后的20%,通常可能需要98%、99%的正确率,才能够满足用户的需求,但是如果专业性不够,最后的这些点是非常难的。

打个比方说,你要登月的话,你需要的不是梯子,是火箭。你搬个梯子,最后只能爬到树上去,再也没办法往上走了。你需要的是停下来造火箭,造火箭就是专业性,如果专业性不足,你永远只是停留在80%的水平上,再也升不上去。

回到刚才讲的语义理解的项目。当时就遇到了蛮多困难,要能够集成规则的方法,集成统计的方法,集成自然语言处理的方法。当时全球有很多实验室一起来做这件事情,但缺这样一种角色,能够把所有的尺度拿捏得特别好的。

其实IBM把Watson系统做出来,也是经历了很多内部变迁,包括项目管理人的变化,包括各种技术选型的变化,能够做到这一些,这种人才是非常短缺的。在中国,能够真正从头到尾把一个语义的理解系统架构做好的人,是非常非常少的,也许10个,也许20个,数量确实不多。我相信在其他人工智能领域,也面临着同样的情况。

专业性也不会仅仅只局限于程序或者技术这一块,人工智能的产品经理,人工智能项目的运营,还有整个后面的知识系统,数据的治理,都是需要很专业的人来做,现在这些人才都非常地短缺。

NO.8 工程能力不足

第八种方法就是工程能力不足。

我的博士论文是一个分布式推理机,但因为编程能力不够,一直到我毕业为止,都没有能够把它实现出来。当然后来到了2012年、2013年之后,图计算,包括基于消息交换的图计算出来之后,那时候我再来做分布式推理机就比较容易了。

但这是我特别大的一个教训。

在这之后,我就比较关注,如果做一件事情,先能够把我的工程能力补足。这个工程能力,包括软件工程能力,如何写代码,如何管理代码,如何做系统集成,还有回归测试,如何进行代码的版本控制等等。后来我面试人的时候,也比较关注这些东西。

一个人工智能的技术能不能做得好,核心往往不仅仅是算法,而是底下的架构,还有系统。比如论文中其实是很好的分布式推理算法,但是我因为缺少这个架构,就没有办法把这个东西实现出来。后来像深度学习也是这样的。最近看到陈天奇他们的实验室,把算法、架构、操作系统都放在一个实验室里面来运作,觉得这是一个特别好的事情。目前算法和架构之间的裂缝太大了。

工程是解决人工智能的核心钥匙。如果代码能力不行,架构能力不行,工程能力不行,在这个情况下,根本就不应该去谈算法。优先应该把工程能力补起来,然后再谈算法。

NO.9 阵容太豪华

第九点,阵容太豪华。

这一点不太好说具体的项目是什么,太敏感了。

但是我就从逻辑上给大家讲一下。因为一个项目如果太豪华,核心的问题就是沉没成本。

我们也经常看到一些初创公司,不管是从商务上,还是从技术上,特别优秀的人组成了一个公司,最后还是会失败。为什么?因为比较优秀的人,就是想要做大的事情。一个大的事情,很难一下子就做对。通常大的事情,是从小的事情成长起来的。如果我们不能够让豪华的阵容,从小事做起,通常这样一个事情是会失败的。

逻辑很简单,我就不多说了。

NO.10 时机不到,运气不好

第十点,我可以把所有其他的因素丢到这儿,就是时机不到、运气不好。

其实可以把所有其他的事情都归结为运气不好。

比如说我们现在看深度学习,比如像attention、卷积、LSTM、联想记忆等等所有这些概念在90年代,我读研究生的时候,这些概念都已经有了,但是当时是做不到的。当时即使有了这些算法,也没有这样的算力,即使有了这样的算力,没有这样的数据。

在2000年的时候,我在硕士毕业之后,就在研究一种分层的多层神经网络。我们把它称为hierarchical neural network,跟后来深度学习的想法非常接近。我带着这个想法,去见我的博士导师。说我想继续沿着这个方向往前走,但他说现在整个神经网络都已经拿不到投资了,你再往前走,也走不下去,所以后来就放弃了这个方向,准备做语义网了。10年之后,这个方法终于找到了机会,后来就变成了深度学习的东西。

很多时候,时机不到,即使你有这个算法,你也做不到。90年代的神经网络,差不多花了10年的时间,才等到了自己的复苏。

知识图谱也是一样的,知识图谱大概也等了十几年的时间,到了最近这几年才真正地得到了大规模的应用。

总结

让我们来取个反,做个总结:

最后一点,时机和运气再啰嗦一下。

很多时候,我们是真的不知道这件事情能不能做得成,也真的不知道,自己处于什么样的历史阶段。很难预言未来是什么,但是至少有一点,如果我们多去了解一些算法层面的发展,包括人工智能的发展史,包括相关的这些技术的发展史,能够更好地理解未来。

所以我也推荐一下尼克老师的《人工智能简史》这本书。我看了两遍都挺有收获的。看了这东西,能更多地理解什么是时机,什么是运气。

有时候我也经常会读一些经典的文章,十年前或20年前的书,我读了还是挺有启发的。比如说,今年我又把Tim Berners-Lee《编织万维网》那本书又重新读了一遍,读了一遍以后,我就坚定信心了。

知识图谱这样一个互联全世界的记忆的系统,大概率到2030年能够实现,这还是一个很遥远的时间,但是根据历史规律,应该到2030年能实现了。

一方面,降低我们现在的预期,另一方面也给我们前进更大的鼓励。

场景跃迁理论

刚才反反复复提到了,要控制用户的预期,控制自己的预期。做一个项目,要从小到大,循序渐进。最后把所有的东西抽象到更高层面上,我自己总结为一个理论,叫场景跃迁理论。

这个理论的核心,是说一个人工智能的公司需要多次的产品市场匹配,就是Product-Market Fit。如果提供了一个产品,市场恰恰需要,而这个市场恰恰又很大,就说得到了一个产品市场匹配。

经典的互联网创业,通常做一次产品的市场匹配,就可以成功了。但人工智能往往要做好几次,互联网公司和人工智能公司很不一样。

一个称为养鸡场模式,一个称为养小孩模式。

互联网公司是一种养鸡场模式,它是一个大规模的复杂系统Complex system。它的关键是可扩展性。我养了一只鸡,我发现这只鸡不错,我养1万只鸡,这就是养鸡场模式。核心就是如何能养一万只鸡,这就叫可扩展性。

人工智能应用是另外一种类型的复杂系统,叫Complicated system,它是有非常多的组件,通常是上百种奇奇怪怪的组件组合在一起。它的核心并不是养一万只鸡,更多像养小孩一样,生完孩子,从小给他换尿布,给他喂奶,教他走路,教他说话,逗他玩,小学、中学、大学,一路把他养大,每一个阶段所面临的主要任务都不一样。你如何能够让这小孩成长,我们把它称为可演进性,这才是AI公司最核心的因素。

把一个AI的公司给养大,其实是特别不容易的事情。就跟养小孩一样,往往前5年的时间,都在搭团队,搞基础,特别辛苦。公司存活的观念就是,如何能够在演进的过程中,逐步地挣钱,而不是试图一步到位地找到市场产品结合点。不仅仅是在人工智能的阶段要挣钱,在人工智障的阶段,也要能够挣钱。

没有一个完整的系统,怎么能挣钱?只能够把系统中的某些组件拿出去,做部分的商业化。就好像毛毛虫到蝴蝶一样,毛毛虫要蜕皮,蜕好几次,才能变成一个蝴蝶。毛毛虫阶段,它要吃树叶子,在蝴蝶那个阶段,它是要吃花蜜,所以它在两个不同的阶段,它的商业模式是完全不一样的。人工智能公司也要蜕好几次皮。在早期的时候,因为产品还不够完善,所以人工智能公司早期都是外包公司,这是正常的,就应该接受,这是发展必经的阶段。

总结今天所说的一切,人工智能是一种新兴的事物,它是非常复杂的东西。很难用传统的旧经验来套这样一种东西的发展,必须经过很长时间的演化,才能够达到成熟的状态。而这个演化力才是我们想做一个成功的商业的尝试,最关键的因素。如何保证在一次又一次的场景跃迁当中,团队不散架,这样的能力,才是决定了某一个商业上面能不能成功的最大的关键。

我觉得不仅仅是商业,不管是在学校里做研究也好,还是在大型跨国公司里做研究也好,很多道理都是一样的。就是如何能够循序渐进地,从小到大地来做,谢谢大家!

]]> 原文: https://ift.tt/2Koewg3
RSS Feed

机器知心

IFTTT

TensorFlow 1.9终于对树莓派张开了怀抱:加入官方支持

2015 年首次推出 TensorFlow 时,我们的初衷是希望它成为一个面向所有人的「开源机器学习框架」。为此,我们想在拥有更多用户的平台上运行。一直以来,我们支持 Linux、MacOS、Windows、iOS 和安卓。然而,尽管很多贡献者不懈努力,在树莓派上运行 TensorFlow 还是很艰难。现在,由于与树莓派基金会的合作,我们很高兴地告诉大家,可以使用 Python pip 包系统从预先构建的二进制文件中在树莓派上安装 TensorFlow 1.9 了!如果正在运行 Raspbian 9(stretch),你可以通过从终端运行以下两个命令来安装它:

sudo apt install libatlas-base-dev pip3 install tensorflow 

然后就可以运行 python3,可以在任何你想用的平台上使用 TensorFlow,下面是简单的「hello world」的例子

# Python import tensorflow as tf tf.enable_eager_execution() hello = tf.constant('Hello, TensorFlow!') print(hello) 

如果系统输出如下,就可以开始编写 TensorFlow 程序了:

如果想了解在 TensorFlow 网站的树莓派上安装 TensorFlow 及故障解决的更多细节,请戳:https://ift.tt/2mBgJLN

TensorFlow 支持树莓派令人感到兴奋,因为后者拥有诸多富有创造力的开发者,在编程教学方面也有广泛应用。因此,简化 TensorFlow 的安装可以帮助我们将机器学习介绍给更多的人。我们已经看到 DonkeyCar 等平台使用 TensorFlow 和树莓派创造自动驾驶玩具汽车。二者结合的难度已经降低,我们迫不及待想看到新项目的启动。

Eben Upton 是树莓派的创始人,他说:「现代计算机教育必须兼顾基础知识和前沿话题。考虑到这一点,我们很高兴能与谷歌合作,将 TensorFlow 机器学习移植到树莓派平台上。我们希望看到各个年龄的孩子们用它创造有趣的应用。」我们非常同意他的观点!

我们希望看到更多的教材和教程出现,能够帮助越来越多的人在这个经济、灵活的设备中探索机器学习的可能性。


原文链接:https://ift.tt/2LP97nV

]]> 原文: https://ift.tt/2KmFRza
RSS Feed

机器知心

IFTTT

探智立方iQubic正式发布人工智能模型自动设计平台DarwinML 1.0——从「零」快速自动设计,全生命周期管理,实时优化生产模型

8 月 2 日,人工智能专业企业探智立方 (Intelligence Qubic, iQubic) 公司正式发布了人工智能模型自动设计平台 DarwinML 1.0。该平台以自动化机器学习(AutoML)为核心技术,以基因进化理论为设计思想,用户只需要具备人工智能基本概念,即可设计开发机器学习深度学习模型,从而缩短建模人员及数据科学家创建模型的时间,降低门槛,提升效率,满足面向定制化场景的人工智能模型创建需求。探智立方首席运营官施东峰表示,公司将基于 DarwinML 的创新技术能力,以普惠 AI 为理念,使 DarwinML 成为人工智能模型设计开发的最佳工具。公司还将以快速建立定制化模型为服务目标,从模型设计、共享、迁移、生产的角度打造一个满足金融、物联网、教育、医疗等行业用户人工智能需求的平台。
左起:探智立方首席科技官钱广锐、产品总监宋煜、首席运营官施东峰、解决方案总监徐宁

大幅加速人工智能模型设计 DarwinML 颠覆 AI 游戏规则

人工智能的广泛应用是未来几年最具颠覆性的行业趋势之一,但大量行业用户在人工智能业务实践中发现,业界既有的人工智能模型无法完全满足业务需求,对人工智能模型进行定制化的设计开发不仅耗时较长,还需要大量人工智能技术与人才资源的支撑。人工智能技术的应用长期裹足不前,市场普遍需要能够大幅降低人工智能模型设计开发门槛的解决方案和开发工具。在此背景下,人工智能业界提出了 AutoML 的概念,即通过自动化的机器学习来实现人工智能模型的快速构建。

基于 AutoML 的理念,探智立方推出了人工智能模型自动设计平台 DarwinML。探智立方首席科技官钱广锐博士表示:「在开展机器学习深度学习模型设计的实践中,我们发现,大量企业最棘手的问题是时间,模型设计时间过长不仅会消耗大量资源,也会导致模型的建立滞后于业务需求。因此,我们尝试将模型优化的过程抽象成一个纯数学问题,然后利用机器的强大计算力,以搜索进化的方式,在尽可能短的时间内寻找全局最佳解决方案。我们希望通过 DarwinML 这一人工智能工具,将该能力复制到更多的行业应用中,帮助用户快速开展人工智能应用。」

探智立方首席科技官钱广锐博士

与传统基于专家的人工智能模型设计方式相比,DarwinML 能够针对客户数据,自动生成和优化符合业务场景的最优人工智能模型,将开发 AI 模型这一传统意义上由专家驱动的工作流程,转化成为业务驱动的工作流程,分析师和开发者无需关注模型建立的过程就能快速建立整套的模型,从而更加聚焦人工智能给业务带来的创新。DarwinML 拥有完全自主开发的模型基因库、模型进化算法等核心技术,提供了自我进化学习能力,可以与时俱进加快模型设计收敛速度。DarwinML 旨在打造业界「最好用」的人工智能模型设计平台,其采用图形化界面,使用操作简便性高,可直接面向需开发人工智能模型的业务人员,以「日」为单位完成模型设计,大幅加速人工智能模型设计,缩短人工智能赋能业务落地周期。

DarwinML 具备自我演化、自主设计的特性,能够大幅度降低人的参与和影响,其采用自动化数据特征提取、数据扩征和「自主学习」等技术,有效解决低质量数据标注的影响和对大量标注数据数量的依赖,让模型的准确率能够快速提升到相当高的水平。而且,DarwinML 还实现了机器学习模型的全生命周期管理,能够无缝与生产系统对接,并对生产模型实时优化。

为人工智能赋能 探智立方目标实现全球前三

在人工智能快速发展的浪潮下,机器学习模型设计需求快速增长与人工智能人才供给不足的矛盾发展的必然结果,就是 AutoML 能力的普及化,由此可能会带来超过百亿的市场规模。而在全球范围内,AutoML 产品与解决方案都处于探索期,探智立方凭借全球领先的核心技术与先发的市场优势,有望在为人工智能注入更多势能的同时,颠覆全球人工智能市场。

探智立方首席运营官施东峰对于公司的战略发展进行了阐述,他表示:「探智立方不仅将提供以 DarwinML 为核心的平台软件及服务,帮助企业用户降低人工智能模型设计所需人员技术门槛及时间,还在销售模式上进行了创新。我们正在推动建立人工智能共享云平台,提供线上模型设计定制化服务,为企业人工智能定制化提供更具敏捷性的解决方案。我们希望通过 3-5 年的努力,能够取得 AutoML 领域中国市场的领先地位,并实现全球覆盖与横向拓展。」

随着 AutoML 解决方案的广泛实施,人工智能的开发门槛将大幅降低,模型设计的主体将由人工智能专家演变为普通开发者,这将彻底重构当前的人工智能开发生态。为了给个人开发者提供服务,探智立方还将发布 DarwinML 的个人版本,支持个人开发者快捷的设计人工智能模型,并以开源的方式建立社群,这有望打造成为人工智能开发者的「Windows」系统,形成更富活力的人工智能生态。

关于探智立方 iQubic

探智立方成立于 2017 年,是一家专业的人工智能公司。公司的发展方向为基于 AutoML 的概念开发人工智能模型自动设计平台 - DarwinML,以降低人工智能模型设计的门槛及所需时间,将人工智能普世化,让各行业的 IT 人员、行业专家能更简便地将人工智能落地于各种适合并需要的场景中。基于 DarwinML,公司以建立一个完整的人工智能生态圈为目标,包括企业人工智能云服务,共享云平台及开发者社区,从各个维度满足企业级客户对人工智能的期望与需求。探智立方主要创始人及核心团队均来自全球大型 IT 企业,具备扎实的理论基础,成功的产品研发案例及经验和强大业务拓展能力,目前已与数家大型企业及合作伙伴进行合作。欲了解更多,请访问: http://www.iqubic.net。 

]]> 原文: https://ift.tt/2O36dZx
RSS Feed

机器知心

IFTTT

CVPR 2018论文解读 | 基于域适应弱监督学习的目标检测

本期推荐的论文笔记来自 PaperWeekly 社区用户 @Cratial本文是东京大学发表于 CVPR 2018 的工作,论文提出了基于域适应的弱监督学习策略,在源域拥有充足的实例级标注的数据,但目标域仅有少量图像级标注的数据的情况下,尽可能准确地实现对目标域数据的物体检测。

关于作者:吴仕超,东北大学硕士生,研究方向为脑机接口、驾驶疲劳检测和机器学习

■ 论文 | Cross-Domain Weakly-Supervised Object Detection through Progressive Domain Adaptation

■ 链接 | https://ift.tt/2vafxE0

■ 源码 | https://ift.tt/2ABZjs9

引出主题 

虽然深度学习技术在物体检测方面取得了巨大的成功,但目前的物体检测技术主要面向的对象是真实场景下的图像,而对于像水彩画这种非真实场景下的物体检测任务来说,一般很难获取大量带有标注的数据集,因此物体检测问题就变得比较棘手。

为解决这一问题,本文提出了基于域适应的弱监督学习策略,其可以描述为:(1)选取一个带有实例级标注的源域数据;(2)仅有图像级标注的目标域数据;(3)目标域数据的类别是源域数据类别的全集或子集。

论文的任务就是在源域拥有充足的实例级标注的数据,但目标域仅有少量图像级标注的数据的情况下,尽可能准确地实现对目标域数据的物体检测。这个任务的难点主要在于目标域没有实例级的标注,因此无法直接利用目标数据集对基于源数据集训练的模型进行微调。

针对这一问题,作者提出了两种解决方法:

1. 域迁移(domain transform,DT):即利用图像转换技术,如CycleGAN将源域数据转换为和目标数据相似的带有实例级的图像;

2. 伪标记(pseudo-labeling,PL):利用伪标记来对目标域数据产生伪实例级标注。两种方法如图 1 所示:

▲ 图1

为验证该策略的有效性,作者分别采集并手工标注了三个分别具有实例级标注的目标数据集:Clipart1k,Watercolor2k,Comic2k。

数据集及代码见:

https://ift.tt/2vg6iBY

数据集描述

笔者认为这篇文章最大的贡献之处不仅仅在于其提出的基于弱监督学习的目标检测方法,更重要的是作者所建立的数据集,为将来这方面工作的进行提供了数据支持。

▲ 图2

在本文中,作者选取的源域数据集为 PASCAL VOC 数据集,同时作者收集并标注了 3 个目标域数据集,其示例如图 2 所示。数据集的具体信息如表 1 所示:

▲ 表1

方法

本文的方法如图 3 所示,首先我们对源域图像进行域迁移训练得到域迁移图像,然后对于基于源域数据集训练得到的模型,再通过域迁移图像对模型进行微调,最后再使用通过伪标记方法获取的数据对模型进行进一步的微调。

▲ 图3


域迁移(DT) 

正如前面所提到的,本文主要解决的问题是目标域和源域分布不同的目标检测问题,而这部分旨在通过变换将源域数据分布变换为目标域分布,本文作者使用的是 CycleGAN [1] 来实现这种变换。 

伪标记(PL) 

对于只用图像级标注(即每个图像上包含哪几种类别)的目标域数据集,我们需要获取其伪实例级标注。首先,对于目标域数据中的每一幅图像 x ,使用基于源域训练的模型得到输出 d=(p,b,c) ,其中 b 是得到的 bounding box, c 是得到的类别, p 是属于该类的概率。根据这个结果,对于图像中所包含的每个类别,通过选取 top-1 概率的结果来作为目标图像的 bounding box,从而来实现对目标图像的伪标注。

实验

为证明方法的有效性,作者分别利用 PL、DT、DT+PL 的微调方法进行了实验,在 Clipart1k 数据集上的实验结果如表2所示。其中,基线(Baseline)是利用 SSD300 直接在目标域图像上进行实验的结果,而理想情况(Ideal case)是利用带实例级标注的目标域数据对模型进行微调的结果。此外,作者还利用基于弱监督检测的方法 ContextLocNet[2]、WSDDN [3] 及无监督域适应的方法 ADDA [4] 来做对比实验。

▲ 表2

从表 2 可以看出,作者提出的微调策略能够在检测性能上有较大的提升。此外,从表 2 中可以看出经过 DT 变换的微调方法可以很大程度地提升检测性能,而在不使用图像级标注的 PL 数据域进行微调的方法不仅不能提高性能,而且会导致性能有所下降,所以图像级的标签对物体检测是很重要的。 

此外,作者在 YOLOv2 及 Faster R-CNN 上进行了同样的实验,实验结果同样证明了该微调策略的有效性。实验结果如表 3 所示:

▲ 表3

为验证本文方法的有效性,作者采用论文 [5] 提供的方法对检测效果进行分析,分析结果如图 4 所示。从图中可以看出基于 DT 变换的微调模型能够很好的提高物体检测的性能,相对于 DT 来说,基于 DT+PL 的微调策略能够进一步地提高检测的性能,尤其是在容易将物体误分成不相似类别物体的分类任务上(Sim 将物体识别成与该物体类似但不相同的类别,Oth 将物体识别成其他不相似的类别)。这也进一步说明了为何图像级标注可以提高物体检测的性能。

▲ 图4

此外,作者还对另外两个数据集进行了实验,实验结果分别如表 4、5 所示:

▲ 表4

▲ 表5

总结

在本文中,作者为将当前的物体检测技术应用到一些非现实场景,即缺少大量实例级标注的场景,如水彩画的目标检测等任务,而提出了一套全新的训练策略,并建立了一些数据集来为将来这方面的工作做铺垫。笔者认为这项工作是非常有意义的,就人本身而言,我们不仅可以很好地分辨实际场景中的物体,同样可以很好地检测到一些例如动画、水彩画中的物体,即使有时我们很少接触这些,而基于深度学习的物体检测技术也应该具备这种能力。

]]> 原文: https://ift.tt/2AD6ssm
RSS Feed

机器知心

IFTTT

青年科研工作者眼中的ICML 2018

7月的瑞典斯德哥尔摩比北京凉爽许多,10日-15日,机器学习领域顶级会议ICML在这座美丽精致的小城召开,AAMAS 2018和IJCAI 2018也先后在同一会场举行。

本届ICML的注册人数达到了5000余人,是ICML 2017的两倍以上。大会共收到投稿2473篇,比去年增长了45%,其中621篇被接收。来自神经网络结构和强化学习两个子领域的投稿数量最多,强化学习领域的接受率更高,其它热门方向还有深度学习、在线学习、统计学习、隐私安全等等。

ICML 2018概况

ICML 2018论文子领域统计

对于有志于向ICML投稿的读者,我建议大家关注大会的反驳环节(rebuttal)。本次ICML的反驳环节促成了45%的审稿意见变更,最有利于提升审稿分数的关键词包括"深度"、"包括"、"澄清"、"建议"、"更新"、"有建设性的"、"有用的"、"有价值的"、"感谢"等等。如果把这些词连起来会变成如下的一句话:感谢您有用的建设性建议以及无价的有深度的问题。如果我们有测试我们估计结果的空间,我们会澄清我们的观测,并且更新最终的附录。这当然只是一个玩笑,但从中可以看出,我们在向审稿人提出反驳意见的时候一定要保持礼貌和理性

获奖论文

本次会议评选出了两篇最佳论文(Best Paper Awards),它们分别是

  1. Obfuscated Gradients Give a False Sense of Security: Circumventing Defenses to Adversarial Examples

    这篇文章发现obfuscated gradients并不能完全抵御对抗样本的攻击。对抗样本的问题近年来得到越来越多的关注,我比较看好这个方向。还没确定自己研究课题的读者可以考虑加入这个方向。

    论文链接:https://ift.tt/2KGix4K

  2. Delayed Impact of Fair Machine Learning

    这篇文章分析了不同的公平标准对人的延迟影响。研究发现常见的公平标准一般不能对人群产生正面影响,甚至有时候会产生负面的影响。

    论文链接:https://ift.tt/2Hwk9Ie

会议也评选出了一篇时间检验奖(Test of Time Award),获奖论文为发表于ICML 2008的"A Unified Architecture for Natural Language Processing: Deep Neural Networks with Multitask Learning",目前已经被引用约2500次。如果你的研究方向目前比较冷门,请保持耐心,十年之后这个奖项可能就属于你:)。

论文链接:

https://ift.tt/2gvDpxm

教程:深度学习的理论理解

下面介绍一下本次会议上发表的我比较感兴趣的一个教程。这个教程是关于深度学习的理论理解(Toward Theoretical Understanding of Deep Learning),来自普林斯顿大学的Sanjeev Arora教授。虽然主题是理论,但教程更多的是对理论发展的科普,重点放在对深度学习的直观理解上,所以对一些不喜欢读理论的读者也比较友好。

教程首先介绍了深度学习的发展简史和一些基本知识,并且指出研究深度学习理论的目的是让我们对深度学习有更直观的理解,从而产生新的发现。

然后教程对深度学习领域的一些实际问题进行了讨论。比如,目前大部分深度神经网络的优化问题都是非凸的,有些问题甚至NP-hard,维度的诅咒(curse of dimensionality)会让问题尤其复杂。传统的机器学习认为模型越简单,参数越少,泛化(generalization)就会越好,否则会发生过拟合(overfitting)。但是,深度学习的实验发现,随着模型复杂度的增加,明显的过拟合并没有发生。而且,一些近期的研究发现,过参数化(overparameterization)反而会让优化变得容易,这种现象目前还没有得到理论上的解释。

一个更加实际的问题是我们该如何选取网络的深度。直观上来说,越深的神经网络,表达力越强,但训练越困难。而最近的一个研究发现,增加神经网络的深度能够加快优化(注:笔者对这个结论持保留意见,因为文章里的实验结果只能表明,增加深度可以用更少的循环达到相同的效果,而没有比较每一个循环运行的时间。所以此处的"加快"应该更准确的理解为"用更少的循环次数")。

该教程还讨论了生成对抗网络和文本编码等深度学习领域的热门话题。有兴趣的读者可以阅读教程原文:

https://ift.tt/2L1l6KN

边缘似然估计进行排序

接下来介绍一下我在ICML 2018发表的文章 "随机效用模型的边缘似然估计"。

随机效用模型是一个经典的离散选项模型。给定一个选项集,随机效用模型会认为每一个选项都对应着一个效用分布。一个选项对于不同人的效用独立服从于这个效用分布。每个人对于不同选项的偏好取决于他从每个效用分布中抽取的效用。

在一些场景下,为了实现更好的集体决策,我们需要根据人们对于一个选项集中不同选项的偏好来估计每一个选项的效用分布。例如下图的场景:Judy、Nick和Ben想要选一个吃饭的地方,他们对备选选项有不同的偏好,比如Judy最喜欢veggie grill,其次是dunkin's donuts, 最后是哈根达斯。我们可以根据这三个人的偏好来估计出一个随机效用模型,然后根据估计的参数(即每个选项的效用分布)来帮他们选择一个餐馆。

然而,随机效用模型在一般情况下(比如所有效用分布都是高斯分布)的参数估计比较困难,因为这种模型定义的排序的概率没有已知的解析表达式。因此,我们舍弃了传统的极大似然估计方法,用极大边缘似然估计方法取而代之。

我们以每一对选项的比较结果作为边缘事件,通过极大化边缘概率的方法达到参数估计的目的。我们还可以在不同对选项的比较上加上不同的权重,以达到更好的区分某一对或者某几对选项的目的。

最后,实验证明这种方法的好处有如下几点:

  • 灵活。边缘事件和每对选项的权重都有无限的选取方式,这为我们服务不同的目的提供了可能性。

  • 快。我们提供的算法只需要读取一次数据。我们证明了目标函数是严格的凸函数,极大的增大了优化的效率。这一点也得到了实验的证明。

  • 准确。实验显示,我们的方法对高斯随机效用模型的估计比之前的广义矩估计更准确(均方差更小)。

想要了解更多详情,可以阅读论文或者通过个人主页联系我。

论文链接:

https://ift.tt/2LLJ0y9

个人主页:

https://ift.tt/2KnyB6c

此外,在本次ICML上,微软亚洲研究院机器学习组也发表了两篇文章,感兴趣的读者可以点击以下链接了解详情:

小结

纵观本次会议,大部分工作免不了是在已有的框架之下做一些改进和提升,而这种提升常常十分有限。如何跳出已有框架做出开创性工作,是我们每个青年科研工作者应该思考的问题。这种工作虽然难,但也并非无章可循,比如对抗生成网络(GAN)有效地结合了博弈论神经网络。神级科学家可以闭门造车,一般的科研工作者至少可以做到广泛涉猎,并且融会贯通。机会总是光顾有准备的人,脚踏实地地学习创新,说不定我们的工作就会成为下一个焦点。

]]> 原文: https://ift.tt/2n60kzl
RSS Feed

机器知心

IFTTT

DeepSeek + Pi 王炸组合跑赢 Claude Code?-InfoQ每周精要No.935

「每周精要」 ...