u++の備忘録

【論文メモ】業種別企業業績要因を含む新聞記事の抽出

論文名

丸澤英将(東京大学), 和泉潔(東京大学), 坂地泰紀(東京大学), 田村浩道(野村證券株式会社): 業種別企業業績要因を含む新聞記事の抽出, 第19回 人工知能学会 金融情報学研究会(SIG-FIN), 2017.

どんなもの?

市場分析の専門家である証券アナリストが企業業績を予想するアナリストレポートは,重要な投資判断材料だが,発行時期は銘柄ごとにまちまち
→の間欠性を補うシステムとして,日々発行される新聞の記事などのデータから企業業績を変動させる要因になりうる経済イベント(業績要因)を即時に獲得してデータベースに蓄積し,顧客からの問い合わせに自然言語で回答する対話型投資支援システムが考えられる.
→(具体的には)新聞など別の媒体で報じられている経済イベントから,アナリストの行う企業業績予想を推測
→(具体的には)アナリストレポート中でどのような経済イベントが注目され,企業業績の予想の根拠として用いられているかという因果関係の特徴を学習

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

特定の文の特徴を学習して,別の文章から類似の文を獲得する手法として,単に文全体に含まれる単語の組で一致度を測る bag-of-wordsに法よるものがあるが,その手法では背後にある因果関係を把握できていないという問題がある

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

  • アナリストの予想を示す文の部分と,その予想の根拠を示す文の部分を分離して抽出
    • 原油安及び探鉱費の増加を主因に,YY.M 期の純利益予想を下方修正した」の「(を)主因に」を「根拠部手がかり表現」として、その前後を取り出す。
  • 根拠部手がかり表現の特定方法
    • 形態素解析
    • tf-idf値を用いてベクトル化して特徴量とする
    • Word2vecを用いて文脈上の類似度の高い名詞まで抽出できるよう拡張

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

  • 日経新聞の 2014年の記事(スポーツ記事など,経済記事以外も含む)119,767件を用いた.
  • Word2Vec法のモデルには,ロイター社の2003年から2013年の経済記事の文章をコーパスとし,200次元で分散表現を生成するよう学習したものを用いた
  • 精度の算出に当たっては,重要記事抽出対象の時期のアナリストレポート中で,5つ以上の銘柄においてアナリストによる業績予想の根拠とされていた概念を正解とし,人手で評価した.
  • (根拠部の初期の共通頻出表現には,ポジティブ・ネガティブの判断を含む表現を用いるようにした)

議論はある?

  • 専門家の監修による正解データの作成とそれを用いた結果の再現率,F 値などによるさらなる定量評価は,今後の課題とする.

次に読むべき論文は?

提案手法の参考になっている論文
酒井浩之, 柴田宏樹, 平松賢士, 坂地泰紀 : アナリストレポートからのアナリスト予想根拠情報の抽出,人工知能学会第 17 回金融情報学研究会, pp. 25–30 (2016)

なぜ専門家と一般人で「人工知能(AI)」の認識ズレが起きるのか

f:id:upura:20171021073837p:plain

English version:

upura.hatenablog.com

はじめに

本記事では、以下のように「専門家」を定義し、「一般人」はそれに該当しない人を想定している。

  • 専門家……「人工知能(AI)」という語が諸般の技術要素などの集合概念として使われていると理解できている人

背景

最近、会社内でエンジニア以外の職種の方と話したり、帰省時に情報分野が門外漢の両親と話したりする機会が頻繁にあった。その際に今流行りに流行っている人工知能(AI)の話題になることもあったのだが、うまく話が噛み合わないことが少なくなかった。その原因がどこにあるか*1、自分の中で考えてみた結果を図示&言語化しておく。

一つの"AI"が全てをやっていると誤解

原因をまとめ図示したのが、冒頭の図だ。結論から述べると「一つの"AI"が全てをやっていると誤解」しているのではないかと思う。

研究者・開発者は、音声認識・画像認識・自然言語処理などを駆使し、多くの成果物を世に出している。一般人はそれらをテレビ・新聞・SNSなどのメディアを通じて知ることが多いが、その際には任意の成果物に「人工知能(AI)」というラベルが貼られることが多い。その結果、全ての成果物が(唯一の)人工知能(AI)によって為されていると理解されている気がする。

こうした認識ズレが原因で、巷では「人類VS人工知能(AI)」という過度な煽りが流布してしまうのだろう。

おわりに

この構図を意識しておくと、多くの人とのコミュニケーションが円滑に進む気がしている。誤解している場合には相手に応じて、理解を正すよう促したり、話を合わせて穏便に処理したり……と。

