時序點過程學習筆記


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用戶的序列

代碼地址: 

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:

[公式]

[公式]

[公式]

[公式]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM