\documentclass[tombow,japanese]{jnlp_2.3}
\usepackage{jnlpbbl_1.3}
\usepackage[dvipdfm]{graphicx}
\usepackage{gentombow}
\usepackage{amsmath}
\settombowbleed{5mm}
\usepackage{array}
%%%%\usepackage{hangcaption_jnlp}
%%%%\usepackage{udline}
%%%%\setulminsep{1.2ex}{0.2ex}
%%%%\let\underline=\ul

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% author's definition
%%%%\usepackage[hyphens]{url}
%%%%\urlstyle{same}
\usepackage{amssymb}
%%%%\usepackage{latexsym}
%%%%\usepackage{color}
%%%%\usepackage{booktabs}
%%%%\usepackage{multirow,tabularx}
    \usepackage{multirow}
%%%%\usepackage{bbding}
\usepackage{pifont}
%%%%\usepackage{wasysym}
\usepackage{bm}
%%%%\usepackage{multirow,tabularx}
%%%%\usepackage{calc}
%%%%\usepackage{subcaption}
\usepackage{gb4e,cgloss4e}
\noautomath
%%%%\usepackage{here}
\newcommand\header[1]{\multicolumn{1}{c}{{\textbf{#1}}}}
\newcommand\parentheses[1]{\left(#1\right)}
%%%%\newcommand\braces[1]{\left\{#1\right\}}
%%%%\newcommand\brackets[1]{\left[#1\right]}
\renewcommand\vec[1]{\bm{#1}}
\newcommand\x{\vec{x}}
\newcommand\ind{i}
\newcommand\varl{l}
\newcommand\supstd{\text{std}}
\newcommand\supmove{\text{move}}
\newcommand\subshort{\text{short}}
\newcommand\sublong{\text{long}}
% 図中の例文と衝突しないようにする
\renewcommand{\thexnumi}{\alph{xnumi}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\Volume{27}
\Number{2}
\Month{June}
\Year{2020}
%%%%\Issuetitle{「　　　　」特集号}

\received{2019}{11}{1}
\revised{2020}{2}{1}
%%%%\rerevised{2006}{5}{6}
\accepted{2020}{3}{3}

\setcounter{page}{299}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\jsubject{一般論文}
\jtitle{時系列株価データからの市況コメントの自動生成}
\jauthor{村上聡一朗\affiref{tokyotech}\affiref{aist} \and 渡邉　亮彦\affiref{tokyotech}\affiref{edulab} \and 宮澤　　彬\affiref{sokendai} \and 五島　圭一\affiref{waseda} \and \\
	柳瀬　利彦\affiref{pfn} \and 高村　大也\affiref{tokyotech}\affiref{aist} \and 宮尾　祐介\affiref{aist}\affiref{ut}}
\jabstract{%
本稿では，日経平均株価の市況コメントを生成するタスクを例として，時系列数値データの多様な特徴を抽出してテキスト化する手法を提案する．日経平均株価の市況コメントでは価格の変動の特徴だけが表出されるわけではなく，価格の履歴を参照する表現，時系列データの変化を示す表現，テキストが書かれる時間帯に依存する表現が見られる．また，数値に言及する場合は，価格が直接言及されることもあれば，前日からの増減幅や それらを切り上げ・切り捨てした値などが用いられることもある．本研究では，エンコーダ・デコーダモデルをベースラインとし，上記のような多様な特徴を自動抽出してテキスト化するためのエンコード／デコード手法を探求する．まず，株価の短期的・長期的な変化を捉えるために，エンコーダへの入力として短期的および長期的な時系列株価データを与える．デコード時には，テキストが書かれる時間帯に依存する表現を生成するために，時間帯情報を導入する．また，デコーダが数値に言及する際，数値の演算操作を推定して計算することで株価の数値表現を生成する．実験では，自動評価および情報性・流暢性に関する人手評価を行い， 提案手法によって上記の特徴を捉えた質の高い株価の市況コメントの生成が可能になることを示した．
}
\jkeywords{Data-to-Text, 自然言語生成，ニューラルネットワーク}

\etitle{Generating Market Comments from Stock Prices}
\eauthor{Soichiro Murakami\affiref{tokyotech}\affiref{aist} \and Akihiko Watanabe\affiref{tokyotech}\affiref{edulab} \and Akira Miyazawa\affiref{sokendai} \and \\
	Keiichi Goshima\affiref{waseda} \and Toshihiko Yanase\affiref{pfn} \and \\
	Hiroya Takamura\affiref{tokyotech}\affiref{aist} \and Yusuke Miyao\affiref{aist}\affiref{ut}}
\eabstract{%
This study tackles the task of generating market comments from stock prices. Market comments not only describe the increase and decrease of the price but also describe how the price changes compared with the previous period and contain expressions that depend on their delivery time. Additionally, market comments typically mention numerical values, such as closing prices and differences in stock prices, that need arithmetic operations such as subtraction and rounding off to derive these values. To capture these characteristics, we propose a novel encoder--decoder model to automatically generate market comments from stock prices. The model first encodes both short- and long-term series of stock prices so that it can create short- and long-term changes in stock prices. Thereafter, we feed our model with delivery time of the market comment in the decoding phase to generate time-dependent expressions. Moreover, our model can generate a numerical value by selecting an appropriate arithmetic operation, such as subtraction or rounding off, and applying it to the input stock prices. As shown in empirical experiments, our model generates high-quality market comments with fluency and informativeness in comparison with baselines.
}
\ekeywords{Data-to-Text, Natural Language Generation, Neural Networks}

\headauthor{村上，渡邉，宮澤，五島，柳瀬，高村，宮尾}
\headtitle{時系列株価データからの市況コメントの自動生成}

\affilabel{tokyotech}{東京工業大学}{Tokyo Institute of Technology}
\affilabel{aist}{産業技術総合研究所}{National Institute of Advanced Industrial Science and Technology}
\affilabel{edulab}{株式会社EduLab}{EduLab, Inc.}
\affilabel{sokendai}{総合研究大学院大学}{Graduate University for Advanced Studies}
\affilabel{waseda}{早稲田大学}{Waseda University}
\affilabel{pfn}{株式会社Preferred Networks}{Preferred Networks, Inc.}
\affilabel{ut}{東京大学}{The University of Tokyo }



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\maketitle


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{はじめに}
\label{sec:intro}

金融や医療，情報通信などの多くの分野において，様々な形式のデータを取り扱う機会が増えてきている．
しかし，大規模で複雑なデータを専門知識のない人が見て解釈することは容易ではなく，
専門家であったとしても大規模なデータから重要な情報を読み取るためには時間がかかる．
そのため，データの概要を説明する概況テキストを自動的に生成するData-to-Text技術の関心が高まっている\cite{Gatt:2018:SSA:3241691.3241693}．

本稿では，日経平均株価の市況コメントを生成するタスクを例として，時系列数値データから多様な特徴を抽出し，データの概要をテキスト化する手法を提案する．
本研究では，日経平均株価の市況コメントの自動生成を，時系列株価データから単語系列を生成する系列生成タスクとして考え，機械翻訳や文書要約などの系列生成タスクで広く用いられているエンコーダ・デコーダモデル\cite{sutskever2014sequence}を使用する．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 1
\begin{figure}[b]
\begin{center}
\includegraphics{27-2ia7f1.eps}
\end{center}
\caption{日経平均株価と市況コメント}
\label{fig:news_example}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

図\ref{fig:news_example}に日経平均株価の時系列株価データと市況コメントの例を示す．
この例のように，株価の市況コメントなどの時系列数値データの概況テキストでは，「上がる」，「下がる」といった単純な特徴だけが表出されるわけではない．
過去のデータの履歴や，テキストが書かれる時間帯によって言及すべき内容は様々である．
また，数値の時系列データの場合，時系列中の数値や，過去との差分を計算した値が言及されることが多々ある．
例えば，図\ref{fig:news_example}の市況コメントでは，「続落」，「反発」のように価格の履歴を参照する表現(1，3，6)，「上げに転じる」のように時系列データの変化を示す表現(2)，
「始まる」，「前引け」，「午後」，「大引け」などテキストが書かれる時間帯に依存する表現(1，3，4，6)が見られる．
また，数値に言及する場合は，価格が直接言及される(3，6)こともあれば，履歴からの差分(3，6)や，切り上げ・切り捨てした値(5)が用いられることもある．

本研究では，株価の市況コメントにおけるこれらの特性を踏まえ，データから多様な特徴を自動抽出し，テキスト化するためのエンコード／デコード手法を提案する．
まず，「続落」，「上げに転じる」といった時系列株価データの過去の履歴や変化を捉えるために，株価の短期的および長期的な時系列データを使用する．
次に，「前引け」，「大引け」といった市況コメントが記述される時間帯に依存する表現を生成するために，デコード時に時刻情報を導入する．
加えて，「19,386円」，「100円」といった株価の終値や前日からの変動幅などの数値を市況コメントで言及するために，入力である時系列株価データ中から適切な数値を出力するための演算操作を推定し，計算することで数値の出力を行う．

実験では，日経平均株価の時系列株価データと人手で書かれた市況コメントを用いて提案手法の評価を行った．
自動評価では，実際の市況コメントと生成テキストの一致度合いを評価するためのBLEU, および，「続落」，「前引け」などの表現を正しく出力できているかを評価するためのF値を使用し，提案手法がベースライン手法に比べて大幅に性能が向上することを確認した．
さらに，人手評価では，テキストの流暢性と情報性の観点において，提案手法により株価の市況コメントにおける上記のような多様な特徴を捉えた質の高いテキストを生成できることを示した．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{関連研究}
\label{sec:related_work}

時系列データや構造化データの概要を人間にとって分かりやすく伝えるために，データから概況テキストを自動生成するData-to-Text技術に関して様々な研究が行われている\cite{Gatt:2018:SSA:3241691.3241693}．
例えば，時系列の気象情報から天気予報の概況を説明するテキストを自動生成する研究\cite{belz2007probabilistic,angeli-liang-klein:2010:EMNLP}, 医師や看護師の意思決定補助を目的に臨床データから概況テキストを生成する研究\cite{portet2009automatic,banaee2013towards}, スポーツの試合におけるplay-by-playデータやスコア情報から試合の概況テキストを生成する研究\cite{liang-jordan-klein:2009:ACLIJCNLP,tagawa2018,taniguchi2019generating}, 一定期間毎の学習態度を記録した時系列データから学生へのフィードバックのテキストを自動生成する研究\cite{gkatzia-hastie-lemon:2014:P14-1}などが行われている．

Data-to-Textの研究では，従来，人手で作成したルールによりテキスト生成を行うルールベース手法が主流であった\cite{goldberg1994using,dale2003coral,reiter2005choosing}．
一方，近年では，情報通信技術の発展により様々な形式の大規模データが容易に入手できるようになったことで，データとテキストの大規模なペアデータから学習した対応関係を基に生成を行う機械学習ベースの手法への関心が高まっている\cite{LiuWSCS18,iso-etal-2019-learning}．
例えば，画像データからその説明文を生成する画像キャプション生成タスク\cite{vinyals2015show}や構造化された気象データから天気予報テキストを生成するタスク\cite{mei-bansal-walter:2016:N16-1} などの様々なData-to-Textタスクにおいて機械学習を用いた手法の研究が行われている．
本研究では，これらの研究と同様に，機械学習を用いて時系列株価データと人手で書かれた株価の市況コメントのペアデータから対応関係を学習し，これらに基づいてテキスト生成を行う手法を提案する．

Data-to-Textタスクは，一般的に，生成テキストで言及する内容を選択するコンテンツ選択タスク(\emph{content selection})と選択したコンテンツを基に実際にテキスト生成を行う生成タスク(\emph{surface realization})の2つのサブタスクに分けられる．
従来，これらのサブタスクは個々に取り組まれてきた\cite{barzilay2005collective,wong-mooney:2007:main,lu-ng-lee:2009:EMNLP}．
一方，近年では，1つのフレームワークでこれらのサブタスクを同時に取り組む手法が提案されている\cite{chen2008learning,kim2010generative,angeli-liang-klein:2010:EMNLP,konstas2012unsupervised,konstas-lapata:2013:EMNLP}．
特に最近では，時系列データや構造化データから概況テキストを生成するために，機械翻訳で注目されているエンコーダ・デコーダモデル\cite{sutskever2014sequence,cho-EtAl:2014:EMNLP2014}を用いて，Data-to-Textタスクにおける個々のサブタスクを同時に取り組む研究が積極的に行われており，その有用性が示されている\cite{mei-bansal-walter:2016:N16-1,lebret-grangier-auli:2016:EMNLP2016,ShaMLPLCS18}．

しかしながら，エンコーダ・デコーダモデルを用いたData-to-Textタスクにおいて，解決すべき課題がいくつか残っている．
例えば，図\ref{fig:news_example}の株価の市況コメントのように，テキストが書かれる時間帯に依存する表現(1, 3, 4, 6)や 株価の終値や増減幅などの数値に言及する表現(3, 5, 6)が用いられる特徴があり，これらの特徴を捉えてテキスト化するためのエンコード／デコード手法が必要となる．
時間帯に依存する表現を生成するための方法として，時系列株価データの時刻情報をモデルへ組み込むことなどが考えられる．
例えば，\citeA{li-EtAl:2016:P16-13}は，エンコーダ・デコーダモデルを用いた対話モデルの研究において，個人の人格情報をデコーダに導入することで，個人の特徴を捉えた単語列を生成できることを報告している．
これらを踏まえ本研究では，時間帯に依存する表現を生成するために，追加情報として時刻情報をデコーダに組み込む方法を提案する．
また，数値に言及する表現を生成するための方法として，機械翻訳分野で提案されている，入力に含まれる単語を出力に含めやすくするためのコピー機構付きエンコーダ・デコーダモデル\cite{gu-EtAl:2016:P16-1,gulcehre-EtAl:2016:P16-1}などが考えられる．
しかし，時系列数値データのData-to-Textタスクでは，コピー機構だけでは解決できない課題がある．
例えば，株価の市況コメントでは，図\ref{fig:news_example}のように，履歴からの差分(3, 6)や，切り上げ・切り捨てした値(5)が用いられることもあり，入力に含まれる要素をそのまま出力することを目的としたコピー機構では，差分や切り上げ・切り捨てした値のように演算操作を必要とする数値を出力することができない．
そのため，入力の数値データに対して言及をする場合，入力からコピーを行うだけでなく，数値に対して何らかの演算操作を行い，計算結果を出力する機構が必要であると考えられる．
本研究では，これらの課題を解決するために，言及する数値に応じて入力データから数値をコピーまたは演算操作を行い計算結果を生成するための機構を導入したエンコーダ・デコーダモデルを提案する．

株価の市況コメントの生成を目的とした既存研究は多く存在する．まず，図\ref{fig:news_example}に示すような株価の値動きや過去の価格との比較，数値表現などの特徴を持った市況コメントの自動生成に取り組む研究の先駆けとして，\citeA{kukich:1983:ACL}は，日足の株価データベースから市況コメントを生成するための複数のルールを組み合わせた手法を提案した．
具体的には，まず，入力である日足の株価データベースの中から120個のルールに基づいて言及するべき値動きや価格等のコンテンツ選択を行い，次に16個のルールに基づいて言及するコンテンツの順番の並び替えを行う．そして，選択したコンテンツおよび109個のルールとフレーズ辞書に基づいて，使用するフレーズや述語句の統語形式，主語の照応関係等の選択を行うことで市況コメントの生成を行っている．このように，\citeA{kukich:1983:ACL}の研究では，人手で数多くのルールを記述する必要がある．一方，我々が提案するエンコーダ・デコーダを用いた手法では，実際の時系列株価データと人手で書かれた市況コメントのペアデータから対応関係を学習し， これらに基づいて，言及するべき値動きや価格等のコンテンツ選択および使用するフレーズ（単語列）の選択等を行うため，数多くのルールは不要である．

同様に，\citeA{aoki2016linguistic}は，日経平均株価を対象に，株価の値動きを説明するテキストの生成に取り組んでいる．本研究と同様に，この研究では， 時系列株価データと市況コメントのペアデータから学習した対応関係を基にテキスト生成を行う機械学習ベースの手法を提案している．具体的には，クラスタリング手法により算出した時系列株価データの類似度を基に，重み付けされたbi-gram言語モデルを生成し，その言語モデルを用いてテキスト自動生成を行う．また，\citeA{aoki2016linguistic}の研究では，時系列株価データの類似度に基づいて言及する値動きを選択するタスク（コンテンツ選択タスク）および 言語モデルを用いたテキスト生成タスクの 2 つを個々に取り組んでいる．一方，本研究ではエンコーダ・デコーダモデルによりこれらのサブタスクを同時に取り組むことが可能となる．加えて，この研究では，図\ref{fig:news_example}(3)，(5)のような終値や値上げ幅などの数値への言及を行う取り組みが行われていない．
これに対し本研究では，数値の変動を概況するだけでなく，入力の時系列数値データを参照した上で，実際の数値へ言及を行うテキストを生成する手法を提案する．

また，\citeA{aoki-etal-2018-generating}は，市況コメントにおいてしばしば言及される株価の変化要因の生成に取り組んでいる．ここで変化要因とは，「日経平均、反落で始まる　下げ幅100円超、\underline{欧米株安・円上昇で}」のように，市況コメントの主な記述対象である株価データ（日経平均株価）の値動きに影響したとされる外国株式や原油価格などの情報のことを指している．\citeA{aoki-etal-2019-controlling}は，時系列株価データに加えて，市況コメントの生成内容を表すトピックを入力として与えることで，市況コメント生成タスクにおける生成文の内容制御に取り組んでいる．
さらに，\citeA{zhang2018TACL1399}は，人手で書かれた文章のように自然で多様なテキストの生成を目的に，株価の値動きの方向（値上がり，値下がり）やその変動幅を表すための動詞を適切に選択するための研究に取り組んでいる．

これらの研究では，市況コメント生成タスクにおける，変化要因の記述\cite{aoki-etal-2018-generating}や生成文の内容制御\cite{aoki-etal-2019-controlling}，多様な表現を用いたテキスト生成\cite{zhang2018TACL1399}を行うことを目的としている． 一方，本研究では市況コメントにおける価格の履歴を参照する表現や時間帯に依存する表現，株価の数値表現などの様々な特性を表出するテキストの生成に取り組んでおり，これらの研究とは目的が異なる．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{提案手法}
\label{sec:our_model}

近年，機械翻訳\cite{cho-EtAl:2014:EMNLP2014}や文書要約\cite{rush-chopra-weston:2015:EMNLP}などの様々な系列生成タスクにおいて，エンコーダ・デコーダモデル\cite{sutskever2014sequence}を用いた手法が提案され，有用性が示されている．
本研究では，時系列株価データに対する市況コメントの生成を，時系列株価データから単語系列を生成する系列生成タスクとして考え，エンコーダ・デコーダモデルを用いた手法を提案する．
本研究では，エンコーダとして一般的に利用されている多層パーセプトロン(Multi-Layer Perceptron: MLP)，畳み込みニューラルネットワーク(Convolutional Neural Network: CNN)，再帰的ニューラルネットワーク(Recurrent Neural Network: RNN)のうちいずれかを採用し，それぞれの性能の比較を行う．
また，デコーダには，テキスト生成タスクにおいて広く使われている再帰的ニューラルネットワーク言語モデル(Recurrent Neural Network Language Model: RNNLM)を利用する．

時系列株価データの市況コメントを記述する際には，モデルでは，時系列データの絶対的・相対的な変化や最大値・最小値といった特徴を，異なるタイムスケールで捉える必要がある．
また，市況コメントでは，「前引け」，「大引け」などのテキストが書かれる時間に依存する表現が用いられることや，株価の終値や変動幅などの数値について言及されることがある．
本研究では，このような時系列株価データの多様な特徴を自動抽出してテキスト化するために，標準的なエンコーダ・デコーダモデルに対して3つの手法を提案する．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 2
\begin{figure}[b]
\begin{center}
\includegraphics{27-2ia7f2.eps}
\end{center}
\caption{提案モデルの概要\label{fig:model_overview}}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

本研究で提案するモデルの概要を図\ref{fig:model_overview}に示す．
提案モデルでは，時系列データの様々な変化を異なるタイムスケールで捉えるために，
短期的な時系列データ$\x_\subshort$および長期的な時系列データ$\x_\sublong$を入力として利用する．
また，テキストが書かれる時間に依存する表現を生成するために，デコード時にテキストを記述する時間帯の情報($\vec{T}$)を利用する．
加えて，市況コメントの生成時に株価の終値や変動幅などの実際の数値に言及する際には，入力した時系列データ中から正しい数値を出力するための演算操作($<$OP2$>$等)を推定し，計算することで数値の出力を行う．

以降では，(1)時系列株価データのエンコード手法，(2)テキスト生成時の時間帯の考慮，(3)数値の演算操作の推定について詳細を説明する．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{時系列株価データのエンコード手法}
\label{sec:encoding_method}

本研究では，時系列株価データとして，日経平均株価を使用する．
株価の短期的または長期的な数値の変動を捉えるために，短期的な時系列データとして，$N$タイムステップからなる1日分の株価データ
$\x_\subshort = \parentheses{x_{\text{short,\,}i}}_{\ind = 0}^{N-1}$，
長期的な株価データとして，過去$M$営業日分の終値
$\x_\sublong = \parentheses{x_{\text{long,\,}i}}_{\ind = 0}^{M-1}$，を入力として利用する．

画像処理分野\cite{Cun:1990:HDR:109230.109279}や自然言語処理分野\cite{vijayarani2015preprocessing}などの様々な分野において，機械学習モデルの汎化性能やデータに含まれるノイズを除去するために，データに対して前処理を行うことが一般的である\cite{zhang2005neural,banaee2013framework}．
本研究でも同様に，数値データである時系列株価データに対して，前処理を行う．

数値データの前処理手法として，標準化(\emph{standardization})と前日との差分(\emph{moving reference}) \cite{freitas2009prediction}を使用する．
使用する前処理手法の式を以下に示す：
\begin{align}
  x^{\text{std}}_{i} & =  \frac{x_i - \mu}{\sigma},\label{eq:std} \\ 
  x^{\text{move}}_{i} & =  x_i - r_{i} \label{eq:move},
\end{align}
ここで，$x_i$は数値データである株価を表す．
式(\ref{eq:std})では，学習に使用する全株価データ$\x$の平均値$\mu$，標準偏差$\sigma$を用いて標準化を行う．
式(\ref{eq:move})では，前日の終値からの価格の変動を捉えるために，前日の終値$r_{i}$から各タイムステップの価格$x_i$の差分を計算する．

次に，時系列株価データの前処理とエンコードの手順について説明する．
まず，前処理は，1日分の株価データ$\x_\subshort$，$M$営業日分の終値データ$\x_\sublong$に対して行い，数値ベクトル$\vec{\varl}_\subshort$，$\vec{\varl}_\sublong$をそれぞれ作成する．
次に，作成した数値ベクトルをそれぞれエンコーダへ入力し，エンコーダの出力状態ベクトル $\vec{h}_\subshort$，$\vec{h}_\sublong$を獲得する．
続いて，前処理により作成した数値ベクトルとエンコーダの出力状態ベクトルを結合し，\emph{multi-level representation}ベクトル\cite{mei2016navigational}を作成する．
このmulti-level representationについて，\citeA{mei2016navigational}は，
入力データの高レベルな表現($\vec{h}_\subshort$，$\vec{h}_\sublong$)と低レベルな表現($\vec{\varl}_\subshort$，$\vec{\varl}_\sublong$)を同時にモデルで考慮することで，モデルが入力データ中の重要な情報を選択する性能が向上したことを報告している．
株価の市況コメントの記述においても，入力データである短期的および長期的な時系列株価データ中の 重要な値動きを捉えることが必要とされる．
そのため，本研究でも同様に，multi-level representationを採用し，デコーダであるRNNLMの初期状態$\vec{s}_0$を次のように設定する：
\begin{equation}
    \vec{s}_{0} = \vec{\varl}_\subshort \oplus \vec{\varl}_\sublong \oplus \vec{h}_\subshort \oplus \vec{h}_\sublong.
\end{equation}
ここで，$\oplus$ は連結演算子を表している．

2つの前処理手法を用いる場合，短期的及び長期的な時系列株価データ$\x_\subshort$， $\x_\sublong$に対してそれぞれの前処理を適用し，4つの数値ベクトル
$\vec{\varl}_\subshort^\supmove$，$\vec{\varl}_\subshort^\supstd$, $\vec{\varl}_\sublong^\supmove$，$\vec{\varl}_\sublong^\supstd$.を作成する．
次に，それぞれの数値ベクトルに対して独立のエンコーダを使用し，計4つのエンコーダの出力状態ベクトルを獲得する．
この時，デコーダであるRNNLMの初期状態$\vec{s}_0$は次のように設定する：
\begin{equation}
    \vec{s}_0 =
        \vec{\varl}_\subshort^\supmove
        \oplus
        \vec{\varl}_\subshort^\supstd
        \oplus
        \vec{\varl}_\sublong^\supmove
        \oplus
        \vec{\varl}_\sublong^\supstd 
        \oplus
        \vec{h}_\subshort^\supmove
        \oplus
        \vec{h}_\subshort^\supstd
        \oplus
        \vec{h}_\sublong^\supmove
        \oplus
        \vec{h}_\sublong^\supstd. \label{eq:concat-all}
\end{equation}

また，時系列株価データのような時系列数値データから，数値の変動等の特徴を抽出するためのエンコード手法として，いくつかの方法が考えられる．
本研究ではエンコーダとして，MLP，CNN，RNNのいずれかを用いる．
本研究では，実験において，時系列数値データの特徴抽出手法として有用なエンコード手法を比較検討する．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{テキスト生成時の時間帯の考慮}
\label{sec:time-embedding}

時系列データの概況テキストは，テキストが書かれる時間帯に依って言及すべき内容は様々である．
例えば株価の市況コメントの場合，一般的に，図\ref{fig:news_example}中の(1)，(6)のように，
取引が始まる時間帯には「前日から価格がどのように変動したか」，
取引が終了する時間帯には「値上げ幅と終値はいくらか」等が言及される．

\citeA{li-EtAl:2016:P16-13}が行ったエンコーダ・デコーダモデルを用いた対話モデルの研究では，
デコード時にある個人の人格情報を追加的に入力することで，その人の話し方や背景などの特徴を捉えた単語列を生成できることが報告されている．
これらを踏まえ本研究では，デコード時の各タイムステップの状態$\vec{s}_j$に時間帯情報$\vec{T}$の付与を行い，時間帯を考慮したテキストの生成を行う．
具体的には，市況コメントが配信される時間帯（9時，15時等）を入力として時間帯情報埋め込みベクトル$\vec{T}$を作成し，
デコード時の各タイムステップの隠れ状態ベクトル$\vec{s}_j$に時間帯情報埋め込みベクトル$\vec{T}$を加算する\footnote{\citeA{li-EtAl:2016:P16-13}の研究では埋め込みベクトルを連結しているが，予備検証において加算の場合でも連結の場合と同様に出力が変化することが明らかになったため，今回は加算を採用した．}．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{数値の演算操作の推定}
\label{sec:arithmetic_operation}

RNNLMなどの言語モデルを用いたテキスト生成において，一定の出現頻度よりも少ない単語は未知語(out-of-vocabulary: OOV)として，$<$unk$>$などの特殊トークンに置き換えられることが一般的である\cite{sutskever2014sequence}．
特に，固有名詞や数値などのバリエーションが多い単語は出現頻度が少なくなる傾向があるため，OOVとして扱われてしまうことがある．
また，これらの単語がOOVとして扱われなかった場合であっても，その単語と類似した別の単語を誤って生成してしまうことがある．
機械翻訳の分野では，OOV問題の対策として，出現頻度が少なくなりやすい固有名詞などを入力テキストからコピーを行い，これらの単語を出力するための機構が提案されている\cite{luong-etal-2015-addressing,gulcehre-EtAl:2016:P16-1}．

入力の数値データに言及するテキストでは，図\ref{fig:news_example}中の(3，6)のように，入力データに含まれる数値について直接言及することが多い．
しかし，それだけではなく，履歴からの差分(3，6)や，切り上げ・切り捨てした値(5)が用いられることもある．
そのため，入力データから数値をコピーするだけでなく，「差分の計算」等の数値の演算操作が必要となる．
しかしながら，通常のモデルでは，このような演算操作を必要とする数値を直接的に生成することができない．そこで本研究では，演算した数値を間接的に生成するために，12種類の演算トークンを導入する．
具体的には，モデルにおいて株価の数値箇所を直接的に予測する代わりに，12種類の演算トークンのいずれかを推定し，予め定義した各演算トークンに対応する演算操作のルールに基づいて価格の計算を行い，計算結果の価格で演算トークンを置換する．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 1
\begin{table}[b]
\caption{定義した演算トークンと演算操作}
\label{table:operation}
\input{07table01.tex}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

本手法では，前処理として，学習データのテキスト中の価格箇所を$<$OP1$>$や$<$OP2$>$等の演算トークンに置換する．
使用する演算トークンは，言及する価格の性質に依って異なる．
表\ref{table:operation}に事前に定義した演算トークンと対応する演算操作の内容を示す．
ここで，次の市況コメントを例として，学習データのテキストの前処理方法について説明する．
\begin{exe}
    \centering
    \ex 日経平均、反発 午前終値は227円高の16,610円 \label{sen:original}
\end{exe}
前処理では，まず始めに，表\ref{table:operation}中の全ての演算操作（12種類）を行い，各演算トークンに対応する数値を計算する．
例えば，ここで，前日の終値$x_{\text{long,\,} M-1}$を「16,383」，最後のタイムステップの価格$x_{\text{short,\,}N-1}$を「16,610」とした場合，演算トークン$<$OP1$>$に対応する数値は「227」となる．
次に，各演算トークンに対応する数値「227」等とテキスト(\ref{sen:original})中の数値「227」，「16,610」を比較し，
正解の数値「227」，「16,610」のそれぞれに最も近い数値を計算した演算操作およびその演算トークンを求める．
最後に，導出した演算トークンを，正解の数値「227」，「16,610」に対する最適な演算トークンとして見做し，正解の数値と演算トークンを置換することで，以下の前処理済みテキスト(\ref{sen:preprocessed})を獲得する．
\begin{exe}
    \centering
    \ex 日経平均、反発 午前終値は$<$OP1$>$円高の$<$OP6$>$円 \label{sen:preprocessed}
\end{exe}
上記の例では，テキスト(\ref{sen:original})中の「227」は，前日の終値$x_{\text{long,\,} M-1}$である「16,383」と最後のタイムステップの価格$x_{\text{short,\,}N-1}$である「16,610」の差を表すため，演算トークン$<$OP1$>$に置換し，
「16,610」は，最後のタイムステップの価格$x_{\text{short,\,}N-1}$である「16,610」を表すため，演算トークン$<$OP6$>$に置換している．

次に，テスト時における数値の導出方法について説明する．
入力として，前日の終値$x_{\text{long,\,} M-1}$が14,612円で最後のタイムステップの価格$x_{\text{short,\,}N-1}$が14,508円の時系列株価データをモデルへ与え，テキスト(\ref{sen:inference})を生成した場合を考える．
\begin{exe}
    \centering
    \ex 日経平均、反落で始まる 下げ幅$<$OP2$>$円超、$<$OP7$>$円台 \label{sen:inference}
\end{exe}
まず，$<$OP2$>$を，前日の終値$x_{\text{long,\,} M-1}$と最後のタイムステップの価格$x_{\text{short,\,}N-1}$の差を10の位で切り捨てた価格である「100」へ置換する．
次に，$<$OP7$>$を，最後のタイムステップの価格$x_{\text{short,\,}N-1}$を100の位で切り捨てた価格である「14,500」へ置換する．
以上により，テキスト(\ref{sen:output})が得られ，これを出力テキストとする．
\begin{exe}
    \centering
    \ex 日経平均、反落で始まる 下げ幅100円超、14,500円台 \label{sen:output}
\end{exe}

このように，株価データと市況コメントのペアデータから対応関係を学習するエンコーダ・デコーダモデルと本課題に対する少量のルールを組み合わせることにより，従来のルールに基づくテキスト生成手法\cite{kukich:1983:ACL}と比べて，より少ないルールによって株価の価格や上げ幅等の数値表現を含む市況コメントの生成が可能となる．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実験設定}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{データセット}

実験には，時系列株価データとしてIBI-Square Stocks\footnote{http://www.ibi-square.jp/index.htm}から収集した2013年3月から2016年10月までの5分足の日経平均株価，
市況コメントとして日経QUICKニュース社が提供する日経平均株価ニュースのヘッドラインテキスト，計7,351件を利用した．
市況コメントの内，2013年3月から2016年1月までの市況コメントである5,880件を学習データ，2016年2月から同年10月までの730件，741件をそれぞれ開発データ，評価データとして利用した．
市況コメントの形態素解析にはMeCab\footnote{http://taku910.github.io/mecab/} （IPA辞書）を使用し，各形態素を1つの語彙とした．
また，学習データの市況コメントにおいて，出現回数が1回以下の形態素は未知語として扱い，特殊トークン$<$unk$>$へ置換を行った．
その結果，学習データにおける語彙サイズは691, 平均文長（1文あたりの平均語数）は12.5となった．

人手評価用の評価データとして，上記評価データからランダムに抽出した100件の市況コメントおよび株価データを使用した．

実験では，短期的な時系列株価データである1日分の株価データのタイムステップ数$N$を62, 長期的な時系列株価データである過去$M$営業日分の終値のタイムステップ数$M$を7とした．
本研究では，時系列株価データとして5分足の日経平均株価を用いている． 従って，市況コメントが書かれる直近の時間帯から62タイムステップ前までの株価を1日分の時系列株価データとして設定している．

学習時には，全62タイムステップから成る1日分の株価データ$\x_\subshort$，全7タイムステップから成る過去7営業日分の終値データ$\x_\sublong$と市況コメントのペアを使用する．
テスト時には，株価データのみを用いて市況コメントを生成する．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{ハイパーパラメータ}

エンコーダ・デコーダモデルの学習において，単語埋め込みベクトルの次元は128，時間帯情報埋め込みベクトルの次元は64, エンコーダの隠れ状態の次元は256とした．エンコーダにCNNを用いる場合，畳み込み層は1層とし，入力チャネル数は1, 出力チャネル数は16, フィルタサイズは3, 活性化関数にはReLU \cite{pmlr-v15-glorot11a}を使用した．同様に，MLPを用いる場合，隠れ層は3層とし，活性化関数にはTanhを用いた．また，RNNを用いる場合，1層のLong-Short Term Memory (LSTM) \cite{hochreiter1997long}を使用し，活性化関数にはTanhを用いた．

デコーダには，テキスト生成タスクで広く用いられているRNNLMを用いた．RNNには，LSTMを使用し，レイヤ数は1層とした．活性化関数にはTanhを使用した．デコーダの隠れ状態の次元数は，使用する前処理手法の数やmulti-level representationの有無によって変化する．例えば，式(\ref{eq:concat-all})のように，前処理手法として標準化および前日の差分の2手法を用い，さらにmulti-level representationを導入する場合，デコーダの隠れ状態は$1,162$次元となる\footnote{$62\times2+7\times2+256\times2+256\times2=1,162$より，2つの前処理手法およびmulti-level representationを導入する場合のデコーダの隠れ層は$1,162$次元となる．}．ここで，数値ベクトル$\vec{\varl}_\subshort^\supmove$，$\vec{\varl}_\subshort^\supstd$の次元数は62, $\vec{\varl}_\sublong^\supmove$，$\vec{\varl}_\sublong^\supstd$は7, エンコーダの出力状態ベクトル$\vec{h}_\subshort^\supmove$，$\vec{h}_\subshort^\supstd$，$\vec{h}_\sublong^\supmove$，$\vec{h}_\sublong^\supstd$の次元数は256である．

モデルの学習時には，デコーダの各タイムステップの入力として，学習データの市況コメントの単語系列をそのまま用いるTeacher Forcingにより学習を行った．また，本研究で使用する市況コメントのデータセットは，機械翻訳等の一般的なテキスト生成タスクと比べてデータ規模が小さいことから，事前学習済み言語モデルなどの事前学習の枠組みを導入することによる性能向上が期待できる \cite{song2019mass,devlin-etal-2019-bert,radford2019gpt2}．しかし，本研究で使用する市況コメントデータの予備検証において，事前学習を導入しない場合であっても，一定の学習効果が得られることが明らかになったため，単語埋め込みベクトルやエンコーダ・デコーダモデルにおける重みパラメータの事前学習，および，事前学習済み言語モデルの導入は行っていない．

ミニバッチのサイズは100, 損失関数には交差エントロピー，モデルパラメータの最適化手法にはAdam \cite{DBLP:journals/corr/KingmaB14} ($\alpha=0.001$，$\beta_1=0.9$，$\beta_2=0.999$，$\epsilon=10^{-8}$)を使用した．学習時のエポック数は30に設定した．
実験結果では，学習における全30エポックの内，開発データに対するBLEUが最も高いエポック時のモデルを評価対象とし，自動評価および人手評価の結果を報告する．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{評価指標}

実験では，2つの自動評価指標と人手評価により生成テキストの評価を行った．
1つ目の自動評価指標として，実際の株価の市況コメントと生成されたテキストの一致度合いを測る目的としてBLEU \cite{papineni-EtAl:2002:ACL}を使用した．
BLEUの計測にはMTEval toolkit\footnote{https://github.com/odashi/mteval}を使用した．スコアの計算においては，4-gramまでを考慮し，大文字・小文字は区別している．
また，ブートストラップ・リサンプリング法\cite{koehn:2004:EMNLP}により統計的有意差の検定を行った．有意水準は5\%とした．

2つ目の自動評価指標として，「続落，反発，上げに転じる」といった短期的・長期的な時系列株価データの変動を説明する表現や「始まる，前引け」などの時間帯に依存する表現を評価データの正解テキストと比較して正しく出力できているかを評価するために，F値を用いて評価を行った．
表\ref{table:phrases}にF値による評価で用いる表現を示す．ここで表\ref{table:phrases}において，各データにおける出現件数は，5,880件の学習データ，730件の開発データ，741件の評価データのそれぞれにおける各表現の出現件数を表している．F値による評価で用いる表現の選定においては，学習データの市況コメントにおける株価の変動を説明する表現および時間帯に依存する表現のうち，比較的に出現回数が多い13種類の表現を選定した．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 2
\begin{table}[t]
\caption{F値による評価に用いた表現および各データにおける出現件数}
\label{table:phrases}
\input{07table02.tex}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

人手評価では，生成テキストの情報性と流暢性について評価するために，金融工学の専門家の1人に評価を依頼した．
また，提案手法及び人手により生成した市況コメントの品質の違いを評価するために，システム名を伏せて， 両者の生成テキストおよび対応する短期的・長期的な時系列株価データ$\x_\subshort$，$\x_\sublong$を評価者に提示した．
人手評価では，情報性と流暢性の2つの観点について，0または1の2段階のスコア付けを行った．ここで，1は情報性または流暢性が高いことを表す．
情報性の評価では，評価者は生成テキスト及び対応する時系列株価データを参照し評価を行った．
具体的には，時系列株価データの重要な値動きや値動きの概況について適切に述べている生成テキストを情報性が高いテキストとして定義した．
流暢性の評価では，評価者は生成テキストのみを与え，テキストの可読性の観点で評価を行う．
すなわち，株価の値動きについて生成テキストで述べられている内容の正しさにかかわらず評価を行う．
また，数値の演算操作の推定を行わない場合，生成テキストにおける数値箇所が未知語($<$unk$>$)として出力されることで，流暢性の評価に影響する恐れがある．そのため本研究では，生成テキストにおける$<$unk$>$には適切な数値や文字列が入っているものとして評価を行うよう評価者に説明した．

また，人手で書かれた市況コメントでは，本研究で使用する時系列株価データには含まれてない情報について記述することがある．
例えば，人手で書かれた市況コメントである「日経平均、反落して始まる　米株安や円高で、下げ幅100円超える」には，「米株安や円高で」といった外部情報が含まれる．
システムへの入力として与える時系列株価データからこのような外部情報を予測することは不可能であることから，人手評価では，生成テキストに含まれる外部情報を無視して評価するように評価者へ依頼した．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{比較モデル}

表\ref{table:proposed_model}，表\ref{table:comparison_model}に提案モデルおよび比較モデルの一覧を示す．
実験では，まず，エンコード手法の検討として，MLP, CNN，RNNのそれぞれをエンコーダとしたモデル(\emph{mlp-enc}，\emph{cnn-enc}，\emph{rnn-enc})の比較を行う．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 3
\begin{table}[b]
\caption{実験で使用した提案モデルの概要}
\label{table:proposed_model}
\input{07table03.tex}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 4
\begin{table}[b]
\caption{実験で使用した比較モデルの概要}
\label{table:comparison_model}
\input{07table04.tex}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

次に，入力の時系列データから短期的及び長期的な変化を捉える能力があるかを確認するために，
短期的な株価データ$\x_\subshort$または長期的な終値データ$\x_\sublong$を使用しないモデル(\emph{-short}，\emph{-long})の比較を行う．
また，数値データの表現手法の有用性を確かめるために，
\emph{mlp-enc}モデルをベースとして，各前処理手法（標準化，前日との差分），multi-level representationを使用しない各モデル(\emph{-std}，\emph{-move}，\emph{-multi})の評価を行う．

最後に，数値の演算操作の推定手法，および，時間帯情報の入力手法の有用性を確かめるために，
各手法を使用しないモデル(\emph{-num}，\emph{-time})の評価を行う．
ベースラインとして，1日分の株価データのみを入力として，
エンコーダにMLP，前処理手法に標準化と前日との差分を使用するモデル(\emph{baseline})を用いた．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実験結果}

BLEU，F値による評価の実験結果を表\ref{table:bleu}，表\ref{table:f_measure}にそれぞれ示す．
また，各モデルの出力例と人手で書かれた市況コメント(\emph{Human})を図\ref{fig:output_example}に示す．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 5
\begin{table}[b]
\caption{各モデルの評価データに対するBLEUスコア}
\label{table:bleu}
\input{07table05.tex}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 6
\begin{table}[b]
\caption{各表現に対するF値}
\label{table:f_measure}
\input{07table06.tex}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 3
\begin{figure}[t]
\begin{center}
\includegraphics{27-2ia7f3.eps}
\end{center}
\caption{短期的・長期的な時系列株価データおよび各モデルの生成テキスト}
\label{fig:output_example}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{時系列株価データのエンコードおよび表現手法の効果}

まず，時系列株価データのエンコード手法の検討として，MLP, CNN, RNNのそれぞれをエンコーダとしたモデル(\emph{mlp-enc}，\emph{cnn-enc}，\emph{rnn-enc})の比較を行う．
BLEUによる自動評価では，MLPをエンコーダとした提案手法(\emph{mlp-enc})がベースラインを含めたその他全てのモデル(\emph{baseline}，\emph{cnn-enc}，\emph{rnn-enc} 等)と比較して，有意水準5\%で統計的有意にBLEUスコアが高かった．
また，表\ref{table:f_measure}の各表現に対するF値を比較すると，MLP, CNN, RNNのそれぞれをエンコーダとした3モデルにおいて，MLPをエンコーダとした\emph{mlp-enc}がより多くの表現を正しく出力できている．
特に，\emph{mlp-enc}は，「日経平均、反発で始まる　\underline{上げ幅}100円超」や 「日経平均、一時\underline{下げ幅}100円超える」のように，短期的な株価の変動を説明する際に用いられることが多い表現である「上げ幅」，「下げ幅」に対するF値が他の2つのモデル(\emph{cnn-enc}，\emph{rnn-enc})に対して大きく上回っていた．
これらの結果から，単語の一致率を基にした評価指標であるBLEUにおいて，MLPをエンコーダとした\emph{mlp-enc}がCNN, RNNのそれぞれをエンコーダとした\emph{cnn-enc}，\emph{rnn-enc}よりもBLEUスコアが向上したことが推察できる．

次に，時系列株価データの表現手法の検討として，数値データの前処理手法として使用した標準化および 前日との差分の比較を行う．
表\ref{table:bleu}のBLEUスコアによる自動評価では，標準化と前日との差分の両方を前処理手法として用いる\emph{mlp-enc}がいずれかの前処理を用いないモデル(\emph{-std}，\emph{-move})よりもBLEUが高いことが分かった．
表\ref{table:f_measure}のF値による評価においては，両者の前処理手法を用いる\emph{mlp-enc}は「上げに転じる」，「 下げに転じる」等の株価の値動きに言及する表現について，その他の2つのモデル(\emph{-move}，\emph{-std})よりも適切に出力できることが分かった．

また，各前処理手法の有用性を検証するために，両方の前処理手法を用いる\emph{mlp-enc}といずれかの前処理を用いない\emph{-std}および\emph{-move}のBLEUスコアに着目すると，\emph{-move}によって生成した市況コメントは\emph{-std}と比べて，\emph{mlp-enc}よりも大幅にBLEUスコアが低下している．
同様に，表\ref{table:f_measure}のF値による評価において，\emph{-move}は\emph{-std}と比べて，\emph{mlp-enc}よりも「続落」，「反発」等の株価の変動を説明する表現に対するF値が大幅に低下している．
以上のことから，数値データの前処理手法である前日との差分は，標準化よりも時系列株価データの変動を捉えて株価の値動きを説明する表現を生成する精度に大きく貢献していることが考えられる．

続いて，入力の時系列株価データの表現方法として用いたmulti-level representationの効果について比較する．
\ref{sec:encoding_method}節で述べたとおり，multi-level representationは， エンコーダの出力ベクトルである高レベルな表現（$\vec{h}_\subshort^\supmove$，$\vec{h}_\subshort^\supstd$ 等）と前処理手法により作成した数値ベクトルである低レベルな表現（$\vec{\varl}_\subshort^\supmove$ $\vec{h}_\subshort^\supstd$ 等）を同時に考慮することで，入力データ中の重要な情報を選択する性能が向上することを期待して導入したベクトル表現手法である．
表\ref{table:bleu}のBLEUスコアによる自動評価では，multi-level representationを用いないモデル(\emph{-multi})のBLEUスコアが\emph{mlp-enc}よりも低下することを確認した．
また，表\ref{table:f_measure}のF値による評価では，\emph{-multi}は\emph{mlp-enc}と比べて，「続落」，「反落」，「下げに転じる」等の株価の値動きを説明する表現に対するF値が低下することが分かった．
以上のことから，multi-level representationベクトルを導入することで，モデルが時系列株価データ中の重要な変動を捉える性能が向上し，自動評価指標であるBLEUやF値の改善に寄与したことが考えられる．

さらに，入力データとして短期的及び長期的な時系列株価データを用いることでモデルが株価の様々な変化を異なるタイムスケールで捉えることができているかを検証するために，短期的及び長期的な時系列株価データ$\x_\subshort$，$\x_\sublong$を両方用いたモデル（\emph{mlp-enc}，\emph{rnn-enc} 等）とそれぞれ用いないモデル(\emph{-short}，\emph{-long})の比較を行う．
まず，表\ref{table:bleu}のBLEUによる自動評価では，両方のデータを用いた\emph{mlp-enc}は，いずれかを用いない\emph{-short}および\emph{-long}と比べてBLEUスコアが有意に向上することを確認した．
特に，短期的な時系列株価データ$\x_\subshort$を入力に与えないモデル(\emph{-short})では，BLEUスコアが著しく低下した．
また，表\ref{table:f_measure}の各表現に対するF値の評価では，両方の時系列株価データを用いたモデル（\emph{mlp-enc}，\emph{rnn-enc} 等）は，\emph{-short}及び\emph{-long}と比較して「続落，反発，上げに転じる」等の短期的及び長期的な株価の変化を説明する表現を正しく出力できることが分かった．
これらの結果より，入力データとして短期的及び長期的な時系列株価データを与えることで，モデルが株価の様々な変化を捉える性能が向上し，値動きを説明する表現を適切に生成する精度の改善に寄与したことが考えられる．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{時間帯の考慮手法の効果}

次に，モデルが市況コメントが書かれる時間帯に依存する表現を用いて 株価の値動きを適切に説明する性能が向上することを期待して導入した時間帯情報埋め込みベクトル$\vec{T}$の効果について検証を行う．
具体的には，時間帯情報を用いたモデル(\emph{mlp-enc})とそれを用いないモデル(\emph{-time})の比較を行う．

まず，表\ref{table:bleu}のBLEUによる自動評価では，デコード時のデコーダの状態に時間帯情報を付与していない\emph{-time}モデルは，\emph{mlp-enc}と比べてBLEUが有意に低下することを確認した．
次に，表\ref{table:f_measure}において，時間帯情報を考慮するモデル（\emph{rnn-enc}，\emph{-num}等）と時間帯情報を考慮しないモデル(\emph{-time})を比較すると，\emph{-time}は「始まる，前引け，大引け」といった時間帯に関して言及を行う表現を正しく出力できていないことが分かる．

また，表\ref{table:f_measure}より，時間帯情報を考慮しない\emph{-time}は時間帯情報を考慮する\emph{mlp-enc}と比べて，時間帯に依存する表現だけでなく，「X円高の」，「X円安の」等の株価の変動幅に言及する表現の予測精度も低下することが分かった．
これは，「日経平均、大幅続伸　\underline{前引け}は\underline{251円高の}12,219円」のように，
株価の市況コメントにおいて，「前引け」，「大引け」は， 前日の終値からの変動幅について言及する際の「X円高の」，「X円安の」といった表現とともに用いられる傾向が強いためであると考えられる．
つまり，時間帯情報を与えないことで，モデルが「前引け」，「大引け」について言及する性能が低下し，同様に「X円高の」，「X円安の」といった表現の予測性能が低下したことが推察できる．

以上のことから，モデルへ時間帯情報を導入することにより，時間帯に依存する表現を適切に用いつつ株価の値動きを説明する性能の改善に貢献することが考えられる．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{数値の演算操作の推定手法の効果}
\label{sec:result_operation}

モデルが生成した株価の市況コメントにおいて，株価の終値や変動幅などの数値を適切に出力できているかを検証するために，数値の演算操作の推定手法を導入したモデル(\emph{mlp-enc})と導入していないモデル (\emph{-num}) の比較を行う．
各モデル(\emph{mlp-enc}，\emph{-num})による市況コメントの生成例および人手で書かれた正解テキスト(\emph{Human})を表\ref{table:example_-num_output}に示す．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 7
\begin{table}[b]
\caption{-numおよびmlp-encモデルによる市況コメントの生成例}
\label{table:example_-num_output}
\input{07table07.tex}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

まず，表\ref{table:bleu}のBLEUによる自動評価では，演算操作の推定手法を導入していない\emph{-num}は，本手法を導入した\emph{mlp-enc}と比べてBLEUスコアが大きく低下することが分かった．
ここで，\emph{-num}と\emph{mlp-enc}の差分は，数値の演算操作の推定手法のみであることに注意されたい（表\ref{table:proposed_model}，表\ref{table:comparison_model}）．

本手法を導入した\emph{mlp-enc}では，株価等の数値について言及する際，予測した演算操作に基づいて実際の値を計算し出力する．
一方，本手法を導入していない\emph{-num}や\emph{baseline}等では，数値の演算操作の推定を行わず，デコーダであるRNN言語モデルから数値を``単語''として出力する．
そのため表\ref{table:example_-num_output}のように，演算操作の推定を導入していない\emph{-num}によって生成した市況コメントでは，数値として言及すべき箇所において$<$unk$>$や適切ではない数値（126円）が出力される事例が多く，単語の一致率を基にしたBLEUによる自動評価において，\emph{mlp-enc}よりも低いスコアとなったことが考えられる．

次に，数値の演算操作によってどの程度の株価の数値表現を正しく出力できているかについて分析を行う．
表\ref{table:num_of_correct_number}に評価データ中の各数値表現を各モデル(\emph{mlp-enc}，\emph{-num})が正しく出力できた数， できなかった数を算出した結果を示す．
表\ref{table:num_of_correct_number}の算出において，「日経平均前引け、\underline{97円}安の\underline{17,137円}」のように1件の市況コメントに複数の数値表現が含まれている場合は，各数値表現に対して正しい数値を出力できている数を算出した．
全741件の評価データにおいて，株価の数値表現は合計で863事例含まれていた．
このうち，数値の演算操作の推定手法を導入した\emph{mlp-enc}では，640事例の数値表現を正解テキストと比較して正しく出力できていた．
一方，本手法を導入していない\emph{-num}では，92事例の数値表現を正しく出力できていたが，その他の771事例において数値表現が誤っていた．
以上により，数値の演算操作の推定を行うことにより，多くの事例で株価の数値表現を正しく出力できていることが確認できた．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 8
\begin{table}[b]
\caption{評価データにおける数値表現の正解・不正解数}
\label{table:num_of_correct_number}
\input{07table08.tex}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

加えて，表\ref{table:num_of_correct_number}における\emph{mlp-enc}の数値表現の誤り223事例について分析を行った．具体的には，正解の演算操作とテキスト，および，推定した演算操作と生成テキストの四つ組を参照し，人手による分析を行った．その結果，\emph{mlp-enc}の数値表現の誤りである223事例のうち81事例は，数値表現の切り上げ・切り捨て操作（$<$OP3$>$，$<$OP5$>$等）の推定誤りが起因していることが分かった．例えば，正解テキストでは演算トークンが$<$OP5$>$である数値表現について$<$OP3$>$と推定した事例が37事例と一番目に多く，正解テキストでは演算トークンが$<$OP4$>$である数値表現について$<$OP3$>$と推定した事例が26事例と2番目に多いことが分かった．
また，その他の142事例については，正解テキストと生成テキストにおけるコンテンツ選択の異なりに起因していることが分かった．具体例として，正解テキストでは「日経平均、反落で始まる　下げ幅は\underline{100円}超える」のように株価の下げ幅について言及しているのに対し，生成テキストでは「日経平均、反落で始まる　\underline{17600円}台」のように株価自体が何円台になったかについて言及している事例などが挙げられる．この事例の場合，正解テキストに含まれる数値（100円）と生成テキストの数値（17600円）は異なるため，表\ref{table:num_of_correct_number}において不正解として算出されていることに注意されたい．

また，本研究では，市況コメントで用いられる価格の差分や切り上げ・切り捨てした値などの数値表現を生成するために，12種類の演算トークン（表\ref{table:operation}）を導入している．しかし，市況コメントの生成時に正解の数値表現に対応する演算トークンが無い場合，数値表現の誤りが発生することが懸念される．そこで，本研究で提案する12種類の演算トークンの網羅性について調査を行った．具体的には，実験で使用した評価データにおける株価の数値表現である全863事例において，定義した演算トークンに該当しない数値表現の事例を人手によって確認した．その結果，定義した演算トークンに該当しない事例が2つあることが分かった．表\ref{table:no_rule_cases}にそれらの事例を示す．例えば，事例(a)における「200円」は，週の初めから現在までに株価がどの程度の範囲で値動きしたかを表す値幅であり，表\ref{table:operation}の演算トークンに該当するものは存在しない．また，事例(b)における「2448円」は，該当年度において株価がどの程度下落したかを表す年度ベースの下げ幅であり，こちらも同様に表\ref{table:operation}に該当するものは存在しない．これらの数値表現を算出するためには，対応する演算トークンを導入する必要があることに注意されたい．以上の調査の結果，実験で使用した評価データにおいて定義した演算トークンに該当しない事例は2件であり， 演算トークンの網羅性が起因となる数値表現の誤り発生は少ないことが分かった．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 9
\begin{table}[b]
\caption{定義した演算トークンに該当しない事例}
\label{table:no_rule_cases}
\input{07table09.tex}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{人手評価結果}

表\ref{table:human_eval}に提案手法(\emph{mlp-enc}), ベースライン手法(\emph{baseline})で生成した市況コメントおよび 人手で書かれた市況コメント(\emph{Human})に対する人手評価の結果を示す．
ここで表\ref{table:human_eval}において，情報性および流暢性は，0または1の2段階評価においてスコアが1であった事例数，外部情報は生成テキストに外部情報を含む事例数を表している．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 10
\begin{table}[b]
\caption{人手評価の結果}
\label{table:human_eval}
\input{07table10.tex}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

人手評価の結果，人手で書かれた市況コメントよりもやや劣るものの，提案手法により情報性および流暢性に関して質の高い市況コメントを生成できることが分かった．
また，提案手法とベースライン手法の人手評価結果の比較では，情報性について，提案手法がベースライン手法を大幅に上回る結果となった．
しかし，流暢性の観点においては，ベースライン手法が提案手法を上回っていた．

情報性に関する人手評価において提案手法がベースライン手法よりも大幅に上回っていた理由として，図\ref{fig:output_example}のように，提案手法はベースライン手法と比べて生成テキスト中の株価の数値表現の誤りが少ないことが主な要因として考えられる．
また，ベースライン手法は数値の演算操作の推定手法を使用していないため，\ref{sec:result_operation}節の\emph{-num}のように多くの事例において，数値表現の誤りが含まれていることが推察できる．
これらの結果から，時系列株価データの値動きを適切に述べているかに基づいた情報性の評価において，評価者が提案手法の生成テキストの情報性が高いと判定したことが考えられる．

加えて，生成テキストの流暢性に関する人手評価においてベースライン手法が提案手法を上回っていた理由として，提案手法における演算操作の推定誤りによって，提案手法が「日経平均、上げ幅0円超える」といったテキストを生成していたことが原因として考えられる．
「0円超える」といった表現は市況コメントにおいて通常使われず不自然であり，株価の値動きについても述べられていないため，評価者がこのような表現を含む生成テキストを流暢性および情報性が低い市況コメントと判定したことが考えられる．
実際に，各評価事例に対する人手評価結果を集計したところ，評価者が流暢性に0を付けた7件の提案手法の生成テキストのうち，6件において「0円」という表現が含まれていることが分かった．
また，「0円」という表現は通常の市況コメントでは用いられないため，価格を``単語''として予測するベースライン手法の語彙には含まれていない．
そのため，ベースライン手法では上記のような「0円超える」といった表現を含む不自然なテキストを生成しない．
このことから，評価者はベースライン手法で生成された全ての市況コメントについて流暢性が高いと判定したことが考えられる．

また，人手で書かれた市況コメント(\emph{Human})のうち，5件の流暢性が低いと判定された理由について確認を行った． その結果，5件の市況コメントのいずれにおいても「日経平均、反発して始まる　\underline{42 円高、短期的な戻りを期待}」といった，価格の言及方法について独特の略し方が用いられていることが分かった．その要因として，本実験では日経平均株価ニュースのヘッドラインテキストを市況コメントとして使用しており，文字数やスペース等の制約が存在することが関係していると考えられる．このような略した表現は，ほかの多くの市況コメントでは用いられないことから流暢性が低いと判定されたと考えられる．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{各学習データサイズのモデル精度への影響}

学習データサイズを変化させた場合のモデル精度への影響について分析を行った．
図\ref{fig:bleu_datasetsize_graph}に各学習データサイズにおける各モデルのBLEUスコアの比較を示す．
分析では，開発データセットに対するBLEUスコアを算出した．
実験結果より，学習データサイズを3,000事例にした時に，ほとんどのモデルにおいてBLEUスコアが飽和していることが分かった．
また，各モデル間でスコアの収束の早さに大きな違いは無かった．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% fig. 4
\begin{figure}[t]
\begin{center}
\includegraphics{27-2ia7f4.eps}
\end{center}
\caption{各学習データサイズにおけるBLEUスコアの比較}
\label{fig:bleu_datasetsize_graph}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{おわりに}

本研究では，日経平均株価を例として，時系列株価データから株価の値動きを概況する市況コメントを自動生成するためのエンコーダ・デコーダモデルを提案した．
時系列株価データを概況する市況コメントには，
時系列データ中の数値への言及，過去の価格の変動との比較，テキストが書かれる時間帯によって言及する内容が異なる，などの特徴があり，本研究では大きく分けて3つの手法を提案し，有用性を示した．


今後の課題として2点を挙げる．まず，1点目の課題として，時系列株価データのエンコード手法のさらなる検討のために，近年さまざまな言語処理タスクで有用性が示されているSelf-Attention Network (SAN)をエンコーダとして利用することが挙げられる．SANの利点の1つとして，RNNなどの再帰構造のネットワークと比べて，時系列データにおける各タイムステップ間の依存関係をより短い距離で考慮できることが挙げられる\cite{vaswani2017transformer,shen2018bisan}．これにより，全62タイムステップからなる1日分の時系列株価データといった長い系列長の時系列データにおける長距離の依存関係をモデル化する能力が向上し，短期的及び長期的な株価の変化を捉える性能が改善することが期待できる．

2点目の課題として，いつからいつまでの株価の値動きや上げ幅について言及するべきかモデルに考慮させることが考えられる．
例えば，実際の日経平均株価の上げ幅が300円だったにも拘わらず，現在のモデルでは「日経平均、上げ幅200円超える」といった市況コメントを生成することがある．
このような生成テキストは，誤りではないが正確な市況コメントとは言えない．
この問題を解決するために，モデルが市況コメントを生成する際に，生成テキストで言及する時系列株価データの期間を選択するための機構が必要であると考えられる．

また，今後の展望として，天気予報やスポーツなどの様々なドメインにおける時系列データの概況テキストの生成や，株式市場全体の個別銘柄などの複数の時系列株価データを考慮した市況コメントの生成などが考えられる．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\acknowledgment

本論文は筆者らが国立研究開発法人産業技術総合研究所に在籍中の研究成果をまとめたものです．
また，本論文の一部は，The 55th Annual Meeting of the Association for Computational Linguistics (ACL2017)で発表したものです\cite{murakami-etal-2017-learning}．
この成果は，国立研究開発法人新エネルギー・産業技術総合開発機構 (NEDO) の委託業務の結果得られたものです．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliographystyle{jnlpbbl_1.5}
\bibliography{07refs}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{biography}

\bioauthor{村上聡一朗}{2015年熊本高等専門学校専攻科電子情報システム工学専攻修了．2017年東京工業大学大学院博士前期課程修了．同年，株式会社NTTドコモに入社．2019年より，東京工業大学工学院博士後期課程に在籍．自然言語処理，特に自然言語生成，機械翻訳に関する研究開発に従事．ACL, 言語処理学会，各会員．}

\bioauthor{渡邉　亮彦}{2012年群馬工業高等専門学校専攻科生産システム工学専攻修了．2014 年東京工業大学大学院総合理工学研究科博士前期課程修了．同年，同研究科博士後期課程に進学．2018年より，株式会社EduLabにて機械学習を活用したプロダクトの研究開発に従事．}

\bioauthor{宮澤　　彬}{2012年早稲田大学政治経済学部経済学科卒業．2014年より総合研究大学院大学複合科学研究科情報学専攻博士課程に在籍．自然言語処理、特にメタファーへの計算的アプローチに関心を持つ。}

\bioauthor{五島　圭一}{2012年慶應義塾大学経済学部卒業．2014年慶應義塾大学大学院経営管理研究科修士課程修了．2017年東京工業大学大学院総合理工学研究科知能システム科学専攻博士後期課程修了．博士（工学）．日本銀行金融研究所を経て，2019年より早稲田大学商学部講師．}

\bioauthor{柳瀬　利彦}{2005年東京大学工学部電子情報工学科卒業．2007年東京大学大学院新領域創成科学研究科基盤情報学専攻修士課程修了．2010年同大学大学院にて博士後期課程を修了．博士（科学）．株式会社日立製作所を経て，2018年より株式会社Preferred Networksにて機械学習及びブラックボックス最適化に関する研究開発に従事．人工知能学会，Association for Computing Machineryの会員．}

\bioauthor{高村　大也}{1997年東京大学工学部計数工学科卒業．2000年同大大学院工学系研究科計数工学専攻修了（1999年はオーストリアウィーン工科大学にて研究）．2003年奈良先端科学技術大学院大学情報科学研究科博士課程修了．博士（工学）．2003年から2010年まで東京工業大学精密工学研究所助教．2006年にはイリノイ大学にて客員研究員．2010年から2016年まで同准教授．2017年より同教授および産業技術総合研究所人工知能センター知識情報研究チーム研究チーム長．計算言語学，自然言語処理を専門とし，特に機械学習の応用に興味を持つ．}

\bioauthor{宮尾　祐介}{2000年東京大学大学院理学系研究科修士課程修了．2001年より同大学にて助手，2007年より助教．2006年同大学大学院にて博士号（情報理工学）取得．2010年より国立情報学研究所准教授，2018年より東京大学教授．構文解析，意味解析などの自然言語処理基盤技術とその応用の研究に従事．人工知能学会，情報処理学会，言語処理学会，Association for Computational Linguistics 各会員．}

\end{biography}

\biodate



\end{document}

