言語処理学会 第29回年次大会 発表論文集 (2023年3月)

二つの時系列データの関係を記述する自然言語文生成への取り組み
中野由加子 1
小林一郎 1
1 お茶の水女子大学{g1920532,koba}@is.ocha.ac.jp

概要
近年，表やグラフなど様々な数値データの表現形式を対象にした Data-to-Text の研究が盛んに行われている．多くの研究は対象ドメインにおけるイベン
トを説明するための自然言語文生成の中に数値データを取り込んだものとなっており，数値データそのものが表現する意味や複数の数値データ間の関係などを捉えるような自然言語文生成はほとんどない．
本研究では，二つの時系列データの関係性を捉え，記述する自然言語文生成手法の開発を目的とする．
データセットとして, 関連した動きをする部分がある二つの時系列データ, その関係を記述した自然言語文, カテゴリを作成した．作成したデータセットの訓練データで学習したモデルを用いて評価データについて文生成を行い，モデルの評価を行なった．

1

はじめに

近年，様々な分野における数値データの収集が容易になり，表や時系列チャートなど多様な表現形式での数値データについて自然言語で記述する
Data-to-Text の研究が注目されている．多くの先行研
究は，数値データが観測されたドメインに特化した自然言語記述と同様な自然言語文を生成することを対象にしている．そのため，数値データ以外にもその数値が観測されたイベントを表す表題や発話者などのデータ発生の情報源といったコンテクスト情報を追加した自然言語文生成が提案されている [1]．
一方で，分析した数値解析結果を可視化ではなく言語化することによって, そのデータの内容を容易に把握することが可能になり, また対話システムや分析システムに組み込むことも可能になると考えられる. しかし, そのような数値解析に基づいた
Data-to-Text はほとんど見受けられない．ドメインにこだわらず，時系列データの動きのみを説明する手法として，Jhamtani ら [2] は，時系列データ中に特定のパターンが出現するかについての真理条件に基づいてキャプションを生成する手法（以下’TRUCE’と呼ぶ）を提案している．TRUCE は，一つの時系列データにおいて特定のパターンが見つかった場合にそのパターンについて文を生成を行う．つまり，時系列データ特有のドメインを含んだ自然言語文生成を行うのではなく，時系列データそのものの動きを捉えた文生成を行っている．
本研究では，これに対して一つの時系列データに関する振る舞いを説明する自然言語文生成ではな
く，二つの時系列データの関係性を説明する文生成を対象とする．

2

複数時系列データの関係性記述

記述対象の関係性 時系列データにおいて人が顕著に感じる動きとして，「増加（increase）」, 「減少（decrease）」, 「頂上（peak）」, 「凹み（dip）」の 4 つが挙げられる（cf. [2]）．二つの時系列データの振る舞いの組み合わせをこれらの 4 種類の動きで考えることも可能であるが，本研究では，二つの時系列データが共に増加，減少，頂上，凹みである場合の関係を捉え，それを自然言語で説明することを対象とする．また，時系列データについて説明する際には,「初期（beginning）」, 「中期（middle）」, 「末期（end）」などの時期についても言及する傾向がある
ため（cf. [2]），対象とする 4 種類の動きに関する関係が見られる時期についても学習し，二つの時系列データの動きと発生時期について説明する文生成を行う．
単一の時系列データと複数の時系列データ説明文生成の相違点 複数の動きが見られる一つの時系列データの動きと時期について説明する場合には，どの動きに対する文生成を行なっても，その動きと時期を捉え, 説明することが求められる．しかし，複― 2773 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).

図1

データセット１

図2

表 1 訓練設定
学習量
5000step
バッチサイズ
8Embedding
64 次元
隠れ層
256 次元損失関数
cross entropy
勾配法
Adam
学習率0.0001
ドロップアウト0.1
ウィンドウサイズ 8

