言語処理学会に参加した

今年は京都(京大)であったということもあって、言語処理学会第21回年次大会に参加してきた。
16~21日でチュートリアル、本会議、ワークショップとあったけど、本会議の1,2日目とワークショップの計4日間参加。


本会議で発表を聞いたものの中から覚えている/気になったものをメモ程度に。

  • 素性に重みを付けるSelf-training手法を用いた文書分類の領域適応
    • ドメイン適応にself-trainingを適用し、素性の重み付けも少し従来と変えるアプローチ
    • 重み付けのところの有効性はあまりよくわからなかった
    • self-training、勝手に98, 99%とかすごい高い精度じゃないとうまくいかないと思ってたのだけど、性能向上していたので意外だった
  • 議論文生成における文抽象化のための固有表現抽象化
    • 聞きたかったけど、人気だったのであんまりちゃんと聞けなかった
    • 固有表現と固有表現の抽象化候補が与えられた場合に、適切な抽象化先を選択するためのアプローチ
    • 抽象化候補は予め辞書で用意しているけど、抽象化候補の自動取得できないかどうかのほうが気になっている
  • 意見文の対象読者を限定する条件の抽出
    • レビューを読むべき条件を抽出する手法
    • 「女性には」や「子連れの家族旅行なので」などの意見に付随する条件部分を認識する
  • 顔文字のパーツの種類と表情の強弱に着目した顔文字表情推定
    • 顔文字のパーツの種類(口、右目、左手など)を推定し、パーツごとに素性の重みを変えて学習することで顔文字の表情を推定。
    • 8種類の表情(泣く、驚く、笑う、怒る、困る、恥じる、不満、無表情)と6種類の感情(怒り、嫌悪、恐れ、喜び、悲しみ、驚き)を利用
    • 表情の強弱をみて、強い表情(泣く、驚く、笑う、怒る)と弱い表情(困る、恥じる、不満、無表情)では感情の分布傾向が違うというのはおもしろかった
  • 時系列文書を対象としたグラフに基づく文書要約への取り組み
    • 時間軸のある複数文書要約を、LexRankというグラフベースの要約手法を基にした手法を用いて行う
    • 時系列文書の要約のデータセットあること知らなかったので、今度見てみたい
  • Paragraph Vectorを用いたウェブ上のユーザー行動のモデリング
    • アクセスログからParagraph Vectorを使って、学習の素性を作り、ユーザの行動予測(サイト訪問、広告クリック)をするアプローチ
    • 言語処理とは少し違いそうだけど、すごいおもしろかった。
  • A Japanese Word Dependency Corpus
    • 完全に見逃してた...すごい聞きたかった

あとは参加しなかった3日目の発表で気になったけど聞けなかったもの


エラー分析ワークショップにも参加。
色々なエラーや分析が聞けたので楽しかった。


今年は実際にすぐに応用できそうかという視点で発表を聞いてたことが多かった気がするけど、ちょっと失敗だったかな。もう少し単純に言語処理研究への興味という感じで聞けたほうが楽しかった気がする。


来年は東北大学らしいので、ふらっとはいけないのが残念。

論文紹介:HEADY: News headline abstraction through event pattern clustering

2週間くらい前になるけど、社内輪読会があって論文紹介をした。
今回はACL2013の HEADY: News headline abstraction through event pattern clustering を紹介した。

内容

同じ内容のニュースの集合に対してヘッドラインを生成する話。固有表現を汎化してパターン抽出し、そのパターンをNosiy-OR Baysian Networkで学習することで、固有表現の種類に応じてヘッドラインに使われやすいパターンを推論する。


感想・疑問
  • 抜粋的(extractive)ではなく、要約的(abstractive)なアプローチを取った手法として、そこそこ良い性能がでていそう。
  • HEADYの圧縮率はどの程度なのか。文ごと取得する手法ではあるが、TopicSumが良い性能をだしているので、短くする必要がないならTopicSumでよさそうに見える。目的としては短めのヘッドラインを作りたいという話なので、HEADYによって生成されるヘッドラインがどの程度の長さなのかが気になった。例として表4に出しているものだと、他のとそんなに長さ変わらないように見えるけど、何かしてるんだろうか。
  • どの程度抜粋的なアプローチではできないヘッドラインが作られたか。要約的(abstructive)なアプローチということだったが、結構抜粋的(extractive)な結果になり得そうなので、その差はどのくらいあるんだろ。
    • Noisy-OR Baysian Networkを用いないベースラインのMost freq. patternとは有意差がないようなので、ある程度は抜粋的なアプローチでできてしまうということなんだろうか。
  • ヘッドラインの生成に成功したのはどの程度か。手法的に固有表現が含まれていないとヘッドラインを生成できないようなのだけど、固有表現が含まないニュースコレクションはどのくらいあるんだろ。ニュース記事だと新商品とか固有表現辞書に含まれてないものが結構でてきそうなので、結構取りこぼすものが多いとなると、実際に使うのは難しそう。もちろん固有表現抽出を辞書ベースじゃなくて学習ベースにすればいいのかもしれないけど。


