u++の備忘録

【論文メモ】決算短信からの事業セグメント情報抽出

決算短信からの事業セグメント情報抽出

どんなもの?

決算短信特有の言語的な特徴を考慮した「事業セグメント情報抽出手法」を提案し、その有用性について実データを用いて評価

  • 決算情報は一般的に事業セグメント(企業の構成単位)ごとに記載されている
  • 「事業セグメント名」及び「事業セグメントの内容」の抽出は重要
    • 「事業セグメント別の売上情報」を組み合わせることで各企業の経営状態が可視化できる可能性がある

f:id:upura:20180505164157p:plain

先行研究と比べてどこがすごい?

  • 「事業セグメント名」及び「事業セグメントの内容」の情報は投資判断の上で重要であるが,「事業セグメント名」及び「事業セグメント内容」の決算短信からの自動抽出手法については確立されていない
  • 現状,決算短信特有の言語的な特徴に関する知見はあまり共有されていない

技術や手法のキモはどこ?

事業セグメント名抽出

  • 事業セグメント情報段落の各単語をBidirectional Bag of Words (BBOW)でベクトル化
    • 各単語の前10語、後10語の頻度でベクトル v_f, v_bを作成し、 [v_f, v_b]を単語ベクトルとして与える
  • 事業セグメント名であれば正、そうでなければ負として予測モデルを作成(ロジスティック回帰)
  • 決算短信特有の言語的な特徴に基づいた手法である
    • 各企業は似た言い回しでセグメント情報を記述する
    • 各単語について単語の前に出現する単語の頻度分布と単語の後に出現する単語の頻度分布は異なる

事業セグメント説明文抽出

  • 訓練データセット内の事業セグメントを含む文についてセグメント説明を含む文を正例,含まない文を負例としてラベルを与え,訓練データセット内の文を用いて予測モデル (ロジスティック回帰モデル) を学習
    • 文の素性にはbag of words

事業セグメント内容抽出

各事業セグメントに関する説明を記載している文は以下に分類できる

分類 説明
単一型 文中に単一の事業セグメントの情報のみ含むもの 450
Forward型 一文中に複数の事業セグメントの説明があり,「セグメント名」,「セグメント説明」の順でセグメント情報が記載されるもの 90
Backword型 一文中に複数の事業セグメントの説明があり,「セグメント説明」,「セグメント名」の順でセグメント情報が記載されるもの 27

数=検証データ320文書中のセグメント説明を含む分580文のうちの数

この性質を踏まえて、以下のように抽出する

  • 抽出済の事業セグメント名を用いて単一型かを判断し、その場合はその文中の説明を「事業セグメント内容」とする
  • 単一型でない場合は「Forward型」と「Backward型」かを分類する予測モデル(ロジスティック回帰)
    • 文の素性にはbag of words

どうやって有効だと検証した?

  • 「セグメント情報」を決算短信に記載している320企業の決算短信を対象に実験
  • 事業セグメント名抽出では、BBOWの有用性が示唆された
  • 事業セグメント説明文抽出と事業セグメント内容抽出でも、交叉検証のF値が0.9弱と、まずまずの性能を発揮した

f:id:upura:20180505171905p:plain

  • 最後に、一連の処理を通して事業セグメント説明文抽出を実施した場合には、Precisionが35/48=0.73、Recallが35/65=0.54という結果だった

議論はある?

一連の処理を通した事業セグメント説明文抽出の精度を改善したい

次に読むべき論文は?

NULL

【論文メモ】経済記事からの不祥事報道検知

経済記事からの不祥事報道検知

どんなもの?

  • 経済記事を「不祥事」か否かで二値分類するための実務的な End-to-End のシステムを設計・構築
    • 分類システムを実運用に向けてデザインする上では精度は重要な指標の一つに過ぎず、解釈性、頑健性等に関する課題および解決策に関する研究を行なった
    • 時間の経過とともに正のクラスの定義が変化する実環境の難しさにも対応するため、再学習の仕組みも取り入れた

実務的背景

  • 資産運用実務において近年、非財務情報として環境(Environment)・社会(Social)・企業統治(Governance)への取組姿勢を評価に取り入れる「ESG投資」に注目が集まっている
  • 企業の不祥事イベントを早期に認識し、株価・財務内容への影響分析や投資分析を行う重要性が増加している

先行研究と比べてどこがすごい?

経済記事の分類に関する研究はセンチメント分類やイベント検出など様々あるが、不祥事検知については前例がない

技術や手法のキモはどこ?

