自然言語処理の三ツ星カルテット

主に自分が学習したことの復習兼アウトプットを目的に密かに誰かの役に立てれば幸い

NLP若手の会 第9回シンポジウム参加報告

初めての更新です。

9/21~9/23日までNLP若手の会シンポジウムに行ってきたのでそれについて書いていきたいと思います。これは2泊3日の合宿形式で開催されて、社会人の方や各大学の学生が集まって自然言語処理処理について知見を深めたり、交流をする目的で行われました。

各日にちの流れから紹介すると、

一日目:

  • ハッカソン
  • 交流企画①(ビーチアクティビティ・卓球)
  • 交流企画②(カラオケ・麻雀・卓球)

二日目:

  • 口頭発表(1)
  • ポスター(1)
  • 招待講演
  • 口頭発表(2)
  • スポンサー発表
  • 交流会③(花火)

三日目:

  • 口頭発表(3)
  • ポスター(2)
  • 国際会議参加報告
  • 口頭発表(4)

というのが主な流れでした。交流企画や夕食など楽しく過ごすことが出来ましたが、すべて紹介すると果てしないので、今回は自分が主に参加したハッカソンについて書いていきたいと思います。

今回のハッカソンは若手の会のスポンサーであるカメリオ(Kamelio)さん主催のもので、目的は、普段用いることの出来ない実サービスからのデータを元に、

  • 最近コミュニティーに加わった方々が他の方から技術を学ぶ
  • 既に熟練をお持ちの方が、技術をサービス改善に応用する

というものになっています。

課題は、ユーザーの過去の閲覧履歴を基に、その後ユーザーが目にする記事を閲覧するどうかを当てること、となっておりF値で得点を競いました。

自分たちの班は以下のようなタスク設定で話を進めていきました。

タスク設定:最大エントロピーを用いた二値分類問題

以下の仮説を立てました。

  • 仮説① :ユーザ毎に趣味嗜好に傾向があるはず

  • 仮説② :トピック毎に読まれやすい記事があるはず

いただいた250万件のログデータを訓練事例として素性を抽出し、Classias(分類タスクの機械学習ツール)を使って全体モデルを学習しました。その全体モデルとあるユーザーの行動ログを分類器に書けてそのユーザーが記事を閲覧したかどうかを判定します。

選んだ素性
  • タイトルのbog-of-words (唯一の言語処理)

    • よく読まれやすいタイトルの単語があるのでは?

    • 例:「新発売」「結婚」

  • 画像の有無

    • 画像のある記事は直感的に理解でき,読まれやすい?
  • 投稿せれてからreadされるまでの時間

    • 新しい投稿のほうが読まれやすい?
  • 記事のURL情報

    • ユーザはある特定のソースの記事を信頼している?

    • 例:◯日新聞は読まない,△日新聞は読む

この素性の結果のF値は…






0.03

…まったくのダメダメな値ですね。

全二日間で残り9時間でこの値だったので班員人たちは疲れきった顔をしてました。この結果は素性を入れた後にチューニングなどをまったく出来ていなかったのが問題でした。ただ時間的にチューニングするのも難しくもうビリかなーと思った自分の班の最終的なF値は…






0.217

になりました!!

これはどういうカラクリかと言うと…


機械学習していません(笑)


手法は人間による訓練事例のパターン認識です。“read”はあるユーザの連続ログの端に出現しやすい?という仮説のもとユーザーの行動ログの端を"read"にしたらこのF値になりました。

全く趣旨に沿っていない奥の手みたいな感じですね> <

ですが最終的に自分たちの班は企業賞を受賞することが出来ました。

まずは、手を動かして結果を出したところに感心してくれたようです。とりあえず結果を出すことも大切だなと感じた瞬間でした(笑)

そんなこんなで自分のハッカソンは終わりました。素性の抽出など頑張った部分がまったく生かされなかったのは微妙でしたが、ハッカソンのメンバーの方にvimの拡張の仕方やコードの書き方の共有、バージョン管理ツールの有用性などが確認出来たのが有意義でした!!

三日間いろいろな方とお会いしてお話して聴講して自然言語処理が盛りだくさんでした!!これをご縁にまたいろいろな方と親しく出来たらいいなと思います!