データセット２数の動きが見られる複数の時系列データの関係について説明する場合は，時系列データ間の関係性を捉えた上で，関係がある動きと時期についての説明を求められる．そのため本研究では，予め関係性のあ期」である場合は，9-17 の範囲内で増加傾向があるる二つの時系列データの動きを学習させることで,時系列データを作成する (図 1 参照)．作成したデーモデルが関係性のある動きを捉えやすくした．

タは， 二つの時系列データの値が [0, 1] に収まるよ
うに正規化を行ってからモデルに入力する．

データセット構築

3

カテゴリ

二つの時系列データの関係性を捉えら二つの時系列データの関係性を説明するために，れるようにエンコーダを訓練をするために，カテゴ二つの時系列データの動きが共に増加，減少，頂上，リを用意した．エンコーダの出力からカテゴリ判定

凹みである場合の動きを学習させ，動きと時期を正を行う．上述した，動き 4 種類， 時期 3 種類の組みしく捉えた文が生成できているかについて評価を行合わせ 12 種類を 0-11 の数字で表したものをカテゴう．捉えたい二つの時系列データの動きをモデルにリラベルとして用いる．

学習させるためのデータセット 1 と，学習させた動

正解文動きと時期について言及する文を生成きを捉えることができているかの評価のためのデー文の正解としている． データセットの作成を簡単

タセット 2 を作成した．その内容を以下に示す．にするために， ”Both series1 and series2 (trend) in the3.1(period).”というテンプレートを使用し, 動き (trend) 4

データセット 1

種類と時期 (period) 3 種類についての単語を置き換

捉えたい二つの時系列データの動きをモデルに学習させるために，入力として与える二つの時系列データ，訓練用の時系列データの正解カテゴリ, 出力として期待される正解文のペアデータを 96,000 個作成した．その内，85%を訓練用データ，5%を評価えることで正解文を生成した．

3.2

データセット２

3.1 のデータセットで捉えたい動きと時期を学習したモデルを用いて，捉えたい動きの他にそれ以外用データ，10%をテスト用データとした．5,000stepの動きが含まれる時系列データについて説明文を生訓練を行なった内， 1,000step ごとに評価データを成する．評価用のデータセットのため，入力として用いて文生成を行い，BLUE スコアが最大の時のモ時系列データ，出力として期待される正解文のペア

デルを実験に使用した．モデルの学習用に訓練用・を 10,800 生成し, 全てを後述する実験２用のテスト評価用データを使用し，モデルが訓練データを学習データとした．

し，正しく文生成ができているかを評価するため時系列データに，後述する実験 1 でテスト用データを使用した．

捉えたい動きを ‘target trend’，捉えたい動きの時期を ‘target period’ とする．target trend

対象とする時系列データの関係と以外の 3 種類の動きから 1 つを選択し，片方の時系なる 4 種類の動きとそれが生起する 3 種類の時期

列データに target period 以外の時期のどちらかに選の 12 通りのデータを作成した．全体の時間幅を 27んだ動きを加え，合計 288 種類の二つの時系列デーと設定し，「初期」の場合は，0-8,「中期」の場合はタのペアを生成した．図 2 は，target trend が凹み，target period が中期で，series1 (青色の時系列データ)

時系列データ9-17,「末期」の場合は 18-26 の範囲に二つの時系列データの関係を示す挙動が収まるようにしてデータに増加の動きが初期に追加された例となっている．
正解文を構築した．

捉えたい動きと時期のペア 1 つに対し選ばれた時期以外では，時系列データにほとんどて，片方の時系列データに target trend 以外の 3 種類変動がないようにした．動きが「増加」，時期が「中の動きを target period 以外の 2 種類から選んだ時期― 2774 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).

表 2 実験結果
BLEU ppl trend period trend period category
実験 1 97.5
3.77 0.999 0.944
0.9440.945
実験 2 62.4
3.14 0.703 0.545
0.393
0.571に追加し，二つの時系列データを入れ替えたデータも作成した．この 12 種類について，同じ正解文を作成した．

表 3 実験 1 のカテゴリ・生成文の正解率
カテゴリ
生成文