実務上の目的に向けて、精度の向上だけでなく「解釈性の担保」「頑健性」「再学習の必要性」などの課題に取り組んでいる

  • 解釈性の担保
  • 頑健性
    • 特定期間のみに対して有効な特徴が多く、固有名詞を除外するなどの汎化性能対策をした
  • 再学習の必要性
    • "我々の経済社会では、時間の経過とともに、絶えず新たな種類の不祥事が報道され社会的関心を集めている"
    • ある記事に対するシステムの分類結果が誤っているとユーザが判断した場合は、それをユーザインターフェース(UI)から変更し、分類器の学習に再度用いる仕組みを構築

どうやって有効だと検証した?

第5章 再学習に関する実験

過去のデータのみを使って学習させた場合、時が経つにつれて適合率や再現率が低下していくと分かった

※ このグラフの凡例が合っているか分からない。学習期間の月数が少ないほど精度が低いのは何故だ。。。

f:id:upura:20180505161915p:plain

議論はある?

  • 半教師あり学習の手法も検討してみたい

次に読むべき論文は?

NULL

【論文メモ】関連記事判定のためのニュース記事キーフレーズ抽出

関連記事判定のためのニュース記事キーフレーズ抽出

どんなもの?

  • 以前に報道された事柄を前提とする「続報記事」について、関連記事を自動判定する仕組みを作成したい
    • 学習データを用意して直接学習させるのは現実的ではない
      • 多岐にわたる内容の記事に対して学習データを用意するのが困難
      • 学習時に存在しなかった新規の話題が次々と現れ判定器がすぐに劣化すると想定される
    • そこで、教師なしのキーフレーズ抽出法を用いて記事の主題を抽出し、そのフレーズを関連記事抽出に応用する
  • キーフレーズには「文書の内容を端的に表現」「文書の検索を容易にする」の役割がある
    • 本稿の文脈では後者の役割が大切で、特に関連記事が同一のキーフレーズを共有しているという性質(キーフレーズ共有性)が重要である
  • 本稿では、キーフレーズ共有性に着目した、明示的な正解を用いないキーフレーズ抽出法と評価尺度を提案
    • 提案する評価尺度によると従来の抽出法には課題があると示す
    • その課題を改善する新しい抽出法を提案

先行研究と比べてどこがすごい?

  • 従来のキーフレーズ抽出手法は、著者などが設定したキーフレーズの再現性で評価されることが多い[3]
    • 著者らが付与するキーフレーズはキーフレーズ共有性を重要視していない
    • 特に内容を端的に表現することを重視してキーフレーズをつけた場合、関連する文書同士でも選ばれるキーフレーズが異なる場合が多く、本稿の目的にはそぐわない

第2章 キーフレーズ共有性の評価

  • データセットYahoo!トピックス
    • Yahoo!ニュースに入稿される記事から、編集者が毎日100件前後抽出して作成(例:「トランプ大統領来日」「台風21号」「衆議院選挙」)
    • 2017年10〜12月の記事のうち、2記事以上を含む66トピック1716記事を利用
  • あるキーフレーズ抽出法で各記事にそれぞれキーフレーズを付与した時、同一トピックの記事が同じキーフレーズを共有していれば、その抽出法は関連記事抽出に使いやすいフレーズを出力できていると見なす
既存の六つの教師なしキーフレーズ抽出法
抽出法 説明
TF-All 全ての品詞を含む全単語から,記事中の出現頻度が高い順にキーフレーズとする
TF-Noun TF-Allで品詞を名詞だけに制限
TF-IDF-Noun 各名詞の出現頻度に逆記事頻度(IDF)をかけ,値が高い順にキーフレーズとする
TF-IDF-Phrase キーフレーズ候補を連続する名詞からなるフレーズとする.フレーズを構成する各名詞毎に TF-IDF を計算しその和をスコアとし、高い順にキーフレーズとする
PosRank グラフベースの教師なしキーフレーズ抽出法である PositionPank[1] を用いたもの.キーフレーズ候補は「[形容詞]*[名詞]+」の形をしたフレーズである.ウィンドウサイズは5とした
PosRank-Noun PosRank において,キーフレーズ候補を名詞 1 単語のみとしたもの
評価結果

f:id:upura:20180505144128p:plain

K: 抽出キーフレーズ数, P: Precision, R: Recall, F: F値

