言語処理学会に参加した

筑波大学であった、言語処理学会第23回年次大会に参加してきた。参加したのは2日目と3日目。


聞いてある程度メモをとれたものを残しておく。徐々にメモするの疲れてきて3日目のはあまりメモとれてない。

  • 『現代日本語書き言葉均衡コーパス』への情報構造アノテーションの構築
    • BCCWJに対して、情報状態、定性、特定性、有生性、有情性、動作主性、共有性の7つの情報をアノテーションした。
    • 意味まで踏み込もうとすると、こういった情報が必要になってくるんだろう。アノテーション自体はすごく難しそうな印象だった。
  • クラウドソーシングによる関係知識のアノテーション
    • XとYにおける活性化関係(促進、抑制)をアノテーションする。Xを固定して、Xに対して促進する、促進させる、抑制する、抑制されるという4つの関係となる、体言もしくは用言を文書中から選択してアノテーションする。クラウドソーシングを利用してアノテーションするが、分類のようなタスクとは異なり、完全一致ではないため、ダミーの質問を利用した単純なクラウドワーカーの見極めができないため、別のページに遷移させて、アノテーションの文字単位の一致度をみて閾値以上のアノテーターには正解のパスフレーズを提示するというアプローチをしている。
    • 部分一致とか、複数解が許容されるようなタスクになると、当たり前だけどクラウドソーシング使うのも結構大変なんだなと感じた。体言、用言混ぜてやっていたけど、一旦、体現だけにして問題を簡単にしてやってみてもよかったのかなと思った。
  • PDFAnno: PDFドキュメントのための言語アノテーションツール
    • PDFをテキスト化したあとにアノテーションしようとすると、構造などの情報が失われて、アノテーション作業の効率が下がるため、PDF自体にアノテーションするツールを作成。PDFにアノテーションしてから、テキストに変換する。
    • 学生のときにpdf2textとかでPDFをテキストにしてからアノテーションしたりしてたので、気持ちが分かる内容だった。構造とか残せるといいんだけど、やっぱり技術的に難しいんだな。
  • Simple PPDB: Japanese
    • 難易度を付与した大規模な辞書を生成。難易度が4段階、6段階で付与されている辞書の語を使う。難易度を3段階に簡単化して学習データとし、頻度、文字種、単語長、CBOWなどを素性として利用して7割程度の精度で57万語に対して難易度を付与した。この辞書と既存の言い換え表現辞書を利用して、文を平易化した。言い換え表現辞書にノイズがあるため、誤ることもあるが、言語モデルと併用すればよくなる予定とのこと
    • 公開されているらしいし、大規模な難易度辞書は使ってみたい。初心者単語はほとんど既存の辞書にカバーされているらしく、辞書外の単語の性能は高くないとのことだった。既存の辞書の難易度って教科書とか教育がベースになってると思うけど、特定分野の難易度の判定もできるのかが気になる。
  • データ拡張による感情分析のアスペクト推定
    • 分類問題にLSTM, CNNなどを適用しようとするときに、データサイズが少ない問題をデータ拡張により解決しようとした場合に、どのような拡張の仕方がよいかを実験したもの。類似度、シソーラス、ルールベースを試し、データサイズを同じにした場合はシソーラスの性能がよかったという結果。
    • ルールベース、シソーラスだと文脈は壊れないが、拡張される数には限度がある、一方、類似度は文脈は壊れるが、ルールベース、シソーラスよりもサイズを大きくできる。実験ではルールベースに合わせて、3.5倍くらいのサイズでやってシソーラスが良い結果となっていたが、類似度で10倍のデータサイズにしたほうが結果がよくなっていた。文脈守ってちゃんと作るよりも、多少文脈壊れてでもとにかくデータサイズ増やしたほうがよいということなのかな...もちろん、解きたい課題とアルゴリズムによるんだろうけど。サイズごとの性能をグラフ化し、サチり具合みれるとよかったなと思った。
  • キーワードに基づくニューラル文生成のためのリランキング
    • 動詞1つと名詞2つの3つのキーワードから文を生成する。Encoder-Decoderだと未知語に対応できないので、Propositional Unknownモデルを利用。生成した文をJaccard係数でランキングすると、同じ単語を複数出力する文を高く評価してしまうので、重複単語を考慮したランキング手法を使う。
    • 必ず3つのキーワードを含むという制約にしてはダメなのかなと思ったけど、言い換えてよい文が生成されるならよいのかな。キーワードから文生成できると要約とかでも使えそうでよさそうだなと思った。
  • テーマをもつ観光地グループの自動生成
    • 観光地+都市名、観光資源+都市名で検索し、固有名詞を抽出、共起頻度を計算することにより観光のテーマを抽出する。テーマとテーマに関連する観光地グループを生成。
    • 手動でNGワード用意したり、表記揺れに対応したりしていて大変そうではあったけど、こういうのをブクマの地域ページでできるといいのかなと感じた。
  • Sentiment Analysis with Eight Dimensions for Emotional Chatbots
    • りんなとの会話を感情分析した話。感情は8カテゴリ。8カテゴリ1000語(顔文字も含む)を用意し、Character-level RCNNで学習。
    • りんなに対する発言と、りんなの発言を感情分析していた、割合をちゃんと覚えてないけど、りんなの発言にも怒りが1割程度あらわれていて、りんなは優しいとは限らないらしい。
  • 賛否表明パターンと行列分解に基づく賛否モデリング
    • Aに賛成する人はBにも賛成すると仮定し、情報推薦の問題と同様にして、賛否の問題を協調フィルタリングで解いた。賛否のデータはTwitterの賛否ハッシュタグを利用して収集。
    • 情報推薦と同様の問題設定にして解くのはおもしろかった。
  • レビューテキストの書き手の評価視点に対する評価点の推定
    • 総合の評価点ではなく、評価視点ごとに評価点を推定する。レビュー全文ではなく、評価視点に対するコメントのみを利用して評価。評価視点は楽天トラベルの6つ(サービス、など)を利用。コメント抽出では、評価視点と、その類義語、さらにそれらキーワードを含むレビュー記事から頻度上位100、それと並列する単語を利用し、F値で8割程度。抽出したコメントを利用して各評価視点に対する評価点を推定。
    • コメント抽出に利用する単語があまり多くなかったのでカバー率が気になったけど、精度重視と言っていた気がする。
  • 日本語における筆者の性格推定の取組み
    • Twitterの発言から性格を推定する。正確はビッグファイブ理論というのが有名らしくそれを利用している。
    • すでに公開されているのでやってみると面白そう。
  • 単語分かち書き辞書 mecab-ipadic-NEologd の実装と情報検索における効果的な使用方法の検討
    • neologdにどうやって新しい単語を追加しているかという話。ベンチマーク問題を作成して、性能を測りつつコスト調整をしながら、新しく単語を追加したときに既存の単語分割がおかしくならないように調整しながら追加をしている。検索ではneologdだけを使うのではなくて、他の辞書も使ったインデックスも用意して重みづけをしつつ検索する。
  • 辞書情報と単語分散表現を組み込んだリカレントニューラルネットワークによる日本語単語分割
    • RNNによるBIOタギングをして単語を分割する。RNNの学習時にunigram, bigramといった表層情報だけでなく、対象の文字から始まる(終わる)単語を辞書から検索して素性として利用する。
  • 分散表現を用いた語の上位下位関係の学習―Lexical Memorizationの緩和―
    • 上位語の頻度にばらつきがあるのと、関係性を学習してくれず、特定の上位語を学習してしまう問題に取り組む。 上位語の頻度が偏らないようにして学習 。
    • Lexical Memorization 知らなかったけど、本質的な課題を解こうとしていて面白かった。ちゃんと論文読んでみよう。
  • 定量調査のための意見調査コーパス構築への取り組み
    • 不満買取センターを作って、不満を書いとる。単語レベルだとわかりづらいので、格関係を取り出し、不満調査のサポートをする
    • 今後ビジネスにつなげていくらしい。どのくらいのお金かかったのか聞けばよかったな。
  • 招待講演 : 認知言語学---言語科学の静かなる革命
    • チョムスキーの文法理論では限界があるので、認知言語学が生まれてきたという話や、言語能力には認知能力と運用能力が重要といった話や、あとは用法基盤モデルや参照点能力、スキーマユニットといったキーワードについての話があった。1時間と限られた時間ですごい勢いで話されてたのでキーワードを拾うのが精一杯という感じだった。とにかく作ってきた資料を読みましょう、論文集買ってくださいという内容だった。もう少し丁寧な説明のある招待講演だと思ってたので、イメージとは違ってた。


