論文紹介: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ヶ月に1冊は非技術書を読みたいと思ってたけど、全然達成できなかった。結局4冊くらいしか読んでない。
- 京都散策
- 特に数えてないけど、とりあえず色々行けたかな。
どれも何もやってなかったわけではないけど、完璧に達成できたと思える感じではないかな。
振り返り
1~3月
1月はなにやってたかあまり覚えてない。2、3月には仕事で新しいチームに入って新しい言語(ScalaやGo)を使うようになった。ただ、2、3月は言語処理学会の発表準備などで忙しくなることが分かりきっていたので、この判断は自分としては間違いだったなあと感じる。忙しくてもなんとかなるだろうと思ってたけど、実際にはあんまりなんとかなっていないことが多くて、新しい言語を学びたくても時間はとれない、とはいえ、タスクはあるので新しい言語を学びつつこなす必要があるという感じであんまり良くなかった。自分の場合、新しいことやるときにはある程度時間をかけられる状況にして取り組まないとだめだなーと反省。なんかそのあとしばらく低調な感じだった。
ともあれ、言語処理学会の発表はちゃんとできたし、その前に書いていた論文誌も発行された。そのあと、共著ではあるけど他の論文もでて、学生以来の論文に多く関わった年だった。
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年だった。
「ビジネスモデル全史」を読んだ
「ビジネスモデル全史」を読んだので印象に残った部分を簡単に書いておく。
- 作者: 三谷宏治
- 出版社/メーカー: ディスカヴァー・トゥエンティワン
- 発売日: 2014/09/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
- 序章:お金にまつわる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のほうが参考になりそうな気がするから、そっちをチェックしたおいたほうがよいのかなと思ってる。
PyCon JP 2014に参加した
データ解析や機械学習の話が気になったので、PyCon JP 2014に参加した。
PyCon JP 2014 - connpass
会場に電源とれる場所が少なく、あまりメモ取れてなかったので、記憶をたどりながら書いてるけどあんまり覚えてない。
http://www.slideshare.net/atelierhide/py-conjp2014-slideshare
画像認識にDeep Learningを使ってKaggleであった犬の画像か猫の画像かを識別するコンテキストに参加した話で、Deep Learning(PythonのDeCAF)使ったら精度95%以上になったらしい。
http://www.slideshare.net/hamukazu/effective-numerical-computation-in-num-py-and-scipy
numpyとscipyにおける効率的な数値計算について。broadcastやindexを使うとか。
Introduction to scientific programming in python // Speaker Deck
numpy, scipy, matplotlib, scikit-learn, pandasの説明とデモ。ipython使おうというのとnumpyはjuliaよりそんなに遅くないという話をしていた気がする。
ツイートを感情分析する話。公開されているコーパスと感情語辞書を利用してNaive Bayesを使ってポジネガ判定する。精度は49%らしい。厳しい...。
最先端だと70%くらいだろうけど、せめて60%くらいは出ていて欲しいな...、英語だとコーパスとか辞書が整備されているのでうらやましい。
http://nbviewer.ipython.org/github/payashim/tutorial-opencv-python-pyconjp2014/blob/master/pyconjp2014_payashim.ipynb
OpenCVを使った画像/動画処理。OpenCVではBGRで、matplotlib, scikit-imageなどではRGBで色を保持しているので注意が必要らしい。画像処理詳しくないので背景差分とかあんまり知らない話が聞けて楽しかった。
スパム分類を機械学習(Naive Bayes)でやる話で、学習を約10行、テストを約5行でかけて簡単。関係ないけど、テキスト分類軽くしましたという話しを聞くとだいたいNaive Bayesなのはなんでなんだろう、SVMの方が精度高くでるだろうからSVM使えばいいのにとか思ってしまう。
大きい会議になると聴講者のレベルがわからないから話すの難しいそうだなと感じた。全員に分かってもらおうとして初心者でも分かる内容にすると中級者、上級者には少しもの足りなく感じてしまう。一応スピーカーが対象レベルとして初級と中級みたいに選んではいるけど、結局広く知ってもらおうとするとどうしても初心者よりになってしまいそうで、もう少し突っ込んだ話を聞きたいと思うことが何度かあった。
セッションの1つにJob Fairというのがあって、何社かが自社の開発環境とかについて話していた。結構、SlackとJIRAを使っているところが多くて、流行ってるんだなーと思った。JIRAは使ったことないけど、便利そう。
企業ブースみたいなところで、キュレーションサービスのカメリオを作っている方と少しお話をさせてもらった。テーマをどうやって選んでいるか、他のキュレーションサービスとの違い、今後どのように収益化するのかなど色々聞かせてもらっておもしろかった。
懇親会ではエンジニアのイベントに来ているのに気づいたら周りはみんな研究者や研究関係の仕事をしている方になっていておもしろかった。Web系のエンジニアとまったく話してない気がする。これもpythonが科学技術系でよく使われてるからなんだろう。それでもおもしろかったので良かった。