増加 減少 頂上 凹み 増加 減少 頂上 凹み
初期 1.00 1.00 0.948 0.904 1.00 1.00 0.791 0.815
中期 1.00 1.00 0.903 0.974 1.00 1.00 0.993 0.972
末期 1.00 1.00 0.940 0.700 1.00 1.00 0.862 0.876

す る こ と が 多 い．本 研 究 に お い て も そ の こ と を

4

提案モデル

4.1

概要

踏 襲 し，入 力 形 式 と し て 時 系 列 デ ー タ に ス ラ イ
ディングウィンドウを適用したものを採用する．
ウィンドウサイズを 𝐾 とし，時刻 𝑡 における値を𝑾𝒕 = {𝑥 𝑡 − 𝐾+1 , 𝑥 𝑡 − 𝐾+2 , . . . , 𝑥 𝑡 } と す る．こ の と き,提案するモデルの概要を図 3 に示す．

入力は，𝑤 𝑡 のリストとなり，長さ 𝑇 の時系列データの場合，𝑾 = {𝑊1 , 𝑊2 , . . . , 𝑊𝑇 } と表される．この形
式をとることで，変化量がわかりやすくなり，時系列データの動きが捉えやすくなる．

実験

5実験 1 で，学習モデルが 3.1 の訓練用データで学習した通りに，二つの時系列データの動きを捉えて正しく文生成ができているか，データセット 1 のテ

図 3 提案モデルの概要

ストデータを用いて評価を行う．実験 2 では，捉えモデルは Transformer [3] をベースに構築されていたい動きの他にそれ以外の動きが含まれる時系列る．入力は二つの時系列データであり，Transformerデータについて説明文を生成することで，より複雑を用いた多次元時系列データの異常検知を行う手法

な時系列データについても正しく文生成が行えるかを評価する．

である TranAD [4] を参考に形式を決めている（4.2
節にて後述）．また，二つの動きの比較を可能にするために positional embedding をそれぞれに追加する

5.1

評価方法

ことにより時刻を共通化している．時系列データの生 成 文 の 質 を 評 価 す る た め に，BLEU [5] と特徴を上手くエンコーディングするために，先行研

perplexity (ppl) を用いた．動き・時期を捉えられてい究 [1] のエンコーダの訓練手法を参考に，エンコーるかを確認するために，生成した文と正解文においダからの出力を受け，上述した時系列データの動きと時期によって表される 12 種類のカテゴリを識別て，動き，時期，その両方を表す単語が一致していする層（図 3 中の Prediction Layer）を導入し，カテLayer におけるカテゴリ判定と生成文の単語におけゴリの識別を訓練することにより，時系列データのるより詳細な評価も行う．

関係を正しく捉えた埋め込み表現をデコーダに渡している．デコーダは Transformer のデコーダを採用している．エンコーダとデコーダをわけて訓練をしるかどうかを判定した．これらに加えて，Prediction

5.2

実験結果及び考察

実験１

BLEU Score が非常に高くなっているが，ており，エンコーダおよびデコーダの訓練時のハイ

今回はテンプレートを用いて正解文を生成している

パーパラメータの設定を表 1 に示す．

ため文同士に大差がなく，また動きと時期を 94 %以上の確率で正しく捉えられているためだと考えられ

4.2

時系列データの入力形式

る (表 2 参照)．

時系列データの振る舞 いを捉えるために，「スカテゴリ判定と生成文の正解率について正しライディングウィンドウ（sliding window）」と呼ばくカテゴリ判定ができたデータは全体の 94.5%となれ る，あ る 程 度 の 範 囲 を 時 間 方 向 に 少 し ず つ シり，生成文において動きと時期の両方について正しフトさせた特徴量によって時系列データを表現

く文生成ができている確率 94.4%とほぼ一致した．

― 2775 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).

生成結果: Both series1 and series2

生成結果: Both series1 and series2

increase in the beginning.(増加・初期)

peak in the middle.(頂上・初期)

正解: Both series1 and series2

正解: Both series1 and series2

