前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用深度学习规划会议时间点——Skejul

用深度学习规划会议时间点——Skejul

作者头像
WZEARW
发布2018-04-13 16:20:53
8290
发布2018-04-13 16:20:53
举报
文章被收录于专栏:专知

【导读】你是不是常常烦恼找不到合适的会议时间?我也经常遇到这种问题。当前人们越来越忙,想要协调合适的会议时间是很困难的。本文中,数据科学家Favio Vázquez介绍了一个基于AI的会议规划系统——Skejul。该系统不仅仅采用传统的RNN思想建模时间序列,而是 RNN,LSTM,ConvNets,Residual NN 等技术的集合体。Skejul将在今年相继推出其免费版和商业版,对其原理感兴趣的读者不妨深入读一下本文。

Skejul meetings with Deep Learning

▌目前的问题



当人们分布在在世界各地,处于不同时区时,安排正确的会议时间是很困难的。甚至当人们生活在同一地点,协调一个统一时间也是很困难的事情,因为人们都很忙

也许你没有正确使用你的时间,可能你在一天会议很多,而其他时间完全没有会议。如果有一个完美的日历,完美地安排所有空闲时间、会议或者活动,那将是一个很美好的事。

深度学习可以帮助你解决一切!

  • Skejul

我很高兴见到Skejul的首席执行官Matthew Lamons先生,他简要介绍了系统及其后端。

Skejul采用人工智能(AI),不需要您花大量时间来设置偏好、设置优先级、管理其他人的联系信息、输入您去的地方的信息或者您喜欢做的事情。

它也简化了人、地点和事物的复杂的协调过程。

但是它是如何做到的呢?

▌深度学习中的序列模型



  • 什么是序列?

简而言之,是相关的事件、动作或事物的特定顺序。例如在斐波那契数列中,那些“事物”是数字,并且有一个函数表示它们,我们称之为一个递推关系:

如果你是程序员,也许你会发现这段Python代码倍感熟悉:

这个代码是递归的。什么是递归?是当你定义一个问题涉及到它自己时,就会发生递归。

以上的编程和数学都很酷。但是,这些和深度学习有什么关系。

在深度学习中,有一种特定类型的神经网络(NN),它能够通过迭代序列元素来处理序列,并维持节点包含以前所输入相关信息的状态。就像他们有一个“记忆”,是一种逐渐处理信息的方式。这种类型的神经网络被称为递归神经网络(RNN),这种类型的神经网络具有内部循环,并且在处理两个不同的独立序列之后更新其状态。

  • RNN的时间序列

所以Skejul解决问题的方式是使用RNN(和其他类型的NN)处理时间序列。时间序列是是具有一定时间顺序的数据,其数据元素与时间相关。例如股票价格,加密货币的价格等等。

RNN能很好地预测时间序列,用x时间点之前发生的事情预测在x时间点发生的事。

虽然RNN对于顺序数据非常有用,但是它们也存在一些问题,比如学习“长期依赖性”,想要保持长时间的信息。

为了解决以前问题,Hochreiter&Schmidhuber(1997)提出了LSTMs,它是一种特殊的RNN,能够学习长期的依赖性。

想了解更多关于LSTMs的信息点击这里。

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

▌LSTM模型Keras



  • 代码:

https://github.com/jaungiers/LSTM-Neural-Network-for-Time-Series-Prediction/blob/master/lstm.py

下面看一下其代码,在Keras中构建LSTM是非常容易的。我以后将写一篇介绍keras的文章

代码语言:javascript
复制
from keras.layers.core import Dense, Activation, Dropout
from keras.layers.recurrent import LSTM
from keras.models import Sequential
import time
def build_model(layers):
    model = Sequential()

    model.add(LSTM(
        input_shape=(layers[1], layers[0]),
        output_dim=layers[1],
        return_sequences=True))
    model.add(Dropout(0.2))

    model.add(LSTM(
        layers[2],
        return_sequences=False))
    model.add(Dropout(0.2))

    model.add(Dense(
        output_dim=layers[3]))
    model.add(Activation("linear"))

    start = time.time()
    model.compile(loss="mse", optimizer="rmsprop")
    print("> Compilation Time : ", time.time() - start)
    return model

有了这个简单的代码,你可以在Keras上创建一个时间序列

▌时间序列和Skejul



所以,Skejul所做的就是使用自己的专有算法来进行合理的猜测,以便与用户确定会议的最佳时间和日期。

正如Matthew告诉我的,这个算法使用的不仅仅是RNN或者LSTM,还有使用ConvNets,Residual NN和深度增强学习。

但是数据呢?你可能会想,他们如何训练他们的NN?

你可以帮助Skejul测试,使用Skejul的私人测试版,算法可以向你学习!在这里注册。http://skejul.com/

Skejul所做的大部分工作是从你的日程表中获取数据,但不仅仅是会议,还包括你对会议的回复,例如你同意一个会议或者决定参加一个会议。

他们将在今年春季推出该软件的免费版本,以及在夏季中旬左右推出商业版本。Skejul将会有很多新的功能,并且会增加新的功能,如视频平台,利用应用程序进行会议,添加聊天功能。

他们声称,他们的算法和平台可以实现比目前最好的预测应用程序效果的75倍。他们还有来自25个国家和地区,包括伦敦,孟买,墨西哥城,旧金山,新加坡,柏林,罗马,布宜诺斯艾利斯,都柏林,迪拜,中国香港等城市的预约成员。

▌概要



协商会议时间并不是一项简单的任务,所以我们使用Deep Learning和AI来解决这个问题。

深度学习是一个非常重要的技术,有很多的应用,这里的应用是预测序列模型中的值。

一个序列是特定的顺序,在这个顺序中,相关的事件、运动或者事物相互关联。

递归神经网络(RNN)是一种具有内部循环的神经网络,其状态在处理两个不同的独立序列时更新。他们拥有类似于记忆的功能。

RNN有学习“长期依赖性”的问题,所以采用LSTM网络解决了这个问题。

您可以在Keras中轻松快速地实现LSTM模型。

Skejul正在使用RNN,LSTM,ConvNets,Residual NN,Deep Reinforcement Learning等技术来解决与全球不同人员实时会议安排的问题。

原文链接:

https://towardsdatascience.com/skejul-meetings-with-deep-learning-5efab285b111

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 专知 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档