2年ぶりの参加、久々の学会だったけど楽しかった。文生成の現状をあまり知らなかったので、Encoder-Decoderやその派生のモデルについて知れたのはよかった。気になるものの論文を事前に読んでいけるとよかったけど、できなかったので、気になったものについては論文も軽く読んでみよう。

来年は岡山での開催、微妙な距離感。

論文メモ: Linguistic Benchmarks of Online News Article Quality

ACL2016 の論文 Linguistic Benchmarks of Online News Article Quality を読んだのでメモ。
自分がやってみたいと思ってることに近いことをやっていて面白い。

概要

オンラインニュースの質を測れるかを検討した論文。質という1つの指標で表すのではなく、質に関係する14の指標を用意して評価する。14の指標に対して、専門家がニュースに対して5段階評価でそれぞれ点数をつけたコーパスを作成。14の指標と質との関係を分析し、ベンチマークとして質を予測できるかを調査。

質を測るための指標

5カテゴリ、14の指標を用意。

  • Readability: 読みやすさ
    • Fluency: 流暢さ、文が意味的につながっているか
    • Conciseness: 簡潔さ、冗長でないか
  • Informativeness: 情報量
    • Descriptiveness: 描写性、タイトルが内容をどの程度表しているか、釣りタイトルじゃないか
    • Novelty: 新規性、平均的な読者が知らない情報が含まれているか
    • Completeness: 網羅性、適切な情報量か、満足できる情報量か
    • Referencing: 参照性、外部ソースへの参照がどの程度か
  • Style
    • Formality: 形式性、ガイドラインに沿っているか、句読点や文法のルールに従っているか
    • Richness: 豊かさ、語彙が多様で面白いものか
    • Attractive: 魅力的なタイトルか
  • Topic
    • Technicality: 専門性
    • Popularity: 需要、記事の内容に興味がある読者の数
  • Sentiment
    • Subjectivity: 主観性
    • Sentimentality: 感情性、どの程度ポジティブ、ネガティブか
    • Polarity: 極性、ポジティブかネガティブか