技術や手法のキモはどこ?

  • Recallが低くなる問題を解決するため、類似記事を参照する方法として、TF-IDFを改良した手法を提案
    • 記事内の単語の出現頻度(TF)に変えて、類似記事での出現記事数(Neighborhood Frequency, NF)を用いる
    • この変更で、著者特有の表現などその記事においてのみ使用される表現がフレーズとして抽出されることを避けられる
  • 一方で、1記事のキーフレーズ抽出にD全体の情報が必要になるため、計算コストは高くなる
    • RNNを用いて事前にD全体の情報を用いてモデルを構成しておき、抽出時には対象記事dのみを用いてNF-IDFを推定する手法も実装した(BiGRU-CRF)
      • 学習用記事群Dに対して,NF-IDFを用いて記事毎に各10フレーズを抽出
      • それぞれの記事でフレーズとして抽出された箇所に,固有表現抽出の学習で用いられるBIESOタグ[5]を用いてタギング
      • 2で得られたタグを学習データとし,入力単語列からタグ列を推定するモデルを学習
      • フレーズ抽出時には,学習されたモデルに文章を入力し,キーフレーズとしてタギングされる確率が高い箇所から順にキーフレーズとして出力

どうやって有効だと検証した?

  • 評価用の記事とは別のニュース記事50万件でRNNを学習
  • 第2章と同様の評価を実施
    • NF-IDFで、既存手法に対してRecallもPrecisionも大きく向上した
    • BiGRU-CRFでは、NF-IDFも上回る結果を示した

f:id:upura:20180505150629p:plain

議論はある?

  • BiGRU-CRFでは、NF-IDFと同様の性能を期待していたが、大きく上回る結果を示した
    • フレーズの周辺情報による汎化と,CRFの確率モデルの部分がNF-IDFの不安定さを吸収できたためではないかと考えられる

次に読むべき論文は?

[1] C. Florescu and C. Caragea. Positionrank: An unsupervised approach to keyphrase extraction from scholarly documents. In Proceedings of the 55th Annual Meeting of the ACL, volume 1, pages 1105–1115, 2017.

大学中退→10月入社で得た三つのもの:金と時間と健康

「働き方」にまつわる #わたしの転機 の一つは、東大を退学して2017年10月に新卒入社したことです。GWのまとまった休みで気持ちの整理をしたいという考えから、入社から7カ月を経ての思いの丈を備忘録にまとめておきます。

upura.hatenablog.com

存在した三つの選択肢

転機となった2017年10月、僕には三つの選択肢がありました。

  • そのまま大学に在籍し続ける
  • 半年間在籍or休学して翌4月に入社する
  • 即座に中退して入社する

最終的には三つ目の選択肢を採用しましたが、そのおかげで得られたものは多かったと思っています。
(もちろん学位など失ったものも多くありますが・・・)

10月入社で得た三つのもの

この決断で得たものは、大きく分けて金・時間・健康の三つです。

これは一番分かりやすいですね。大学に在籍していれば年間56万程度の学費を払っていたのが、入社したことで逆に安定した収入が入ってくるようになりました。僕の場合は大学時代と入社後で(プログラミングという視点などでは)やっていることに大差がないと捉えているので、この違いは大きいと思っています。

気軽に技術書をAmazonでポチれる、後輩に躊躇せずカッコつけて飯を奢れる、といったレベルでしかお金を基本使わないのですが、精神的な余裕ができたのは良いことかなと。

時間

これは個人差が大きい話かと思いますが、僕は大学時代性格上、常に研究のことを考えてしまう節がありました。入社したことで、良くも悪くも「勤務時間」という概念が発生したのは、オン・オフを切り替えるという面で非常に効果的に働いていると感じています。

例えば大学時代はGWも常に研究のことばかりを考えて、何なら毎日研究室にいることもありました。しかし今は業務端末を会社に置いてあるので物理的に仕事ができず、まとまった時間で家事をしたり趣味的な勉強をしたりといったことが可能になった気がしています。ブログの更新数も、中退して入社すると決めた頃から格段に増えています。

健康

これは「時間」に密接に関係している話ですが、比較的時間に余裕ができたので、意識的にウォーキング・ジョギングや筋トレをするようになりました。「社会人になったし、一念発起して頑張ろう」という強い思いから実現している面もあると思います。立派なエンジニアになるため、良い筋肉を身に付けたいです。

おわりに

徒然なるままに書き連ねた通り、現状は思い切った決断をした自分を褒めてあげたいなと思っています。そして改めて、学費を払ってもらっている立場の癖に、突然「中退して就職する」とか勝手なことを言う息子を受け入れてくれた両親にも感謝せねばなぁと。

人生はA/Bテストできないので、この決断が良かったかどうかは永遠に分かり得ませんが、将来振り返った時に自信を持って「成功だった」と言えるよう、邁進していく所存です。

りっすん×はてなブログ特別お題キャンペーン「りっすんブログコンテスト〜わたしの転機〜」
Sponsored by イーアイデム

【論文メモ】Data2Vis: Automatic Generation of Data Visualizations Using Sequence to Sequence Recurrent Neural Networks

Data2Vis: Automatic Generation of Data Visualizations Using Sequence to Sequence Recurrent Neural Networks