increase in the beginning.(増加・初期)

peak in the beginning.(頂上・初期)

生成結果: Both series1 and series2

生成結果: Both series1 and series2

peak in the middle.(頂上・末期)

dip in the middle.(凹み・中期)

正解: Both series1 and series2

正解: Both series1 and series2

peak in the middle.(頂上・中期)

dip in the end.(凹み・末期)

図 4 実験 1 の生成文と (生成カテゴリ) / 正解文と (正解カテゴリ) の例
表4

実験 2 のカテゴリ・生成文の正解率
カテゴリ
生成文
増加 減少 頂上 凹み 増加 減少 頂上

生成結果: Both series1 and series2
dip in the middle.(凹み・中期)

凹み

正解: Both series1 and series2

初期 0.879 0.741 0.229 0.184 0.492 0.601 0.00118 0.014
中期 0.890 0.806 0.393 0.501 0.913 0.774 0.147

0.410

末期 0.904 0.924 0.300 0.217 0.527 0.502 0.021

0.290

increase in the end.(頂上・初期)

図 6 時期だけでなく動きも正しく捉えられていない例

表 5 動きの大きさが異なる
データの割合・正解率

図 5 動きが小さい例

same

half

データ割合

0.50

0.50

正解率

0.517 0.268と考えられる．
カテゴリ判定と生成文の正解率について正しくカテゴリ判定ができたデータは全体の 57.1%となり，実験１に比べて大幅に下がった．カテゴリ判定

エンコーダの出力から文生成を行うため，カテゴリにおいて，時期だけでなく動きも正しく捉えられて判定の結果が生成される文における動きと時期のいないデータも見られた (図 6)．これは，追加した単語に直結すると考えた．しかし，頂上と凹みにつデータの動きの影響を受けていることによると考えいては，カテゴリ判定と生成文の正解率が異なった(表 3 参照)．カテゴリ判定が正しくできていても，られる．また，全体的に生成文の正解率がカテゴリ判定の正解率からさらに下がっている (表 4)．実験

文生成が正しくできない場合 (図 4 の右上) や，逆に１よりも，エンコーダで動きが正しく捉えられていカテゴリ判定が正しくできていなくても，文生成がても文生成がうまくいっていないデータが多いとわ正しくできている場合 (図 4 の左下) が確認された．

かった．生成文と生成カテゴリ/正解文と正解カテ

実験２

実験 1 と比べて全体的に精度が下がっている (表 2 参照)．原因の 1 つとして，実験 2 におけるデータのうち 50%が，捉えたい動きが小さくゴリのペアを Appendix に記載した．

おわりに6なったデータとなっていることが考えられる (表 5

本研究では二つの時系列データの関係性を捉えた参照)．実験 2 で用いたデータセットの時系列デー文生成を行うモデルを提案し，作成したデータセッ

タは，加えた動きによっては正規化した際に，捉えトを用いてモデルの評価を行なった．実験 1 では，たい動きを訓練時の半分ほどまで小さくしてしま

高い精度で二つの時系列データにおける，学習したう．例えば，図 5 においては，初期に頂上の動きを動きを捉えた文生成を行うことができることが確認

加えることで，末期の減少の動きの縦幅が全体の半できた．実験 2 では，時系列データの動きがより複分ほどまで小さくなっている．縦幅が小さくなっていないデータのうち 51.7%は動きと位置について正雑になり，動きの縦幅が学習時と異なる場合に動きを捉えることがより難しくなることが確認できた．

しく文生成ができていたが，縦幅が小さくなってい正規化をすることで捉えたい動きが小さくなってしるデータについて正しく文生成が行えていたものはまうため，捉えたい動きをうまく捉えて文生成がで26.8%にとどまった (表 5 参照)．正規化をすることきるような工夫を考えたい．また，特に時期についで，捉えたい動きの幅が小さくなってしまい，モデての精度が下がってしまったので，訓練の手法等をルが捉えたい動きだと判断することが難しくなった

検討して精度を高めていきたい．