コーパス作成

Yahoo! Newsから記事をクロールしてきて、15ジャンル1043記事を収集し、その中からサンプリングして561記事を抽出。561記事に対して、10人の専門家が14の指標と質に対して5段階評価する。1記事は専門家の中の1人と著者の中の1人によって評価される。アノテーションの質を保つため、1日10記事までに制限。一致率は62.1%、1ポイント差以内は65.5%、2ポイント差以内は96.6%

分析結果など

分析結果として、completeness は質と相関性が高い、Polarityは相関性が低いことが分かる。
Generalised Linear Methodを利用して、14の指標を使って質を予測した結果、Completeness, Fluency, Richnessが質に影響が大きかった

感想

最近、文章の面白さについて考えていたけど、結構自分が考えていた要素と似ていて、おもしろかったし、ちゃんと研究したくなった。関連研究にも面白そうなの多いし、読んでみたい。あとは、アノテーションの質のために、1日10記事までに制限するのはおもしろいなと思った。

2017年目標

今年の目標を考えた。

  1. 手を動かす、行動する
    • 去年は考えることが多い1年だった。それはそれで視野を広げられた気がするのでよかったけど、何もできなかった感がどうしても出てくるので、今年はもう少し実行性を高めていきたい。中長期的にやりたいことももう少し整理しつつ進めていきたい。
  2. 自己投資
    • もともと物欲とかあまりないこともあって、特に何も考えずに過ごすとあまりお金を使うことがないんだけど、もったいない気もしてるので、食やら娯楽やら環境やら、自分のためになりそうとか、楽しめそうものには意識的にお金を使っていくようにしたい。関係ないけど、そろそろ引っ越したい気がする。
  3. 次の5年
    • 今後の5年を考える。考えるといっても既に大体の方向性は決まっているので、どういうタイミングで、どういう環境で何をやるべきかみたいなことを考えつつ、環境を整えていきたい。


今年1年は重要な気がしてるのは頑張りたい。

2016年振り返り

2016年を振り返る。

目標