どんなもの?

  • 与えられたデータセットから「データ・ビジュアライゼーション」を自動的に生成するためのニューラル翻訳モデル「Data2Vis」を提案
  • 「データ・ビジュアライゼーション」の生成を、sequence to sequence 変換問題として定式化
  • LSTM(long-term-memory)ユニットを有する多層アテンションベースのリカレントニューラルネットワーク(RNN)を学習させた
    • ビジュアライゼーション仕様のコーパスを使用

先行研究と比べてどこがすごい?

  • 先行研究
    • Bertin[7]は、データ・ビジュアライゼーションを"a language for the eye"として体系化した
    • Mackinlay[43]は、データ・ビジュアライゼーションをグラフィカルな言語の文章と見なし、「表現性」と「有効性」の基準に基づいてモデルを定式化し、「形式言語」から概念を借用した
    • その後の研究では、さまざまな「文法」も導入された
  • 本研究
    • 本研究では、これらの知見を拡張して、「データ・ビジュアライゼーション」の生成を、sequence to sequence 変換問題として定式化した

技術や手法のキモはどこ?

f:id:upura:20180428131703p:plain

どうやって有効だと検証した?

  • (生成モデルの定量的検証は一般に難しい)
  • "R dataset repository"を利用した定性的検証
    • Json形式
    • 統計ソフトウェア環境Rとアドオン・パッケージの一部と共に最初に配布された1147個のデータセット
  • 検証を通じて、モデルが以下を学習することが示された
    • モデルが有効なビジュアライゼーション仕様
    • 適切な変換(カウント、ビン、平均)
    • 一般的なデータ選択パターンの使い方

f:id:upura:20180428133119p:plain

議論はある?

  • 学習データを増やしたい
  • 現状は一つのインプットに対して一つのアウトプットしか生成しないが、あり得る複数のアウトプットを生成するモデルに拡張したい
  • "ggplot2"など他のビジュアライゼーション仕様に対応するモデルも検討したい
  • インプットにデータセットだけでなく自然言語も加えられるようにしたいし、自動キャプション生成の可能性も検討したい

次に読むべき論文は?

  • [7] Jacques Bertin. 1983. Semiology of Graphics. University of Wisconsin Press.
  • [43] Jock Mackinlay. 1986. Automating the design of graphical presentations of relational information. ACM Trans. Graphics 5, 2 (1986), 110–141.

[追記: 20180607]

筆者が実装を公開
github.com

【TEDメモ】統計を好きになるべき理由 (アラン・スミス | TEDxExeter)

www.ted.com

概要

  • フィナンシャル・タイムズアラン・スミスさんのTEDトーク
  • ”人が初歩的な数学を理解できるのは「当たり前」と考えがちだけど、実際はそうではない。しかし統計は本来「私たち自身に関する科学」であり、数学の得手不得手に関係なく数字に関心を持ってほしい”

所感

  • メッセージそのものは単純なもの
  • そのメッセージをユーモラスに、かつ具体例を豊富に伝えているのが素晴らしい
  • 本筋とは外れるがWebAppを作る際の工夫の部分も非常に参考になる

【書評】『前処理大全』はNot Awesomeな局所解に気付かせてくれる本

前処理大全[データ分析のためのSQL/R/Python実践テクニック]

  • 本橋智光 著,株式会社ホクソエム 監修
  • 定価(本体3,000円+税)
  • 技術評論社

gihyo.jp

どんな本?

データサイエンスの現場で遭遇する様々なトピック(抽出・集約・結合など)を題材に、R・PythonSQLを用いた実装方法を紹介。「Not Awesome」な不適切なコードを理由とともに提示した後、「Awesome」な可読性の高く処理量の少ないコードを掲載している。

所感

実例を通じて、「Not Awesome」なコードを書いてしまっていた自分に気付ける本。

例えばPython/Pandasでの条件付き抽出に関して、インターネットで調べると以下のようなコードが多く出てくる。

Not Awesome

import pandas as pd
df = pd.read_csv("data.csv")

df = df[df["id"]=="hogehoge"]

しかし、このコードは下記の点などでAwesomeとは言えない。

  • dfが入れ子になっていて可読性が低い
  • dfの名前が変わった際には3箇所も変更する必要がある

Awesomeなコードとしては、下記のようなものが提示されている。

Awesome

df.query('id=="hogehoge"', inplace=True)
  • .queryを使うことで、可読性を高めている
  • inplace=Trueを与えることで、dfの回数も1回のみにしている

このような実例を通じて「動いているから良いや」で済ましていた事案を知ることができ、局所解からの脱却を促してくれる本になっている。寝られない時にザッと読み通したが分量は多いので、サラッと読んでおいて辞書的に使うのも良いかもしれない。