これはちょうどはてなブックマークのトピック機能を作っていたときにトピックのタイトル生成をする際に参考にしようと思って読んだもの。

日本語WordNet-Affect構築のnltk3対応

前に作った、日本語WordNet-Affect作るためのスクリプトが動かないとコメントをもらったので修正した。


python2、nltk2系だと動いていたけど、バージョンを固定しないとnltk3が入るようになっていつの間にか動かなくなってた。python2系使ってたらnltk2を入れて欲しいものだけど、特にそういうことは考慮してくれないようだ。


なので、python3系、nltk3系で動くように修正した。
ただ、その際にsqliteのDriverに使ってた pysqlite2 はpython3 対応されてないのでどうしようかという感じだったけど、python3系ではsqlite3がデフォルトで入っていてそちらを使うのが正しいようだったのでこれも修正。
http://docs.sqlalchemy.org/en/rel_0_9/dialects/sqlite.html#driver


masterブランチはpython3, nltk3で動くようになった。python2使いたい人はpython2-nltk2ブランチ使えば動くはず。
https://github.com/skozawa/japanese-wordnet-affect



日本語WordNet-Affectの話、2,3人から質問されたんだけど、わざわざ新規にTwitterアカウントとったりして素性隠して質問してくるのはなんでなんだろう。まあ、別に回答はするんだけど、どうせならどこでどうやって使われたか知りたいのになーと思うのでちょっと残念。

2015年目標

もう2015年も半月たとうとしてるけど、今年の目標を考えた。
毎年1月はいつの間にか過ぎてるみたいな感じになってる気がする。


考えた今年の目標は以下の3つ。

  • 何か発表する
    • 去年はあまり発表とかしてなかったので、今年はなにか発表したい。特に今ネタがあるわけではないので何か作らないと。
  • 本読む
    • 去年も目標にしてたけど、達成できなかったので引き続き。非技術書を1ヶ月に1冊くらいは読みたい。とはいえ、他の目標のほうを優先しそう。
  • 中・長期的な計画を立てる
    • 3~5年くらい継続してできるようなことを探したい。最近あんまりそういうことできてないから、ひとつの方向性を見据えて積み重ねていけると良いな。


去年色々考えたけど、ここ3年くらい基本的な考えは変わってなかったことがわかったので、とりあえず今のままやっていこうと思う。

2014年振り返り

年末なので2014年を振り返る。

目標

2014年の目標何にしてたかというと、下の3つだった。
2014年 - skozawa's blog

  1. 技術を深める
    • できたようなできてないような。もう少し深堀したかった気はするけど、それなりにはできたんじゃないかな。
  2. 本を読む
    • 1ヶ月に1冊は非技術書を読みたいと思ってたけど、全然達成できなかった。結局4冊くらいしか読んでない。
  3. 京都散策
    • 特に数えてないけど、とりあえず色々行けたかな。

どれも何もやってなかったわけではないけど、完璧に達成できたと思える感じではないかな。

振り返り

1~3月

1月はなにやってたかあまり覚えてない。2、3月には仕事で新しいチームに入って新しい言語(ScalaやGo)を使うようになった。ただ、2、3月は言語処理学会の発表準備などで忙しくなることが分かりきっていたので、この判断は自分としては間違いだったなあと感じる。忙しくてもなんとかなるだろうと思ってたけど、実際にはあんまりなんとかなっていないことが多くて、新しい言語を学びたくても時間はとれない、とはいえ、タスクはあるので新しい言語を学びつつこなす必要があるという感じであんまり良くなかった。自分の場合、新しいことやるときにはある程度時間をかけられる状況にして取り組まないとだめだなーと反省。なんかそのあとしばらく低調な感じだった。