2016年目標 - skozawa's blog

  1. 中・長期的な計画を立てて実行する
  2. 日々のことを記録する
    • だいたい週1で記録することができた
    • 1年振り返ってみて、クリエイティブなことが全くできてないことが分かって反省、来年は頑張ろう。
  3. 新しいことをする
    • 特に何かできたわけではないけど、なんとなく興味範囲は広がったのでよしとする。

振り返り

1年通してモチベーションなかなか上がらないし、ぱっとしない1年だった。今年はエンジニアとしてはほとんど成長できなかった気はするけど、組織やらビジネスやら、少し周辺のことを色々考えて幅を広められた気がする。それにしても一度糸が切れてしまうと、それを元に戻すのは難しいんだなと感じる年末だった。


さて、もうすぐ今の仕事をして5年になる。院生として自然言語処理の研究を5年、WebエンジニアとしてWebサービス開発を5年。ちょうど次のことを考えるいいタイミングなのかなと思ってぼやぼや考えてる。同じ道を進むか、前の道に戻るか、少し角度を変えてみるか、はたまた全然違うことをしてみるか。何かしらテーマを持ちつつ進みたいなーと思いつつ、どういう方向性があるか考えてるものの特に決まってないので来年また考える。

エンジニアの立ち居振る舞い: ボトルネックを作らないように

お題「エンジニア立ち居振舞い」

僕が意識しているエンジニアの立ち居振る舞いは、チーム開発におけるボトルネックをなるべく発生させないようにすること。

エンジニア、デザイナー、企画、ディレクターなどがいるチームで開発していると、エンジニアリングやサービス仕様の側面で困りごとが発生することがある。
例えば、

  • チームのエンジニアが仕様や設計について困っている。
  • チームのエンジニアがレビュー待ちでタスクが進めづらくなっている。
  • デザイナーの開発環境でエラーがでたり、gitの操作で困っている。
  • 企画、ディレクターなどがエンジニアリングに関して相談がある。

比較的チームに長く在籍していて、サービス仕様などに詳しいということもあるけど、こういったエンジニアリングにおける困りごとをなるべくすばやく解決できるようにして、待ち時間を短く、チームの開発効率を上げようとしている。あとは、一人でできるタスクよりも複数人が関わるタスクを優先するとか。
他にも、Githubやslackとかに何となく書かれた質問に対してもすばやく回答して、メンバーが困っている時間をなるべく少なくするようにしてる。タスクを進めるうえでボトルネックなくスムーズにタスクを進められることは気持ちよく仕事をする大事なポイントの一つな気がしていて、質問に対して30秒後に回答が返ってくるのと、1時間後に回答が返ってくるのではタスクの進みやすさも違ってくる気がする。

特定の行動や習慣というわけではないかもしれないけど、普段意識していることでした(エンジニアとしてというよりエンジニアディレクターとしてというほうが少し強いかもしれない)

最近読んだ本

最近興味のある話題について、いくつか本を読んだのでその感想。

フォーカス

フォーカス

フォーカス

最近、人によって集中力が持続しやすい、しにくいみたいなのはどういう感じで決まるんだろうかとか、あっちこっちに集中力を使っていると疲れやすい気がするなとか、集中力について考えていたので読んでみた。結果としてはそういう情報は書いてなかったけど、いくつかおもしろい部分があった。

ひとつは集中力の分散について。なんとなく分散できるんじゃないかと思ってたけど勘違いだったみたいで、単に頑張って切り替えているだけらしい。たしかにそういわれるとそんな気はする。結構ショッキングなのは「しょっちゅう切り替えていると、一つのことに全面的な注意を注ぐ能力が落ちてくる。」という部分。ここ1年くらいしょっちゅう切り替えている自覚があるし、最近1つのことに集中しづらくなっている気もする。個人的にはもう少し1つのことに集中して成果を出したいと思ってるので、1つのことに注意を注ぐ能力が落ちないように気を付けないとなと思った。

もう一つ、注意をいろいろな対象に「分散」することが可能だと考える人もいるようだが、これも認知科学者に言わせれば、フィクションにすぎないようだ。注意というのは風船を膨らますように大きくして同時並行的に使えるものではなく、決まった細かいパイプラインを選択的に使うようなものらしい。注意を「分散」できるように見えるのは、実際には、パイプラインを素早く切り替えているのである。しょっちゅう切り替えていると、一つのことに全面的な注意を注ぐ能力が落ちてくる。