*1:筆者のコミュニケーション能力不足は無視する

「日本人クラス」を作って、Pythonのクラスの使い方を復習

Pythonのクラスの使い方を忘れかけていたので、下記ページを参考に「日本人クラス」を作ってみました。

www.sejuku.net

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

class Japanese():
    def __init__(self, name, sex, age):
        self.name = name
        self.sex = sex
        self.age = age
 
    def print_info(self):
        print("""
        名前:{}
        性別:{}
        年齢:{}
        """.format(self.name, self.sex, self.age))
 
    def say(self, word):
        print("{}:「{}」".format(self.name, word))
        
    def reply(self, word):
        if word == "How are you?":
            print("{}:「{}」".format(self.name, "I'm fine, thank you!"))
        else:
            print("{}:「{}」".format(self.name, "..."))
            
taro = Japanese("taro", "man", "31")
taro.print_info()
taro.say("こんにちは!みなさん。")
taro.reply("How are you?")
taro.reply("What's up?")

出力

        名前:taro
        性別:man
        年齢:31
        
taro:「こんにちは!みなさん。」
taro:「I'm fine, thank you!」
taro:「...」

しょうもないブラックジョークですね、はい。

【論文メモ】Sushi Dish - Object detection and classification from real images

論文名

Yeongjin Oh, Seunghyun Son, Gyumin Sim: Sushi Dish - Object detection and classification from real images,  arXiv:1709.00751v2 [cs.CV], 2017.
https://arxiv.org/abs/1709.00751

どんなもの?

回転寿司の会計では、店員が目視で皿の枚数を数えるという負担がある。この負担を軽減するため、画像から皿の柄や枚数を自動的に捉え、支払額を計算する手法を開発した。CNNを用いている。precision 85%、recall 96%、classification accuracy 92%を達成した。

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

言及なし

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

  • 検出器
    • エッジ検出(Canny法)
    • 楕円検出
    • 隠れている皿の推定
  • 分類器
    • 多層CNN
      • Input: 検出されたエッジ・楕円
      • 訓練画像にノイズを加えて水増し

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

  • 検出器について
    • データセット(only 88 images meet our assumption and there are 461 dishes)
    • 目視と比べて精度を検証
  • 分類器について
    • 訓練データで学習させ、検証データで精度を検証

議論はある?

次に読むべき論文は?

CNNの論文として引用されていたもの。
Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Advances in neural information processing systems. 2012.

GithubMatlabコードも公開されている。
https://github.com/YeongjinOh/Sushi-Dish

カーネル密度推定による分類方法をPythonで可視化

 『画像認識』(機械学習プロフェッショナルシリーズ)*1の第5章pp.143-144に載っていた、カーネル密度推定による分類方法を可視化。
f:id:upura:20171017202619p:plain

data1(青)は0を中心とした正規分布の乱数、data2(黄)は3を中心とした正規分布の乱数。カーネル密度推定により確率密度が計算されている。例えば x=1のときは青の線が黄の線を上回っているので「data1に分類するのが尤もらしい」という具合に考える。

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('whitegrid')

data1 = np.random.randn(50)
data2 = 3 + np.random.randn(50)

# data1のプロット
sns.distplot(data1, axlabel="x")
sns.rugplot(data1)

# data2のプロット
sns.distplot(data2, color="y")
sns.rugplot(data2, color="y")

plt.ylabel('p(x)')
plt.show()

PythonのリストをExcelで開いても文字化けしないcsv形式で書き出す

encodingで'utf-8-sig'を指定する。BOM(Byte order mark)付きのエンコーダである。

with open('output.csv', 'w', encoding='utf-8-sig') as f:
    writer = csv.writer(f, lineterminator='\n')
    writer.writerows(output) # output: 書き出したいリスト(多次元OK)

【遊戯王デュエルリンクス】バランス機械天使でサクッとデュエルキングに デッキレシピあり

10月中にデュエルキングになると、11月上旬開催予定の「KCカップ」の1stステージが免除になるとのことで、バランス機械天使でサクッと決めてきました。

f:id:upura:20171013225953p:plain

デッキレシピ

f:id:upura:20171013225945p:plain

構築のポイント

  • モンスター10枚&魔法・罠10枚の構成にすることで、初期手札がモンスター2枚&魔法・罠2枚になるよう調整
  • ミラーを想定し「エネミー・コントローラー」を3積み

対戦回数

最近ランク戦をサボっていたせいでゴールド1から開始し、30勝程度でレジェンドに到達。そこから少し苦戦し、83勝でのキング昇格でした。