― 2776 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).

参考文献[1] Jason Obeid and Enamul Hoque. Chart-to-text: Generating natural language descriptions for charts by adapting
the transformer model, 2020. https://arxiv.org/abs/
2010.09142.
[2] Harsh Jhamtani and Taylor Berg-Kirkpatrick. Truthconditional captions for time series data. In Proceedings ofthe 2021 Conference on Empirical Methods in NaturalLanguage Processing, pp. 719–733, Online and Punta

Cana, Dominican Republic, November 2021. Associationfor Computational Linguistics.
[3] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, L ukasz Kaiser, andIllia Polosukhin. Attention is all you need. In I. Guyon,
U. Von Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garnett, editors, Advances in Neural
Information Processing Systems, Vol. 30. Curran Associates, Inc., 2017.
[4] Shreshth Tuli, Giuliano Casale, and Nicholas R. Jennings.
Tranad: Deep transformer networks for anomaly detection
in multivariate time series data. Proc. VLDB Endow.,
Vol. 15, No. 6, p. 1201–1214, jun 2022.
[5] Kishore Papineni, Salim Roukos, Todd Ward, and Wei-Jing
Zhu. Bleu: A method for automatic evaluation of machinetranslation. In Proceedings of the 40th Annual Meetingon Association for Computational Linguistics, ACL’02, p. 311–318, USA, 2002. Association for ComputationalLinguistics.

― 2777 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).

A生成例

以下に実験２の生成例を示す．

• カテゴリ判定も生成文も正解
生成結果: Both series1 and series2

生成結果: Both series1 and series2

increase in the beginning. (増加・初期)

decrease in the middle. (減少・中期)

正解: Both series1 and series2

正解: Both series1 and series2

increase in the beginning. (増加・初期)

decrease in the middle. (減少・中期)

生成結果: Both series1 and series2

生成結果: Both series1 and series2

peak in the middle. (頂上・中期)

dip in the end. (凹み・末期)

正解: Both series1 and series2

正解: Both series1 and series2

peak in the middle. (頂上・中期)

dip in the end. (凹み・末期)• カテゴリ判定は正解だが生成文は不正解
生成結果: Both series1 and series2

生成結果: Both series1 and series2

peak in the beginning. (増加・初期)

peak in the middle. (減少・末期)

正解: Both series1 and series2

正解: Both series1 and series2

increase in the beginning. (増加・初期)

decrease in the end. (減少・末期)

生成結果: Both series1 and series2

生成結果: Both series1 and series2

peak in the middle. (頂上・初期)

dip in the end. (凹み・初期)

正解: Both series1 and series2

正解: Both series1 and series2

peak in the beginning. (頂上・初期)

dip in the beginning. (凹み・初期)• カテゴリ判定は不正解だが生成文は正解
生成結果: Both series1 and series2

生成結果: Both series1 and series2

increase in the middle. (凹み・初期)

decrease in the beginning. (凹み・中期)

正解: Both series1 and series2

正解: Both series1 and series2

increase in the middle. (増加・中期)

decrease in the beginning. (減少・初期)

生成結果: Both series1 and series2

生成結果: Both series1 and series2

peak in the end. (頂上・初期)

dip in the middle. (凹み・初期)

正解: Both series1 and series2

正解: Both series1 and series2

peak in the end. (頂上・末期)

dip in the middle. (凹み・中期)• カテゴリ判定も生成文も不正解
生成結果: Both series1 and series2

生成結果: Both series1 and series2

dip in the middle. (凹み・中期)

decrease in the end. (減少・末期)

正解: Both series1 and series2

正解: Both series1 and series2

increase in the end. (増加・末期)

decrease in the middle. (減少・中期)

生成結果: Both series1 and series2

生成結果: Both series1 and series2

increase in the middle. (増加・中期)

peak in the middle. (頂上・初期)

正解: Both series1 and series2

正解: Both series1 and series2

peak in the beginning. (頂上・初期)

dip in the end. (凹み・末期)― 2778 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).