ともあれ、言語処理学会の発表はちゃんとできたし、その前に書いていた論文誌も発行された。そのあと、共著ではあるけど他の論文もでて、学生以来の論文に多く関わった年だった。

  • "BCCWJに基づく長単位解析ツールComainu", 言語処理学会第20回年次大会 (2014.3)
  • "長単位解析器の異なる品詞体系への適用", 言語処理学会論文誌 (2014.4)
  • "Revised Catalogue Specifications of Speech Corpora with User-friendly Visualization and Search System", The 17th Oriental COCOSDA, pp. 60-64 (2014. 9)
4~6月

社内で論文輪読会が始まったこともあって、このころから論文を読む機会が前より少し増えた。あと機械学習とかをちゃんと勉強したいと思って、大阪PRML読書会に参加したりもした。結局2回しか行けてないけど、PRMLまだ4章までしか読めてないし、来年機会があればまた参加したい。

7~9月

データ分析とかビジネスにおけるデータ活用みたいないわゆるデータサイエンティストに興味がでてきたので、そのあたりの本を読んだり、東京ウェブマイニングに参加したりしてた。あとは新しい言語juliaを少しかじったけど、結局ちゃんと使えるように書くまでは使ってない。他にはScala Matsuri 2014、テキストマイニングシンポジウム、PyCon JP 2014といったカンファレンスにも参加した。テキストマイニングシンポジウムはともかく、Scala Matsuri、PyCon JPみたいなエンジニア系のカンファレンスに参加するのは初めてだった。

10~12月

普段の業務や開発合宿など、これまでより論文を活用する機会が増えたことで、論文を探す、読む機会も増えた。そのせいか研究室にいるような生活になってた気がする。

全体

1年を通してみると、良くも悪くもない1年だったかなーという感じだけど、色々なことを考えた1年ではあった。まあ、ある程度明確にしておきたかったことは明確にできたのでよかったかな。とはいえ、年末にインフルエンザにかかるという最悪の終わり方の1年だった。

「ビジネスモデル全史」を読んだ

「ビジネスモデル全史」を読んだので印象に残った部分を簡単に書いておく。

  • 序章:お金にまつわる5つのビジネスモデル確信
  • 第1章:ビジネスモデルとは何か?
  • 第2章:近代ビジネスモデルの創生期(1673~1969)
  • 第3章:近代ビジネスモデルの変革期(1970~1990)
  • 第4章:世紀末、スピードとITによる創造期(1991~2001)
  • 第5章:リアルを巻き込んだ巨人たちの戦い、小チームの勃興(2002~2014)
  • 第6章:どうビジネスモデル革新を起こすのか?
  • 保章:今、日本から世界に挑戦できること


これまでのビジネスモデルやそのビジネスモデルの革新がどのように起こったのかを年代ごとに簡単なエピソードと一緒に書かれていた。

サウスウエスト航空の「経験よりユーモア」、「顧客より従業員」

顧客第一となるのが普通だが、それを「顧客第二、従業員第一主義」というのはなかなか言えない気がするので、それを貫いていったのはすごいなと思う。

われわれはベンチャーだ。小さいのだから顧客全員に好かれる必要はないし、特徴を出そうと思ったら、
従業員の力を最大限引き出さなくてはならない。だから従業員第一主義。
それにベンチャーは、生き残るためにあらゆる変化を厭ってはいられない。そこに既存の経験は邪魔でしかない。
ゴビンダラジャンの「忘却、借用、学習」、リースの「リーンスタートアップ

リーンスタートアップは知っていたけど、「忘却、借用、学習」というのは聞いたことなかった。
借用は既存のビジネスモデルと差別化するには借用するものを限定しようという考え方で、なるほどという感じ。

新規事業は決して既存事業から「人事、経理、IT」機能を「借用」してはいけません。
それこそがスピードや発想の足枷になるから。
主要機能である「R&D、マーケティング、生産、流通」機能にしても、「借用」するのは1~2機能に留めよ。
ビジネスモデルを同じくすればジャンプはなくなってしまうからです。

学習の話も面白い。目標必達の話はありそうだけど、失敗からの学習を第一目標とすべきというのは面白いし良い考え方だなと思う。

