ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

时序点过程学习笔记

2021-05-12 12:01:37  阅读:481  来源: 互联网

标签:函数 强度 笔记 时序 学习 序列 事件 类型 过程


https://zhuanlan.zhihu.com/p/110171621

一、什么是时序点过程

现实世界中有这么个问题:有这么一系列历史事件,每个事件都有其对应的发生时间,也有其所属的事件类型,基于这一系列历史事件,预测下一个要发生的是什么类型的事件,以及其发生的时间。

比如下一次地震发生在何时,何地是事件类型,比如一种股票的下一次买卖将发生在何时,买入或卖出是事件类型,比如用户将在何时去下一个目的地,目的地是哪里是事件类型。

点过程可以对这一系列历史事件建模,来解决这个预测问题。

[公式]

时序点过程的核心是强度函数 [公式] 。 [公式] 是截止 [公式] 时刻之前事件类型 [公式] 发生的总次数。 [公式] 代表在时间窗口 [公式] 内,事件类型 [公式] 发生的概率。

[公式]

其中 [公式] 代表基于历史行为,事件类型 [公式] 在 [公式] 时刻发生的条件概率密度函数; [公式] 代表基于历史行为,至少有一个事件类型在 [公式] 发生的条件概率。强度函数 [公式] 为:

[公式]

[公式]

因此,只要能根据历史事件模拟出强度函数 [公式] ,则可以根据 [公式] 预测下一个事件。对 [公式] 的模拟将点过程分为传统点过程和深度点过程。

二、传统点过程

1.homogeneous poisson process假设 [公式] 独立于历史事件,且随着 [公式] 的变化恒定,即 [公式] 。inhomogeneous poisson process假设 [公式] 独立于历史事件,且随着 [公式] 的变化而变化,即 [公式]

2.hawkes process 认为历史事件有激励作用: [公式] , [公式] , [公式] , [公式]

3. self-correcting process 认为强度函数的趋势是一直在增大,但是当一个事件发生后,会先减小。 [公式] , [公式] , [公式]

三、深度点过程

传统点过程缺点:

(1)传统点过程对强度函数有着上述设定,很有可能不符合实际情况,比如历史事件对强度函数的影响并不一定是累加的;

(2)如果有多种事件类型的话,还需作出各个事件类型是互相独立的假设,并且对每个事件类型求强度函数;

(3)传统点过程对数据的缺失处理不是很好,有时我们只能观测到一部分事件。

深度点过程就无需这么麻烦,用神经网络这样的非线性函数模拟强度函数,这样一个黑盒子无需设定任何先验知识。

1. Recurrent Markd Temporal Point Processes:Embedding Event History to Vector(kdd2016)

输入层:事件类型和发生时间为输入。事件类型用词向量,时间用时间的特征(比如是否周末,是否深夜等)

事件类型生成:普通的softmax

强度函数为:

[公式]

时间生成:用下面这种求平均值的算法比较复杂,没有数值解,有一种简单的解法,我还没弄明白是啥...

[公式]

[公式]

loss: [公式]

实验使用的四个数据集:

New York City Taxi Dataset:共173 million记录,299个事件类型,670753 个序列

Financial Transaction Dataset:共0.7 million记录,2个事件类型,693499 个序列

Electrical Medical Records:204个事件类型,650个病人的序列

Stack OverFlow Dataset :共480k记录,81个事件类型,6k用户的序列

代码地址: https://github.com/dunan/NeuralPointProcess

2. The Neural Hawkes Process: A Neurally Self-Modulating Multivariate Point Process(nips 2017)

上一篇论文中,lstm的不同时步的hidden state是离散的,换句话说:当一个新事件发生后,断崖式变化。本文提出一个连续的hidden state变化方式。

[公式] [公式]

事件 [公式] 到事件 [公式] 之间的 [公式] 时刻,强度函数由 [公式] 决定,[公式] 由 [公式] 决定。注意 [公式] 在上篇论文是没有的哦,因为上一篇论文只有事件 [公式] 到事件 [公式] ,没有他们之间的 [公式] 时刻

[公式]

[公式]

[公式]

这里的 [公式] 和 [公式] 都不和上一篇论文中一样,而是 [公式] 和 [公式] 在 [公式] 时刻的值。

可见 [公式] 事件 [公式] 到事件 [公式] 之间从[公式] 向 [公式] 变化的,至于 [公式] 怎么来的,大概是训练的参数吧(还没太明白)。

loss是根据强度函数算的:

[公式]

本文的测试数据集:

Retweets Dataset:3个事件类型,1739547 个序列,序列长度109

MemeTrack Dataset:5000个事件类型,93267 个序列,序列长度3

3. CTRec: A Long-Short Demands Evolution Model for Continuous-Time Recommendation(SIGIR 2019)

这篇文章主要是将深度点过程用在商品推荐上,之前的商品推荐只考虑推荐对的商品,没有考虑在对的时间推荐对的商品,比如用户刚买了个厕所读物,不代表它喜欢厕所读物,不能一直给他推荐厕所读物,而应该考虑商品周期,等他看完了上一本,再给他推荐新的(长期需求)。再比如用户买了个画板,就得立马推荐颜料了(短期需求)。总之,就是考虑用户画像、短期需求和长期需求。

论文有三个创新点:使用的连续lstm,就是上一篇论文中的;使用cnn捕捉短期需求;使用attention捕捉长期需求。

强度函数融合了用户画像、短期需求和长期需求。

[公式]

cnn使用k个核做多层卷积,最后average pooling。

attention:

[公式]

[公式]

[公式]

[公式]

标签:函数,强度,笔记,时序,学习,序列,事件,类型,过程
来源: https://www.cnblogs.com/dhcn/p/14759157.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有