stMind

about Tech, Computer vision and Machine learning

集合知シンポジウムの招待講演メモ

昨日は集合知シンポジウムが開催されているということで、招待講演を聴講してきた。

研究会 - 実用的な自然言語処理アプリケーションの作り方

質疑応答の中で話されていましたが、ユーザのためにはどうするべきかという視点が、
組織にしっかりとあるのだなと感じました。
ユーザのためにIMMからTSFに変更した、単なる数値評価ではなくユーザをモデル化して評価するなど、
「実用的」というのは徹底したユーザ視点で考える開発ということなのかなと思いました。

以下はログにはなってないけど、その時の自分メモ。

実用的な自然言語処理アプリケーションの作り方

集合知を生かした日本語入力

  • 集合知
    • ウェブからキーワード、言語モデル、辞書を作る
    • 辞書
      • データ構造の変化
      • 圧縮、Mozcでは13MBくらい

自然言語システムの評価

  • 入力(ひらがな列)と出力のペア
  • F値などで評価
  • これで十分?
  • デバイスで違う
  • 入力単位による違い
  • 集合知の副作用
  • 許容できる、できない
  • 平均的、機械的な評価尺度だけでははかれない
  • ユーザーのストレスをどうモデル化するか
  • どうするか?
    • 機械的な、平均的な評価
      • 様々なジャンル
    • 回帰テスト
      • 絶対できないといけない例、シナリオ
    • 見える化
      • 変換できないひらがな列を登録、対応者アサイン、修正、検証、確認、蓄積の仕組み
  • 評価のまとめ
    • 評価は難しい
    • 具体化→一般化のサイクルが重要
    • 見える化重要

実用的なモデルとは

  • シンプル
  • オープンであつかいやすい
  • デバッグしやすい
  • 動作過程が見える
  • スケーラビリティ
  • 重要な点はモデルの表現方法、パラメータの推定方法ではなく

実装の工夫

  • 徹底的な機能分離
  • 辞書、モデルのアトミック更新
    • バイナリに埋め込む
    • エラーは実行時からビルド時へ

自然言語システムのテスト

  • 25万、45%がテストコード
  • テスト書かない
  • なぜ?どうすれば?
  • 単体テスト
  • 依存性の注入
    • 依存性を外から見えるように

開発プロセス

  • コードレビュー
  • UX
    • ユーザに実際に使ってもらう
  • ペルソナ