新規事業に業績目標必達を求めるな、失敗からの学習こそを第一の目標とすべき
既存事業に多い目標必達文化は、大きな挑戦を阻害します。
しかし、挑戦し、失敗から学ぶことなくして新規分野での成功はあり得ないからです。
「創造性あふれるビジネス・リーダーの特長」として「5つの発見力」

以下の5つらしいけど、これが必要十分なのかは自分にはよくわからない。

関連づける力:異分野から生じた、一見無関係に見え疑問や問題、アイデアをうまく結びづける力
質問力:前提を覆そうとしたり、正反対の方向に振ったりすることでモノゴトの探究につながる質問をする力
観察力:一般的な現象や潜在顧客の行動を詳しく調べることで、非凡なビジネスアイデアを生み出す力
実験力:学習のためには失敗してもかまわないと考え、インタラクティブな実験を設計して、予想外の反応を起こす力
ネットワーク力:自分の知識の幅を広げるために、自分とは異なるアイデアや視点の持ち主たちに会う力
ネイルチップ通販専門店MiCHi

個人ネイリストを集めてネイルビジネスをネットで行った仕組み。個人ネイリストに以下のようなモチベーションを持たせることで満足感を与えている。クリエイターが生きる仕組みというのはよいなと思う。

自分の好きなデザインを作れる満足感
隙間時間で仕事ができる柔軟性
受注生産方式のため、売れるものをつくる満足感


ビジネスモデルに詳しくない自分にとっては分かりやすいし、事例ベースで説明されるので読みやすかった。ただ一方で、特に体系的に書かれているというわけではないので、ある程度自分で整理しないといけなそうで、まだあまりできていない。


自分はビジネスセンスに乏しいと思うし、お金を稼ぎたいという気概もあまりない。とはいえ、会社という営利組織に所属いるので、ある程度ビジネスに関する知識は必要なんだと思う。技術書だと放っておいても勝手に読もうと思うけど、ビジネス書は意識して読もうと思わないと読まないとので、ある程度意識的に読んでいきたい気はする。

論文紹介:Active Learning with Efficient Feature Weighting Methods for Improving Data Quality and Classification Accuracy

今日は久々に自分の担当の社内輪読会だった。
今回はACL2014のActive Learning with Efficient Feature Weighting Methods for Improving Data Quality and Classification Accuracyを紹介した。ACL2014読み会が色んなところで開催されていたと思うけど、たぶんどこでも紹介されていなかった気がする(別に紹介されていてもいいのだけど)。

内容

最近はやりのクラウドソーシングを使ったもの。クラウドソーシングを使うと、安価で大規模なコーパスが作れるが、どうしても品質が下がってしまうので、なるべく低い労力で品質を向上したいという目的で能動学習のアプローチを利用してコーパスの品質を向上している。

感想
  • 能動学習のアプローチを取り入れたこと自体はこの論文の新規性ではないけど、コーパスの品質改善に能動学習を利用するのはよさそう。
  • 提案手法のnon-linear distribution spreading アルゴリズムは計算速度はSVMに比べて確かに速いけど、そこまで性能がよいという感じではなかった。
  • Delta-IDFのような特定のクラスに関わりが深い単語に大きい重みを割り当てるよう手法を用いて、能動学習でデータを改善すると複雑(曖昧)な問題が一向にとけなくなってしまわないかが少し気になった。能動学習の問題というよりかは素性の問題ではあるので、良い素性を設計すれば問題ない気もする。
  • 評価実験でSVM-Delta-IDF(素性にBOWのDelta-IDF)とSVM-TF(素性にBOWのTF)を利用しているが、性能はSVM-Delta-IDFのほうがよかった。どちらも素性自体は同じものを使っているはずだが、重みの初期値が違うことで、性能に変化がでていたり、学習時間が半分以下になっているのは面白い。重みの最適化をDelta-IDFを利用することである程度事前にやっていることになっているからこういう結果になっていることなんだろうか。
  • データの品質改善自体はSVM-Delta-IDFもSVM-TFもほとんど同じなのに、性能に差が出ているのが気になったけど、なぜかはよくわからなかった。


次はCOLING2014の論文でも見ようかと思ってたけど、最近だとKDDやWWWにも自然言語処理系の論文が投稿されているみたいだし、実応用を考えるとKDDやWWWのほうが参考になりそうな気がするから、そっちをチェックしたおいたほうがよいのかなと思ってる。