# GCNET ## A novel graph-based approach for prediction of stock price movement --- # Abstract ---- ## 問題回顧 * 相關股票數據對重要於預測股票價格波動 * 圖技術尚未應用於建模、嵌入和分析股票 * graph-analysis 技術, 預測能力有限 ---- ## 貢獻 * 一種方法來建模任意一組股票之間的現有關係 * GCNET將股票之間的關係建模為圖 * GCNET使用圖卷積網路 --- # Model description * 建立一個節點圖,其中節點代表股票 * 節點包含來自技術指標的特徵向量 * PLD方法為一部分節點指派初始標籤 ![image](https://hackmd.io/_uploads/SyukWSFsT.png) ---- ## Network Construction ### symbol definition * $m$ : 股票數量 * $\left\{ s_1, s_2, ..., s_m \right\}$ : 股票集合 * $G = (V, E), V, E$: 圖, 頂點, 加權邊 * 沒有自環 --- ### add edges 1. n 個節點的影響圖,建立 n 個簡單模型 2. 1 個使用目標節點的歷史數據訓練 3. 剩下使用目標、次目標節點的歷史數據訓練 > 使用 QDA 進行预测 ---- ### QDA ![image](https://hackmd.io/_uploads/H1O0EHYja.png) * $k = 1, 2, ..., k_n$ : 類別 * $δ_k$ 類別 k 的判別函數值 * $Σ_k$ 是協方差矩陣 * $π_k$ 是第 k 個總體的先驗機率 * 樣本 x 屬於的類別 Clf 可以預測為 ![image](https://hackmd.io/_uploads/SkhccSKj6.png) ---- ### feature vector || feature | vectors || |-------- | -------- | -------- |-------- | || ![image](https://hackmd.io/_uploads/rkQBoStsa.png) | ![image](https://hackmd.io/_uploads/r1GIorYoT.png) || ---- ### feature vector * $v_{i,j} = v_{j,i} = average(v_i, v_j)$ * $P_i$ 使用 $v_i$ 輸入預測股票 $S_i$ 價格變動 * $P_{i,j}$ 使用 $v_{i,j}$ 輸入預測股票 $S_i$ 的價格變動 ---- ### influence * $Acc_i、Acc_{i,j}$ 表示 $P_i、P_{i,j}$ 對股票 $S_i$ 的預測準確率 ![image](https://hackmd.io/_uploads/HJpB0rKoT.png) * 邊權重如下 ![image](https://hackmd.io/_uploads/B1hx1IFop.png) ---- ### build graph * 刪除權重值最低的邊,直到圖不連通 ![image](https://hackmd.io/_uploads/ryFJGLKo6.png) ---- ![image](https://hackmd.io/_uploads/r1JwXLtsp.png) --- ## Label assignment process * 圖中節點的標籤代表其下一個價格變動 * 預測那些標籤未知的節點 * 使用 PLD 對網絡的節點分配初始標籤 ---- ### Plausible Label Discovery(PLD) * 預測目標日期 t 的股票價格 * PLD 將數據集分為訓練集和驗證集 * PLD 通過在驗證集上的預測,對每支股票的預測器進行評分 * 使用了一種近日加權評分 ![image](https://hackmd.io/_uploads/r1WNPDtoa.png) ---- ### the predictability score ![image](https://hackmd.io/_uploads/SygxOwFjT.png) ### the density score ![image](https://hackmd.io/_uploads/By3vOwYsT.png) ### the privilegesi score ![image](https://hackmd.io/_uploads/HkcyKvKi6.png) ---- ### PLD procedure * 各種敏捷基礎算法都可以 ![image](https://hackmd.io/_uploads/HkabKDKsp.png) --- ## Price Movement Prediction * 將節點特徵添加到部分標記的股票圖中 * 使用結果圖來訓練一個圖卷積網絡模型 * 以預測股票價格的變動作為圖的最終節點標籤 ---- ### GCN 卷積濾波器 ![image](https://hackmd.io/_uploads/rkYpRvFs6.png) * $\hat{A} = \tilde{D}^{-{1\over2}}\tilde{A}\tilde{D}^{-{1\over2}}$ * $\tilde{A} = A + I_N$ * $\tilde{D} = \sum_j + \tilde{A}_{ij}$ ---- ### Training and predicting Procedure #### Math of model ![image](https://hackmd.io/_uploads/rJY2Mdtip.png) #### cross-entropy loss ![image](https://hackmd.io/_uploads/SkNTzOFsT.png) --- ## over all ![image](https://hackmd.io/_uploads/HynfXOKip.png) ---- ### Complexity #### 創建網絡 QDA: $O(knf + k^3), k = min(f, n)$ #### 運行 PLD RF: $O(kfn\log{n})$, k: tree num #### 訓練 GCN GCN: $O(L||\hat{A}||_0f +LNf^2)$ L: layer, N: vertex m: stock, n sample, f: feature --- ## Experiments ### Data - Nasdaq market ### Parameters * retrain 30 d * L2正則化 * dropout ### Evaluation ![image](https://hackmd.io/_uploads/ry_ZDOYoa.png) ---- ### Baselines * ALSTM * STOCKNET * HATS * CNN-pred * Adv-LSTM * exLift+DiMexRank+(PLD) * Price graphs ![image](https://hackmd.io/_uploads/BJcoD_Koa.png) ---- ### Model components analysis || | result || |-------- | -------- | -------- |-------- | || | ![image](https://hackmd.io/_uploads/Sk74__Kop.png) || || | ![image](https://hackmd.io/_uploads/r1uo_dFia.png) || ---- ### Model components analysis | result | | | | -------------------------------------------------- | -------------------------------------------------- | --- | | ![image](https://hackmd.io/_uploads/rJK6YuYsa.png) | ![image](https://hackmd.io/_uploads/S1__K_toT.png) | | ![image](https://hackmd.io/_uploads/B17Iq_Yop.png)
{"description":"llama_new_context_with_model","title":"GCNET: A novel graph-based approach for prediction of stock price movement","contributors":"[{\"id\":\"f259b1ef-5aac-43f8-b1b8-465a8bb2a98a\",\"add\":4239,\"del\":266}]"}
    234 views