あともう一つおもしろかったのがポジティブとネガティブの比率の話。ポジティブ:ネガティブが2.9:1以上だといいらしい(高すぎると逆にダメ)。自分の比率がどのくらいかはあまり意識して考えたことないけど、どのくらいなんだろう。

何百ものビジネス・チームを分析した結果、最も優秀なチームはポジティブ感情とネガティブ感情の比率が二・九対一以上であることが分かった(ポジティブ感情にも上限があり、ロサダによれば、十一対一以上になるとチームは浮かれすぎて効率が落ちる。人間個人についても同様な比率が望ましい。

感情

感情 (〈1冊でわかる〉シリーズ)

感情 (〈1冊でわかる〉シリーズ)

自然言語処理の感情分析とか興味あって、少し手を出してみたりしたけど、そもそも感情とはなんだろうというのを考えたことがあまりなかったので、読んでみた。

生得的な感情(喜び、怒りなど)と社会・文化的な影響がある感情があることや、人が感じる感情の種類数と感情を表す語彙数との間には関連がないことなどが書いてあって、おもしろかった。

僕たちはこれから何をつくっていくのだろう

少し前に読んだ広告についての本。広告についての箭内さんの考え方や、バンドやラジオ、映像などいろいろやってきているけど、すべては広告のためにやっているというのはすごいなあと思う。

広告の話ではないけど、小田桐昭さんとの対談で出てきた故郷の話がおもしろかった。

小田桐 僕の故郷は電通なので、やはり責任感がないわけではない。電通人は日本の広告を良くすることに責任をもっています。だから若い人がたくさん入ってきてほしい。沸き立つような広告への情熱や光り輝くものを見てきたので、今も広告がそこに向かわないと自分ではとても嫌なんです。今だって、たくさん広告界への志望者はいます。なのにどうして広告の現実がこんなにみすぼらしくてつまらないんだろうって、電通に対していつも怒ってます。
箭内 「電通が故郷」ってしっくりきます。僕の故郷は博報堂です。故郷は決して土地のことだけじゃなく、大事な仲間や後輩がいて、志のある場所は故郷。広告も大きな意味では故郷ですね。

最初に社会を大きく感じた場所とか、自分自身が大きく成長できた場所が「故郷」になるのかな。それは人によって、最初に働いた会社であったり、所属するコミュニティだったり、インターネットだったりするんだと思う。じゃあ、自分にとっての故郷はどこなんだろうと考えてみたけど、今のところ「研究」になるんだろうか。今年でエンジニア5年目なので、あと1年で大学院で研究した年数と同じになると思うと、現状ではあまり故郷への貢献はできてないなぁと。

予想通りに不合理

あとは「無意識」についても気になっているので、関係ありそうなものとして読んでみた。

社会規範と市場規範の話がおもしろかった。お金の絡まない社会規範で成り立っていた話に少しでもお金が絡むと市場規範となってしまい、その後はなかなか社会規範が取り戻せないらしい。たしかにボランティアとか無償で行う行動に多少でも報酬が関わってくると取り組み方が変わってしまう気がする。

あともう一つお金関係でおもしろかったのが、冷蔵庫に現金を入れてもなくならないけど、コーラを入れておくとなくなるという話で、お金を持っていくのには抵抗があるけど、それと同等だけどモノになってしまうと後ろめたさが薄れるというのは確かにそんな気がする。おもしろいけど気を付けないとなと思う。

他には、自分の所有物を過大評価してしまうことや問題を先延ばしにしがちだとか書いてあった。



ここ最近関心のあるところの本をいくつか読んでみた。アルゴリズムを考えるときとかに還元できるといいなとは思うけど、できるかはわからない。

論文メモ:NLP2016

今年は言語処理学会に参加できなかったので、proceedingsを眺めて気になった論文を斜め読みだけした。メモ程度だけど残しておく。
来年の言語処理学会はどこなんだろ、筑波大?行けるといいな。


慣用句感情コーパスの構築および慣用句感情表現辞書の拡張
  • 単語やフレーズだけでなく、慣用句の感情表現を獲得する
  • 既存の慣用句感情表現辞書を使ってコーパスを作成し、そこから慣用句感情表現を拡張する
web上のテキストからの表記ゆれ語獲得
  • 「うーれしい」と「嬉しい」のような表記ゆれ語と正規語を教師なしのアプローチで獲得する
  • Twitterのデータに対して、区切り文字(改行文字、句読点、記号、顔文字、スペース)で分割し10文字以下の文字列を対象とする
    • 実際にデータ見ないと決められないような上手な条件設定だなーと感じた
  • 意味類似度、音類似度、ノード間類似度を利用
    • 音類似度(母音の置換と削除を無視した編集距離)というのはおもしろい
評判情報分析のための製品属性の異表記辞書の自動構築
  • 「価格」「値段」「コスト」などの属性の異表記を獲得する
  • 表(価格.comの仕様表)と製品のレビュー文から属性、属性値ペアを取得
    • レビュー文を利用することが従来研究との違い
    • レビュー文からの抽出はまだ十分ではなさそう
分散表現を用いたニュース記事の重複排除
  • 記事の分散表現のコサイン類似度で記事の重複を判定する
  • オフライン評価として記事の重複具合を評価するだけでなく、オンライン評価として記事のCTRなどでもしているのはおもしろい
文脈限定Skip-gramによる同義語獲得に関する研究
  • Skip-gramを拡張し、文脈を考慮するようにした文脈Skip-gramを利用して同義語を判定
  • 文脈としては、周辺単語の品詞、種類、周辺単語の左右、周辺単語の相対距離に依存した文脈限定関数を利用
  • それぞれの文脈を素性として線形SVMの学習
  • 正解データはWordnetの同義対データベースを利用
  • 文脈を考慮することで、抽出精度、再現率ともに上がっていてよさそう
大規模テキストコーパスを用いた因果関係の自動抽出手法
  • Webコーパスから手がかり表現と共起情報を利用して<勉強、合格>というような因果関係のペアを取得する
  • 手がかり表現と共起情報を使って特徴ベクトルを作り、TF, IDF, PMIからなるスコア関数によって因果関係を取得する
  • ヒューリスティック閾値によるアプローチでは精度が高く、再現率が低い
  • SVMを使って自動分類した場合は閾値に比べて精度は少し下がるが再現率が上がる
  • 再現率は低いけど、教師なしの閾値のアプローチで高い精度で因果関係のペアが取れるのは便利そう
検索条件のための単語分割一貫性の定量的評価
  • 検索クエリと検索対象文書で形態素解析の単位が異なると検索に失敗するケースがでてくる
  • 単語分割の一貫性を求める指標を用意して、既存の形態素解析、辞書に対して適用
  • neologd のように長い単語を固有名詞として辞書を増やしていくと、検索文書においては解析誤りは減るが、検索クエリには合わなくるので、単純に辞書の語彙数増やせばいいのではないというのは、たしかになぁと感じた。
ウェブ上のテキストの書き手の属性推定のための領域適応
  • テキストから性別、年代を教師あり学習で推定する
  • メインはドメイン適応、異なるドメインでも適応できるように、ソースドメインとターゲットドメインで特徴の分布調整や誤りを招く可能性のある特徴の削除をする
  • 属性推定は書き手の情報のみ、もしくは、閲覧者の情報のみを使うケースがほとんどな気がするので、その両方を使うとどうなるのかが気になる。両方の情報を揃えるのは大変だろうけど。
模倣学習を用いた階層的商品分類
  • 楽天の商品をカテゴリ分類する話
  • 分類には階層的分類と非階層的分類があるが、階層的に分類する
  • 階層的分類の場合、上の階層から分類をしていくが、途中で分類を誤るとそのあとの分類に誤りが伝播してしまう
  • 模倣学習を階層的分類に活用することで誤り伝播を低減する
  • Average Revenue Loss という階層構造を考慮した評価指標を使って評価
  • ベースライン(非階層的な手法)に比べてMicro F1はあまり変わっていないが、Average Revenue Lossが減少しているというのはおもしろい
Gunosyにおける言語処理応用
  • ワークショップの論文
  • Gunosyのシステム/技術の変遷が書かれている
  • パーソナライズしていた第1期と、今の仕組みのパーソナライズしていない第2期とに分かれていて、それぞれで直面した課題と対応について書かれていて興味深かった