myaun’s blog

2020年に学会コンペに3つ参加したので感想など

Kaggle Advent Calendar 2020 21日の記事です。

今年、以下の3つの国際会議に併設されている分析コンペ(以降、学会コンペ)に参加したので、参加したコンペを振り返りつつ、その感想をまとめます。

  • RecSys Challenge 2020
  • CIKM2020 AnalytiCup, COVID-19 Retweet Prediction Challenge
  • The NeurIPS 2020 Education Challenge

ここに書いていないコンペも含めて、今年もたくさんのコンペでデータに触れて楽しむことができました。 データ提供者、コンペ運営者にとても感謝しております

個人的なコンペを選ぶ基準の話

明確に決めているわけでは無いですが、今年は以下の「解法やコードが共有される機会の有無」「(できるだけ)並列参加しない」で条件付けして「タスクの面白さ」を最優先して、自分にとって一番面白そうなものに参加しました。

タスクの面白さ

タスクの面白さの観点はu++さんのスライドのように人によって色んな観点がありますが、個人的に今年はユーザのログデータを使ったコンペがやりたいなと思って探してました。 また、やってみなきゃ分からないところはありますが、自分の興味やタスク自体のやり込み要素から期間中に最後まで楽しめそうかどうかは考えてました。

解法やコードが共有される機会の有無

Kaggleは参加者が積極的に解法を共有している印象がありますが、その他のコンペであれば共有がほとんどされない可能性もあるので気にしていました。 一生懸命やって、負けた。全く何も分からなかった。終了。は辛いと思い、Workshopが開催されたり、入賞者がコードやレポートの公開することが必須であるかどうかは意識して確認していました。

(できるだけ)並列参加しない

去年は何も考えず並列でも参加してて、全体的に印象が薄くなった気がしたので(自分の脳のキャパの小ささと心持ちが悪い)、今年はできるだけ1つ1つのコンペに集中しながら取り組みたいと考えてました。 とはいえ、気になるタスクがあればデータをダウンロードして手元で簡単触るまで、ベースライン作るまで、早期で心が折れた、とかはたくさんしました。

参加した学会コンペについて

上述の基準にして色々探した結果、今年は3つの学会コンペに参加することになりました。また、COVID-19の影響で各国際会議はオンライン開催になったため、Workshopへの聴講も発表も現地に行かずに参加することができると思ったのでカジュアルに参加できました。(来年もオンライン開催orハイブリッド開催という形が多そうです)

誰かの何らか参考になるかもしれないので、私の参加した範囲の情報のみですが3つのコンペでの流れを共有しようと思います。

なお、前提として基本的には学会や運営担当者によって様々ですので、コンペ毎に確認する必要があります。Kaggleのようにコンペの運営経験がある担当者であることは稀だと思うので、公開情報に不備があると感じたらお互いのためにフォーラム等で事前に確認することが大切だと思います。

RecSys Challenge 2020

RecSys Challenge 2020

  • RecSysで毎年開催されており、毎年推薦に関するタスクが設定されています。今年はツイートへのエンゲージメントを予測するタスクでした。コンペのプラットフォームは独自のものを使っていました。
  • このコンペの私の成績は8位 (同率含めば実質11位)でした。 RecSys Challenge 2020 備忘録|myaunraitau|note に私の備忘録を書いてます。
  • タイムライン
    • 3/2 コンペ開始
    • 6/15 コンペ終了
    • 7/8 レポート提出
      • 任意の参加者が提出可能、賞金対象者は提出必須、7ページ。レポートは ACM Digital Libraryで公開されています。
    • 8/19 Camera-ready 提出
    • 9/22~26 ワークショップ
      • 主催者による紹介と9チームの発表とパネルディスカッション

CIKM2020 AnalytiCup - COVID-19 Retweet Prediction Challenge

COVID-19 Retweet Prediction Challenge

  • こちらはCOVID-19に関するツイートのリツイート数を予測タスクでした。なお、CIKM2020 AnalytiCupとしてはもう一つ Alibaba-Tsinghua Adversarial Challenge on Object Detectionというコンペも開催されていました。コンペのプラットフォームはcodalabでした。
  • このコンペの私の成績は3位でした。code report
  • タイムライン
    • 7/1 コンペ開始
    • 8/30 コンペ終了
    • 9/30 レポート提出(対象者)
      • 上位6名(semi-finalists)が4ページのレポートを提出するという形式でした。なお、入賞者のコードとレポートはWebサイトで公開されるはずでやりとりがありましたが、途中から音沙汰がなくなりました (そのうち優しく突こうと思ってます)。
    • 10/22 ワークショップ
      • 主催者による総括と上位4チームの発表がありました。
  • その他
    • このコンペの3位の賞品が500ユーロまでのnon-cash prizeで、Amazonリンクを送れば、主催者が郵送してくれるという形でした 。

The NeurIPS 2020 Education Challenge

NeurIPS Education Challenge

  • NeurIPS 2020のCompetition track (今年は16コンペ開催されたようです)として開催されたもので、教育プラットフォームEediにおける数学の問題に対する生徒の回答のデータを用いる4種類のタスクが設定されたコンペでした。コンペのプラットフォームはcodalabでした。
  • このコンペの私の成績は、task1 1位、task2 2位、task3 1位(同率)で総合1位でした。code report (task1&2) report (task3)
  • タイムライン
    • 7/15 コンペ開始
    • 10/23 コンペ終了
    • 10/26 結果通知
    • 11/7 レポート提出(対象者)
      • 4種類の各タスク毎に最終スコアが閾値以上の参加者は原稿を提出してもよい、賞金対象者は提出必須、という形式でした。結構短い期間(10/26~11/7)でタスク毎に4ページのレポート提出みたいな感じだったのでしんどかったです (私のチームはtask1&2, task3で提出しました)。参加者のレポートとコードはホームページで公開されました(一部はまだ回収できていない?のようですが)。
    • 12/12 ワークショップ
      • 尺の都合(?)からコンペ参加者による発表は無く、主催者による総括的な発表のみでした。

Kaggleとの比較の話

  • 私が参加した学会コンペはコンペ期間中のディスカッション(フォーラム)はKaggleのように活発ではありませんでした。基本的には、主催者に対するデータやルールの確認であり、手法や特徴量に関する投稿は少なかったです。なのでKaggleのようKernelを参考にしたり、コピペしてから始めることはできず、強制的に自分で0から作る必要があるので訓練になるかもしれません。
  • もちろんコンペによりますが、私が参加したコンペに限ってはKaggleに比べて参加者が少ないかったため、リーダーボードの動きも比較的激しくありませんでした。そのため、人によって精神的負荷が小さく取り組みやすいかもしれません。
  • Kaggleは全ユーザが利用可能なNotebookを提供したり、それらを使った提出(Code Competition)などをできるシステムとインフラがあり、Kaggle以外の他のプラットフォームや運営では真似するのが難しい、優れたタスク設計ができるのは改めて凄いと感じてます。

終わりに

上述したようなコンペ毎のKaggleとは違う性質の良し悪しは人によると思うので、もちろん好きなものを選べば良いと思ってます。 個人的には、Kaggle上で(自分にとって)面白いタスクのコンペが開催されていたらそれが一番良いと思いますが、自分が興味を持つことができるコンペを探す選択肢の1つとして学会のコンペも覗いていみると良いかもしれません。

今年、Kaggleが楽しくなった話

前置き

今までKaggleは興味はあるが腰が重いみたいな存在でしたが、今年になってKaggleが楽しくなって参加するようになったので、その経緯と今年の振り返りを書きます。

  • kaggle その2 Advent Calendar 2019 の4日目の記事です。
  • 日記(Kaggle系ポエム)です。
  • 本記事はKaggleで勝つための技術は全く得られません。

Kaggleが楽しくなったきっかけ

今年までは、やってみたいやってみたいと思いながら、TwitterでKagglerの人達みたり、Kernelsを動かしてみたり、Discussionを読んでみたりするだけでした。

今年になってたまたま以下のような流れでKaggleが楽しくなりました。

  • 3月頃に転職活動をしていて、有給消化したり社内ニートになったりしてて暇になったことをきっかけにPetfinderに参加した。当時、日本勢のKagglerの方達がTwitterとかで盛り上がってて楽しそうでした。
  • [楽しくなった!] まぐれ特徴量が当たって銀メダル圏に入れた。
  • 結果、調子に乗っていたがKaggle何も分かっていなくてかなりShake down ...でも銅メダルはもらえた
  • [楽しくなってる!] Petfinderの結果が出るのが遅くて、そわそわして代名詞コンペに参加する

なので、ハマるきっかけはまぐれでも最初だけでも良いのでメダル圏内や上位に入ることだと思います。(そのためにはある程度時間に余裕が必要?)

楽しくなった結果、下図のような感じでたくさんのコンペに参加しました。

f:id:myaun:20191204231619p:plain
今年参加したコンペ

今年、一番楽しかったのは分子コンペ (Predicting Molecular Properties) でした。 経験が浅いながら過去数回のコンペやMeetup等で学んだことを実践しながら、 グラフ系データの扱いを学べて楽しめました。

[小ネタ] チーム名でモチベーションを高めるKaggle

(本当はこのネタだけで記事にしようと思ってたが、内容が薄すぎたので日記に変えた)

皆さんはソロで参加するときのチーム名は気にしてますか? デフォルトだと登録名ですが、ソロであってもチーム名は変えられます。

f:id:myaun:20191204231010p:plain
チーム名変更画面

私は気分転換で適当に名前を変えていて、最後の方には自分の好きなアイドルの楽曲の名前にします。*1 自分が上位になることでその楽曲名が多くの人に宣伝できれば嬉しいとか思いながら頑張っています。 (この作戦により、Load Moreをしなくても表示される50位以内へのモチベーションが高まります。)

f:id:myaun:20191204232359p:plain
私が参加したコンペのチーム名

外国人にもわかるように英語表記にして、一応ぐぐったらYouTubeのMVが検索結果にでてくることを確認しています。

以上、Kaggleの変な楽しみ方でした。

Kaggleやってて良かったこと(私の場合)

仕事で機械学習のコード書いてなくても焦りにくい

以前は、業務外の機械学習系のインプットは本を読んだり技術ブログを読んだりがメインだったので、 業務で資料作成などが立て込み、データ分析や機械学習のコードを書かない期間が長くなると、 なまって弱くなっているのではないか、と不安になることがありました。

最近は、コードをあまり書かない期間があっても、Kaggleを通して調査+実装をしていることが多いのでその辺り少し気持ちが楽になりました。 Kaggleは、絶えずたくさんの分析テーマを世界中に公開してくれているという観点ですごい有難い存在だなと感じます。

少し話のネタになる

今年に入ってデータサイエンス系役職の面談をすることが増えたのですが、 共通の話題として面談のアイスブレーク的に話せることが何度かあったのでそういう時は良いなーと思います。 Kaggleやっていない人はいますが、知らない人はこの界隈では流石に少ない。

また、業務に関しては内容の話は細かいところ秘密だったりするけど、 Kaggleの過去コンペの話は大丈夫(進行中のコンペは注意!)。

来年のKaggleでの目標

金メダル!

ただ、現状の実力だと金メダルには高い壁があるような気がするのでしっかり修行します。 ドラクエ3だと、Masterになるのがバラモス撃破、GMになるのがゾーマ撃破くらいかな*2と思っているので今は道中を楽しんでいるところです。

カーネルやディスカッション、ソリューションを投稿する

コンペに参加する(インプット、実装に必死) -> コンペ終わる(汚いコードと微妙な結果だけが残る) -> 一段楽(結果の整理はできてない) -> 次のコンペに参加する..., のようなクソムーブで、Kaggle始めてからブログ等のアウトプットが減ってしまった(インプットも未整理)という反省があるので、来年は1つ1つしっかりまとめていきたい。

最後に

Kaggle Days Tokyo行きます(業務内で!)

*1:非推奨のアクションとかだったらすみません

*2:もっと段階があるかも

ブログ解析による日向坂46メンバの相関図作成

はじめに

本日2019/7/28 25:05-より放送予定の日向坂46の冠番組「日向坂で会いましょう」にてメンバーの関係性を確認する企画が放送されます。 この企画は、以前欅坂46の番組でも同じ企画が放送されたことがあるファン注目の人気企画です。

www.tv-tokyo.co.jp

様々なエピソードをもとに、最新の日向坂46メンバーの関係性を確認! 謎のユニット名が続々登場で、メンバー同士の新たな関係性が明らかに! 珍エピソードの数々に、オードリーも巻きこまれる!?

今回は、メンバーのブログを解析することにより、 その放送に先駆けてメンバー間の関係性や番組MCとの関係性を明らかにします。

本記事でやったこと

解析方法

以下の4つの手順で解析しました。

解析に使用したコード

github.com

1. ブログを収集

  • 公式サイトからスクレイピングすることにより取得
    • 収集方法はこちらの記事の通りです。
    • qiita.com
  • 今回は日向坂メンバ21名の記事を対象としました。
    • 収集期間: 2016/8/2 - 2019/7/24
    • 総記事数: 8529

収集したブログの一部

f:id:myaun:20190728142852p:plain

2. 各メンバのブログ文章から他メンバへの言及を抽出

下の画像のように、各メンバのブログの文章からメンバの名前を抽出します。

f:id:myaun:20190728204802p:plain

ブログではメンバの名前を愛称で呼ぶことが多いため、通常のMeCab等の形態素解析ツールの辞書ではメンバの言及を抽出することができません。これを解決するため、MeCabの辞書へメンバの愛称を追加語彙として追加します。

追加したメンバの愛称の語彙は以下に例示します。

佐々木美玲の場合 f:id:myaun:20190728144323p:plain

河田陽菜の場合 f:id:myaun:20190728144130p:plain

3. メンバ間の関係を可視化

[2. 各メンバのブログ文章から他メンバへの言及を抽出]の処理を全8529件のブログへ適用しました。 fromメンバ toメンバの回数を行列にし、ヒートマップにしました。

f:id:myaun:20190728145318p:plain

ただし、以下のグラフのようにメンバ毎に投稿してる記事の本数が大きくことなるため、そのままの値では、メンバの関係が観測しづらい場合があります。

f:id:myaun:20190728145511p:plain

メンバ毎に言及数で正規化(min-max normalization)した場合は、ヒートマップは以下のようになります。これによりメンバ間の関係が観測しやすくなりました。

f:id:myaun:20190728154850p:plain

より直観的に全体の関係を確認するために、グラフによる可視化を試しました。ノード間エッジの太さが関係の強さ(言及数の多さ)を表しています。

f:id:myaun:20190728150940p:plain

可視化のためにツールはCytoscapeを使いました。

cytoscape.org

考察

これらの可視化により以下の点が確認できました。

4. メンバーから番組MCオードリーへの関係を可視化

同様の方法により、各メンバのブログから番組MCであるオードリーへの言及数を確認した。オードリーというコンビ名への言及と若林、春日それぞれへの言及は別々に集計した。

f:id:myaun:20190728153357p:plain

f:id:myaun:20190728151549p:plain

考察

これらの可視化により以下の点が確認できました。

  • ブログでのオードリーへの言及が最も多く愛が強いのは、「高瀬愛奈
  • 全メンバが「若林」に比べて「春日」への言及が多い
    • 番組では「高瀬愛奈」「富田鈴花」を除く全てのメンバがオードリーの「若林派」を公言していたが、今回の解析結果では「若林派」が一人もいないという、真逆の結果が得られた。
    • 若林が春日に比べて、イジりどころが無いため言及され辛い?

終わりに

「企業の研究者をめざす皆さんへ ―Research That Matters」読みました

読んだ本

企業の研究者をめざす皆さんへ―Research That Matters

企業の研究者をめざす皆さんへ―Research That Matters

どんな本

本書の著者である丸山宏さん(現在、PFNフェロー)は、26年の間日本アイ・ビー・エムの東京基礎研究所で働いていた研究者です。そんな丸山さんが、研究所の所長として過ごした最後の3年間に約160名の研究員に対して「研究のやり方」「キャリア形成の考え方」「ビジネスの方向性」などのトピックに関してのレターを社内ブログの形で発信していました。それらのレターを中心に企業の研究者およびそれを目指す人に向けての思い書いた本。

所感

先日の人工知能学会2019にて、丸山宏さんの講演*1を初めて聞いて、とても感動したという話をしていたら、この本を紹介して頂いたので読みました。 私が良い本でしたとかいうのはおこがましいですが、とっても良い本でした。 これからも定期的に読み返す本になると思います。

以下、特に心に残っている部分の感想を書きます。(全編良いのですが!)

皆さんには、このような、「気になる研究者」をいつでも持っていて、いつも気にしていてほしいと思います。皆さんの中で、目標にする研究者像というのがはっきりしている場合、つまり「私は○○さんのようになりたい」という人がいるのならば、それでいいです。そうでなくても、つまり「○○さんのようになりたい」と思わなくても、「少なくとも○○さんを越えるような研究者になりたい」という気持ちがあればよいと思います。最初はあまり高い目標でなくてもいい。皆さんの周りに、「あ、この人すごいな」と思わせる人がいたら、まずその人を目標にしたらよいと思います。その目標に向かって努力しているうちに、いつの間にか自分も成長して、より高い目標の人を探すことになるでしょう。-丸山 宏. 企業の研究者をめざす皆さんへ Research That Matters (Japanese Edition) (Kindle の位置No.230-236). Kindle 版. -

これは研究者に限ったことでは無いかもしれませんが、すごく大切な状態だと思って強く共感できました。私のまだまだ短い人生でも、頑張れる状態の時は必ずそういう人物がいる時でした。

私が会社に入って受けたプレゼンテーションの研修の中で、一番頭に残っていることは、「聴衆の興味を画面でなく、あなた自身に向けるようにしなさい」ということです。つまり、内容よりも人を売り込め、ということです。-丸山 宏. 企業の研究者をめざす皆さんへ Research That Matters (Japanese Edition) (Kindle の位置No.640-642). Kindle 版. -

プレゼンテーションについてのレターからです。私自身、今回の人工知能学会の講演を聞いて、内容と同じくらいかそれ以上に丸山さんという人間に関心が向きました。過去に面白いと思った発表は、いつも発表者に惹かれた時だと思います。私もそんな講演ができるように意識したいと思いました。

逆説的に聞こえるかもしれないが、私はキャリア・プランなどというものを信じていない。何歳までに何を経験し、何歳までにマネージャーになって、などとプランしていてもその通りになることはまずないだろう。それよりも、常に与えられたチャンスをつかまえて、その中で自分の価値を最大限に発揮していくことで周囲に認められ、結果的にキャリア・アップしていくものではないだろうか。-丸山 宏. 企業の研究者をめざす皆さんへ Research That Matters (Japanese Edition) (Kindle の位置No.903-907). Kindle 版. -

研究者のキャリアについてのお話しからです。これは特に共感できました。今まで何度も〇〇年後にこうなって、さらにその〇〇年後にと計画したことがありましたが、その通りになることはほとんど無いし、計画したこと自体も忘れてしまうようなことが多かったです。そんなではなくて、打算的に考えずにその時々の状態で与えられた機会に一生懸命取り組むことが、一番未来に繋がると思ってますし、今のところもそういう感じです。(確か、お笑い芸人の有吉さんもそんなこと言ってた気がします。)

問題は、このような「外向けの価値を高めながら、同時に、構成員が組織に所属していることの価値を感じることができる」、というバランスを達成することなのだと思います。良い研究成果を出すことによって自然と人が集まってくる、優秀な人が集まることによってより良い研究成果が出る、というポジティブフィードバックがかかるような研究所になれば、と心から思います。-丸山 宏. 企業の研究者をめざす皆さんへ Research That Matters (Japanese Edition) (Kindle の位置No.1834-1837). Kindle 版. -

研究所の価値についてのお話しからです。研究チームが生み出す外向けの価値とチームの中にいる人が感じる価値があって、良い成果を出し続けるためにはそのバランスが大事ということだと読みました。当たり前なのかもしれませんが、私はそういうバランスが考えられなくなる時が多いので、忘れないようにしておきたいと思う考えでした。

*1:講演資料はここで確認できます

基調講演・招待講演 – JSAI2019

FaceNetによる顔画像の特徴量抽出 - アイドル画像による検証 -

1. はじめに

本記事では、アイドルブログの画像から検出された顔画像からFaceNetによる特徴量を抽出しました。 そして、得られた特徴量の表現力や挙動を確認しました。

この検証は、ブログやSNSなどのメディアで、気になるメンバ以外の投稿に気になるメンバが出現したときに検出したいと思うことがあり、そのための1歩目の実験です。

ラベル付けをする根性が無いので、自動ラベル付け or 1枚だけ(プロフィール画像など)から学習するOne-shot learning (or Few-shot learning)により、これが実現できればいいなと思っています。 今回は、FaceNetのような大規模顔画像データセットで学習済みのモデルから得られる特徴量で、どの程度表現可能か検証してみました。

参考

本記事は以下の記事を参考をしたり、影響を受けたりしてます。
特にすぎゃーんさんの記事すごい。ラベル付けすごいし、3年以上前にやってることもすごい。

2. FaceNetによる顔画像の特徴量抽出

2-1. ブログ画像を収集

欅坂46、日向坂46のブログをスクレイピングし、画像を取得しました。

  • 対象メンバ数: 38名
  • 総取得画像数: 47740枚

使用したコード: keyakizaka46-mining/retrieve_Blog_images.ipynb at master · haradai1262/keyakizaka46-mining · GitHub

2-2. ブログ画像から顔検出、保存

物体検出のSOTAとして有名であるYOLOv3を使いました。 実装は以下のコードを参考にしました。

タスクが顔検出なので、YOLOv3の重みとして、顔検出データ・セットWIDER FACE: A Face Detection Benchmarkで学習済みのものを使用しています。 今回は、パッと見た感じ検出された顔画像のサイズが小さいものは誤検出が多かったので、サイズが小さいものを取り除きました。 最終的に、検出された顔画像は29825枚でした。

検出結果例は以下の通りです。

入力画像 f:id:myaun:20190313194405j:plain

検出された顔画像

f:id:myaun:20190313194652p:plainf:id:myaun:20190313194625p:plainf:id:myaun:20190313194642p:plain

使用したコード: keyakizaka46-mining/script/risa_inf/face_detection at master · haradai1262/keyakizaka46-mining · GitHub

2-3. Facenetにより顔画像から特徴量抽出

FaceNetは2015年にGoogleの研究者により発表された手法です。 FaceNetでは、画像間の距離をTriplet Lossを用いた距離学習により、サンプルと同じものとの距離を近く、異なるものとの距離を遠くにマッピングされるように学習されます。 これにより、顔認識やクラスタリングのための高い表現力を持つ顔画像のベクトル表現を取得することを実現しました。

以下のコードで、公開されている最新の学習済みモデルは、Inception ResNet v1をCasia-WebFaceやVGGFace2で学習したものらしい。今回の実験では、こちらの学習済みモデルを使用して特徴量を抽出しました。

使用したコード: keyakizaka46-mining-gpu/extract_facenet_features_from_blog_faceimages.ipynb at master · haradai1262/keyakizaka46-mining-gpu · GitHub

2-4. 得られた顔画像特徴量の検証

A. 類似顔画像検索

得られた特徴量を用いた類似画像検索を行いました。検索は、Pythonの近似最近傍探索ライブラリAnnoyを使いました。 他の特徴量と比較したかったので、物体認識のデータセットであるImageNetで学習されたVGG16の中間層(fc2)の出力値でも同じことを比較しました。

実行結果の一部は以下の通りです。 結果がわかりやすそうなものを選びましたが*1、他の結果を見てもFaceNetは特徴的な顔のメンバはある程度表現できているように感じました。

  • 各行の一番左がクエリ画像で、右から順に距離が小さい画像です。
  • 上段がFaceNetによる検索、下段がVGG16による検索です。
  • ◎が付いてるものは、クエリ画像と人物が一致しているものです(私の目視チェック)

f:id:myaun:20190313213856p:plain

f:id:myaun:20190313213813p:plain

f:id:myaun:20190313213836p:plain

f:id:myaun:20190313213750p:plain

f:id:myaun:20190313213021p:plain

B. t-SNEによる2次元可視化

得られた特徴量をt-SNEにより2次元空間へ射影しました。 ここからは、対象とする画像が多すぎると苦しい(マシン的にも確認の難しさ的にも)ので、以下の1メンバのブログから取得された顔画像のみを対象にしました。

結果は以下の通りです。
顔がちゃんと写っている画像であれば、ある程度同じメンバが近くに集まっているように見える(気がする)

f:id:myaun:20190313212013p:plain

C. クラスタリング

得られた特徴量を用いてクラスタリングをしました。 クラスタリング手法はGMMを採用し、クラスタ数は20としました。

結果は以下の通りです。
各行の画像が同じクラスタの画像であり、最も左から順にクラスタ中心に距離が近い画像です。

f:id:myaun:20190309015628p:plain f:id:myaun:20190309015656p:plain

全体としては、同じメンバの画像が同じクラスタになっていたり、同じ渡邉理佐の画像であっても雰囲気や撮影時期が近いものが同じクラスタになっているように見える。 例えば、Cluster 8やCluster 17は、渡邉理佐以外の同じメンバが集まっている。 とはいえ、精度としては微妙な気がするし、そもそも顔検出自体もイケてない気がする。

使用したコード: keyakizaka46-mining-gpu/check_blog_faceimages.ipynb at master · haradai1262/keyakizaka46-mining-gpu · GitHub

3. 終わりに

  • 類似画像検索やクラスタリングでも一部メンバ毎に分割されていたので、ある程度の表現力はありそう
  • 顔検出自体の精度が気になるので、以下の記事などを参考に顔の角度補正や前処理、後処理を追加して改善したい
  • One-shot Learningを夢見てるけど、コンピュータビジョン系あんまりなので、できそうか無理そうかも勉強しなきゃ分からん
  • 適合性フィードバックと距離学習みたいな方法もやってみたいとおもった
  • 次はMusic Videoを使って実験してみたい

*1:私がFaceNetがうまくいっていそうなものを意図的に選んでるかもしれませんが...

アイドルブログの文体的特徴に基づく著者分類

1. はじめに

本記事では、アイドルブログの文体的特徴に基づく著者分類の紹介をします。

1-1. 「文体的特徴」とは

簡単に言うと、文章に現れる著者の癖に注目した特徴量です。計量文体学、計量分析学と呼ばれる領域にて研究されているみたいです。 文体という言葉は、ブリタニカ百科事典では以下の様に定義されており、これを統計的に扱うための指標のようなものかなと思っています。

ある特定の個人,時代,流派などの言語表現を特徴づける様式

文体的特徴および計量文体分析に関しては、以下の記事で紹介した犯罪捜査のためのテキストマイニング: 文章の指紋を探り,サイバー犯罪に挑む計量的文体分析の手法が詳しいです。

例えば、ある男性著者が女性になりすまして書いた文章や同著者が別名義で書いた文章であっても、その癖は文体的特徴に現れるようです。 具体的に、本記事では、以下の文体的特徴を使いました。

  • 非内容語の使用率
  • 品詞のn-gram
  • 助詞のn-gram
  • 読点前の単語
  • 漢字・ひらがな・カタカナ・数字・ローマ字の使用率

1-2. なぜやったか

アイドルのブログは、名前や決まった挨拶などがあり、そのまま単語を使うと簡単なルールベースで分類できてしまいそうだったので、それらを使わない方法でやってみたかった。文体的特徴では、「名詞」「動詞」「形容詞」などの内容語をそのまま使わず、話題に依存しないので面白いかも!みたいな気持ち。

2. データセットについて

アイドルブログとして、女性アイドルグループ「欅坂46」「日向坂46」のメンバ38名のブログを使用しました。 最も記事数が少ないメンバに合わせて、各メンバから98本のブログをサンプリングしました。

したがって、以下のようなデータセットとなります。

  • 著者数: 38
  • 記事数: 3724 (著者数 × 98)

3. 文体的特徴に基づく著者分類

今回の著者分類は、以下のような設定です。

  • 入力: ブログの本文
  • 出力: いずれかの著者名 (38クラス分類)

3-1. 文体的特徴抽出

以下のコードで文体的特徴を算出しました。*1

# 非内容語の使用率 (非内容語のunigramらしい?)
def get_noncontent_rate( texts_pos, n, cut_off_num ):
    content_pos = ['名詞','動詞','形容詞'] # 内容語   
    novels_pos_str = []
    for token_pos in texts_pos:
        text = ' '.join( [ t[0] for t in token_pos if not t[1] in content_pos ] )
        novels_pos_str.append( text )

    vectorizer = CountVectorizer(
        min_df = cut_off_num,
        ngram_range = (n, n),
    )
    X = vectorizer.fit_transform( novels_pos_str )
    
    return X.toarray()

# 品詞のn-gram
def get_pos_ngram( texts_pos, n, cut_off_num ):
    novels_pos_str = []
    for token_pos in texts_pos:
        text = ' '.join( [t[1] for t in token_pos] )
        novels_pos_str.append( text )

    vectorizer = CountVectorizer(
        min_df = cut_off_num,
        ngram_range = (n, n),
    )
    X = vectorizer.fit_transform( novels_pos_str )
    return X.toarray()

# 助詞のn-gram
def get_adp_ngram( texts_pos, n, cut_off_num ):
    novels_pos_str = []
    for token_pos in texts_pos:
        text = ' '.join( [ t[0] for t in token_pos if t[1] == "助詞" ] )
        novels_pos_str.append( text )

    vectorizer = CountVectorizer(
        min_df = cut_off_num,
        ngram_range = (n, n),
    )
    X = vectorizer.fit_transform( novels_pos_str )
    return X.toarray()

# ひらがな、カタカナ、漢字、数字, 英数字, の使用率
def get_char_kind_rate( texts_pos ):
    re_hiragana = re.compile(r'[\u3041-\u3093]')
    re_katakana = re.compile(r'[\u30A1-\u30F4]+')
    re_kanji = re.compile('[\u4E00-\u9FD0]')
    re_number = re.compile(r'\d') # 全角も含む
    re_alpha = re.compile(r'^[a-zA-Z]+$')
    
    char_kind_rates = []
    for tokens_pos in texts_pos:
        char_num = 1
        char_kind_count = [1,1,1,1,1]
        for i in tokens_pos:
            if len( i[0] ) < 1: continue
            for c in i[0]:
                if re_hiragana.fullmatch(c): char_kind_count[0] += 1
                if re_katakana.fullmatch(c):char_kind_count[1] += 1
                if re_kanji.fullmatch(c): char_kind_count[2] += 1
                if re_number.fullmatch(c): char_kind_count[3] += 1
                if re_alpha.fullmatch(c): char_kind_count[4] += 1
                char_num += 1
        char_kind_rates.append( [ i / float( char_num ) for i in char_kind_count] )
    X = np.array( char_kind_rates )
    return X

# 読点前の単語
def get_comma_before_word( texts_pos, cut_off_num  ):
    novels_pos_str = []
    for token_pos in texts_pos:
        text = ''
        for t in token_pos:
            if t[0] == '、': text += '%s ' % t_prev[0]
            t_prev = t
        novels_pos_str.append( text )

    vectorizer = CountVectorizer(
        min_df = cut_off_num,
    )
    X = vectorizer.fit_transform( novels_pos_str )
    return X.toarray()

3-2. 著者分類

分類器は、Random ForestとLightGBMで実験をしました。(どちらもハイパーパラメータはデフォルト)
評価値は、5分割交差検証(Stratified k-fold)における各分類正解率の平均値です。

コードは以下のような感じ。

def cv_randomforest( X, y ):
    # 5-fold cv
    acc_score_cv = []
    kf = StratifiedKFold(n_splits=5, random_state=777, shuffle=True)
    for idx, (train, val) in enumerate( kf.split(X, y) ):
        # learn model
        clf = RandomForestClassifier(n_estimators=100, n_jobs=7)
        # clf = lgb.LGBMClassifier(n_estimators=100, objective="multiclass")
        clf.fit(X[train], y[train])

        # predict validation and score
        preds = clf.predict(X[val])
        acc_cv = accuracy_score( preds, y[val] )
        acc_score_cv.append( acc_cv )
        
    # cv score
    mean = sum( acc_score_cv ) / len( acc_score_cv )
    return mean

4. 分類結果

4-1. 各特徴量による精度および全特徴量による精度

Random Forest LightGBM
非内容語の使用率 0.5239 0.5499
品詞のn-gram 0.7300 0.7849
助詞のn-gram 0.1315 0.1227
読点前の単語 0.1549 0.1554
漢字・ひらがな・カタカナ・数字・ローマ字の使用率 0.1165 0.1094
ALL 0.7700 0.8351

全体としては、精度が8割程度と38クラス分類の割には結構高い精度となりました。

「非内容語の使用率」「品詞のn-gram」は単独でも高精度でした、これは犯罪捜査のためのテキストマイニング: 文章の指紋を探り,サイバー犯罪に挑む計量的文体分析の手法で行っていた、調査研究の結果とも近い傾向かなと思います。

「助詞のn-gram」「読点前の単語」「漢字・ひらがな・カタカナ・数字・ローマ字の使用率」は、上の2つに比べるとかなり小さいですが、38クラス分類のランダムは3%以下なので、いくらかは文体を表現する効果があるようです。

4-2. いずれかの特徴量を抜いたときの精度

Random Forest LightGBM
ALL - [非内容語の使用率] 0.7340 0.8019
ALL - [品詞のn-gram] 0.5662 0.6157
ALL - [助詞のn-gram] 0.7720 0.8370
ALL - [読点前の単語] 0.7715 0.8346
ALL - [漢字・ひらがな・カタカナ・数字・ローマ字の使用率] 0.7627 0.8307
ALL 0.7700 0.8351

こちらの表は、各特徴量の貢献を確認するために、いずれかの特徴量のみ抜いた際の精度です。 (例えば、「ALL - [非内容語の使用率]」は「非内容語の使用率」のみ抜いた精度)

値を確認すると、今回の実験では、「読点前の単語」「助詞のn-gram」は精度への貢献が確認できませんでした。例えば、「助詞のn-gram」はbi-gramでカットオフ値を5に設定していたので、こちらを変えたりするとまた結果は変わるかもしれません。

4-3. 混同行列

f:id:myaun:20190225205833p:plain

小さくて見にくいですが、メンバによって精度にブレがあるのが確認できます。 具体的には、「守屋茜」は31/98で最も低く、「土生瑞穂」「佐藤詩織」も50/98程度で低いです。文体に一貫性が無いのかもしれません。 また、「丹生明里」「原田葵」「宮田愛萌」は95/98程度で精度が高かったです。自分らしい文章を持っているのかもしれません。

4-4. ブログ文章の例

実際にブログの文章を確認しました。

(正直詳細にはわかりませんが一応考察すると、) 精度が低い「守屋茜」は、確かに文体にばらつきがあるように見えます。例えば、ブログの文末だけ見ても、「あかねん(⑉• •⑉)(⑉• •⑉)❤︎ 」「またねん!あかねん。」「Byeねん❀あかねん❀ 」と結構違うように見えます。 一方で、精度が高い「丹生明里」は、顔文字や絵文字、記号のリズムが一定で(?)、文体に一貫性があるように見えます。

誤分類が多いメンバ (守屋茜)
2016/01/2318:09 ぐらふたぬーん(´。✪ω✪。 ` )ぬーん。ぬんぬんファンレター第3弾!!いただいた日に家に帰ってすぐに読みました。1回読み出したら嬉しくて嬉しくて次も!次も…!!と読んでしまいました( ˊᵕˋ )♡読みながら、私にファンレターを書くためにレターセットを選びに行ってくれたり、私の好きそうなデザインのもので書いてくれたり… 本当にありがとうございます。ファンレターってすごいです。元気いっぱいパワーアップ出来そうです(੭ˊ꒳​ˋ)੭✧いつでも読み返せるように専用のボックスに綺麗に収納しています( ^ω^)いつか私もファンの方々に恩返しできるように頑張ります。オフショッーーーーーと!ヤングマガジン、samurai ELOみなさんみていただけましたか~今日本屋さんでみてきました。あとCancam3月号が今日発売だったので購入しました。愛読しています( ˶˙ᴗ˙˶ )\♥︎/samurai ELOの方は二号連続で出させていただいています(ˊo̶̶̷ᴗo̶̶̷`)次回もおたのしみに♡バレンタインカード、気合いをいれてがんばって可愛くデザインしたのでどうかご応募よろしくお願いします(*ˊ˘ˋ*)。♪:*°ヤングマガジン٩( ü )و❅:*.。 。.*:❅セーラー服着れてハッピー!ハッピー!ハッピー!でした⍤⃝♡ 7人のいつもとは違った表情がご覧いただけけると思いますのでぜひGETしてください❤︎次のブログで個人のオフショット載せます(灬ꈍ ꈍ灬)そして!スカパー音楽祭2016に出演させていただきますT^T☆*。☆*。!!みなさんの心に響くパフォーマンスができるように頑張ります。2/28日曜日の生放送です。ご視聴お願いします!またね〜ん。あかねん(⑉• •⑉)(⑉• •⑉)❤︎  
-------------------------------
2016/05/2518:18 いぇええええええい!!着々と入場時間が迫ってますね♡盛り上がる準備は満タンですか?コラボTシャツ!!♡これすっごく欲しくてなんと!なんと頂きました〜〜うれしい٩(๑˃̵ᴗ˂̵๑)۶ °٩(๑˃̵ᴗ˂̵๑)۶ °ファンのみなさんもGETして、おそろっぴしましょぉおお♪さっそく頂いてからすぐに着ちゃった¨̮♡それでは!!イベントでお会いしましょっ\♥︎/またねん!あかねん。  
-------------------------------
2015/11/2221:58  こんばんは(*^◯^*)はやくも日曜日が終わってシマッターーーー!と思いきや明日もホリデイd('∀'*)ですね´`* 皆さんはどんな休日をお過ごしですか? 今日の写真は  一緒に帰ったメンです♪♪初めてだ!!みんな冬の格好~*:。✡いつの間にかコート着ないと寒い時期になっちゃった(><)でも冬は可愛い服がいーーーっぱいあるので好きです、でも寒いの苦手です… - - - - - - - - - -- - - - - - - - - -- - - - - - - - -  そしてそして今夜は24:35~欅って、書けない?です(*ˊ˘ˋ*)♡私の体力測定VTRも流れますのでぜひぜひ見て頂けると嬉しいです☆彡私はリアルタイムで見ます!!今日はテキパキと終わらせないといけないことはもう片付けました、だからもう寝る準備も出来てま~す´ω` それでは欅って、書けない?でお会いしましょう\(  ˆoˆ )/\( ˆoˆ  )/ Byeねん❀あかねん❀ 
誤分類が少ないメンバ (丹生明里)
2018/05/2600:52 みなさんこんにちは〜٩( ᐛ )و٩( ᐛ )و٩( ᐛ )وけやき坂46 2期生 丹生明里です🐸🥕ベンチコート〜squint🙂最近、こんにゃくにハマろうとしました!お友達からもこんにゃくをオススメされたので、夜に食べようᐠ( ᐝ̱ )ᐟと頑張ったのですが…元からあまりこんにゃくを好んで食べなかったので、味にも慣れなくて、こんにゃくを好きになりたい!沢山食べたい!と思ってもどうしても味があまり受けつけられなくて、~こんにゃくを食べようଘ( ᐛ ) ଓ生活~があっけなく終了しました… 笑これは私の味付けの問題なのでしょうか…?🤔いや違うよ!こんにゃくの味だ!あっ、でも味を少し濃くすれば、なんとなーくカモフラージュされて食べれますかね!やっぱりもう一回がんばろうかな〜あ、私よく一人で解決しちゃう人です(ちっちゃいことだけね!)あと、私はよくサラダチキンを食べます!肉の脂身がそんなに得意ではなくて…あの絶妙なパサつき感がたまりません😳もっと沢山食べたい!というのと、最近味に飽きてきたのもあって此間、ササミを自分で茹でました〜🐓何も味をつけずに食べたら、ただのパサパサササミちゃんでした😂でも自分で茹でると安心なので、オススメです✔︎〜*〜☆〜†〜☆〜†〜☆〜†〜*〜今週の、ひらがな推し!春日さんと"真剣白刃取り"で対決させていただきました〜⚔春日さんは、凄く身体能力が高いので、大丈夫かなぁ🤔と、不安でした、 でも、本気で ということでストレートに打ちにいかせていただきました!ありがとうこざいました!けやき坂46 2期生に合格してから剣道を続けていないので動きが衰えていて…こんなにも落ちるものだと痛感しました😖これからの夏の稽古は辛いと思います…剣道をしているみなさん、本当に頑張ってください!応援しています📣剣道に限らず部活動や学校、お仕事、頑張りましょうね☺️次回のひらがな推しも春日さんとの対決の続きです!お楽しみに♪そして今週の、KEYABINGO!4は、演技力バトルでした!わたしは実際に足ツボを押してもらいました👣痛かったところと、痛くない時もありました!冷え性のツボのアキレス腱を押された時は本当に痛かったです😱でもまたいつか足ツボをしたい!次回のKEYABINGO!4も、お楽しみに♪ps サンドウィッチマンの富澤さんのお誕生日が4月30日でした💫改めて、おめでとうございます!先日の収録で、ひらがなけやきから富澤さんへの、お祝いのお誕生日アルバムのお返しにと、サンドウィッチマンさんの石鹸を頂きました!!!本当にありがとうこざいます😭話は変わりまして、けやき坂46 1stアルバム 特設サイトがホームページにオープン致しました〜👏随時更新していくので、みなさんお楽しみにしていて下さいね😉そしてなんと!!アルバムタイトルが決定致しました👏「走り出す瞬間」🏃‍♀️🏃‍♀️🏃‍♀️ストレートで、凄く好きです!また、アルバムの特典映像(Blu-ray)の内容が決定いたしました!TYPE-A☞ひらがなけやき武道館公演 Special Selection(千秋楽の公演)TYPE-B☞ひらがなけやき全国ツアー Live & Documentaryです🙌まさかライブ映像とは思いませんでした😳すごく嬉しいです😆Blu-rayなので、画質も良く最高だと思います!早く見たいです👀更に!!本日5月25日(金)24:20〜「欅坂46こちら有楽町星空放送局」では6月20日発売のけやき坂461stアルバム 「走り出す瞬間」に収録されている「期待していない自分」銀河系初オンエアします😆😆ドキドキします(ノ*´>ω<)ノみなさん、お楽しみにしていて下さい!また、けやき坂46 1stアルバム発売記念として個別握手会が開催されますが、一会場、一部ずつ追加枠が出ました!驚きました…!みなさんに感謝しかありません本当にありがとうこざいます😭皆さんとお会いする時間が増えてとっても嬉しいです!握手しにきてくださる方が、また来たいなぁ〜って、すごく楽しかった!って思っていただけるような時間にしたいです☺️本当にありがとうこざいます!宜しくお願いします🙇‍♀️〜*〜☆〜†〜☆〜†〜☆〜†〜*〜お写真コーナー↓↓↓右奥 すずか〜(富田鈴花)🧢私髪の毛ボサボサだ 笑今回はまなもん(宮田愛萌)の生誕Tシャツ着てる!すずかは最近、レッスンの時に生誕Tシャツを着ていることが多いです!すずかのノリノリスイッチが入った時が面白いです🤣この前私に口を ンパッ ってしてきました!💋あの時可愛かった!写真撮れば良かったー😭右 このちゃん!(松田好花)これはKEYABINGO!4の男装デートの時😁このかはね、本当に面白くて私のツボで…いつも笑かしてくるんです 笑このかが履いている、空気がプスプス抜けたり入れたりできるシューズ👟が凄くて!!まなもんと2人でボタンを押して遊びました🌟そうそう!この間まなもんとランチしたよ〜🍽猫耳した〜🐱まなものその口、プクゥはなんだ!可愛い😭この日は大爆笑しました!!まなもんと話していて楽しくて幸せで…あと、東京のスポットとかオススメの場所を教えてくれるので嬉しい🤩ありがとう〜!〜*〜☆〜†〜☆〜†〜☆〜†〜*〜先日のGirls Award さん、二期生から小坂菜緒が出演しました🌻すっっっごく可愛くて!!!見ているこちら側が緊張しましたウィンクされた時は心臓止まるかと…見事にハートを捕まれました💝あ、元から掴まれているのですが、更にギュギュッと!!こさなか!お疲れ様✨そして、ご出演されたみなさん、本当にお疲れ様でした🙇‍♀️左 小坂菜緒そしてなんといっても!!!Seventeenの専属モデル決定!本当にびっくり!知った時は目が思いっきり覚めました!本当に凄い!!!本当に嬉しいよ😭😭心からおめでとう🙌なおが一生懸命頑張っているから、わたしも頑張る💪明日のブログはひよたん🐤おまけ↓ホームページにて、衣装が公開されました◎また、個人アーティスト写真もアップされたので、是非ご覧になってみて下さいね٩( ᐛ )( ᐖ )۶衣装、とっても可愛い♡デニム生地で、スカートがまわるとゆらゆら広がって、ラインが素敵です✨エンブレムも青でけやき坂と入っています!カッコいい〜😸読んでいただきありがとうございました#20もう20回もブログを…時間の流れが速い…!これからも初心を忘れず、頑張ります宜しくお願いします
-------------------------------
2018/03/0520:59 みなさんこんにちは〜🐸🥕けやき坂46 2期生の 丹生明里です٩( ᐛ )و兄に借りて腹筋ローラーをしたのですが、三日間程筋肉痛が治らなくて…笑うたんびにお腹が痛かったです😅それほど鍛えられたって証拠なのかな🧐それとも今まで全然鍛えられてなかったから痛くなったのかー。もうちょっと頑張ります💪〜*〜☆〜†〜☆〜†〜☆〜†〜*〜今回のブログは前回に引き続き、二期生とのお写真を載せたいと思います✌️(6thのアーティスト写真に変わったので!)右 濱岸ひよりひよたんは甘えん坊さんです 笑 溢れ出す中3感がたまりません😁ツインテールにしてさらにきゃわいい😋(伝わりますか〜?笑)左 松田好花このかとはよく写真撮ります!このアーティスト写真撮影の時はわちゃわちゃ写真と動画を沢山撮りました😂ノリが良くて凄く楽しいです♪右 宮田愛萌可愛すぎる。髪の毛下ろしてから凄く印象変わってお姉さん感が凄くて、なんか、もう嬉しいです!!笑優しくて、頼れるのですが、少し抜けるところが好き😳右 渡邉美穂わたし的に美穂はムードメーカーさんだと思います!場を明るくしてくれて、話も上手くて面白いのです😂帰りに一緒になる埼玉三人組のバスではわちゃちゃ話してます!電話が楽しいです📞(メッセージの機能です)二期生みんなそれぞれ個性があってとっても賑やかで明るくて素敵だなぁと思います☺️💫そんな2期生9人が6枚目シングル で 歌わさせて頂きました「半分の記憶」出来上がって聞いた時は、自分達が歌ってるって分かってるけど本当に歌ってるか分からなくて…でも、この部分は誰々の声が聞こえるねっ!と話していました🌷パフォーマンスが楽しみです😁ドキドキ=͟͟͞͞٩(๑☉ᴗ☉)੭ु⁾⁾そうそう!本日の16:40〜18:00までのNHK-FM ゆうがたパラダイスに、小坂菜緒と渡邉美穂が出演します!ぜひお聞きください〜👂👂そして、特典映像の予告編が公開されました!!!今回は2期生それぞれペアを作って、相手の自己紹介ポエムを作りました!最後には夏らしいことをしてとっても楽しかったです🌟是非ご覧になってみてください👀〜*〜☆〜†〜☆〜†〜☆〜†〜*〜最近花粉症が酷いです😢メッセージでも何度も言っちゃいました 笑お友達と折角お出かけしたのにくしゃみやら目のかゆみで🤧🤧花粉症の人に良い食べ物とかあるのかな〜と思って調べてみたら、一番 れんこん が多く出てきました!炎症を抑える働き、止血作用、喉の痛みや鼻水を抑える働きのある、タンニン抗酸化作用のある色素成分の、 ポリフェノールが豊富に含まれてるそうです!!アレルギー症状の原因となる抗体の過剰摂取を抑える働きが他の野菜より多い!!れんこん 以外にもあるけど沢山食べようと思います🤤ここまで書いてきて、私は何を言いたいのかよくわからなくなって来ました 笑たまには訳のわからないブログもいいですよね〜?(無理矢理感 笑)久しぶりのツインテール👧少しだけハマってます🗣でも多分また波が過ぎ去ると思います🤨あ、海行きたい🏖でもこの時期だと寒いか〜🤧こたつ入ろ〜🌀三つ編みと、おまけのぴょこにん🐸🥕花粉症なので目が充血気味です😢明日はひよたんのブログです🐥読んでいただきありがとうございます#11  
-------------------------------
2018/11/0106:27 みなさんこんにちは٩( ᐛ )وけやき坂46 2期生 丹生明里(にぶ あかり)です🐸🥕モコモコです!パーカーの時期になりましたね〜!🌟モコモコしているので、とってもあったかいですよ!この間とっても可愛らしい帽子を見つけました!可愛くて可愛くて、動物の柄で、これは買おう!!!と思ったのですが、自分が普通の帽子が前から欲しくて買うつもりでいたことを思い出したので、普通の帽子から買おう!と思って探したら、いい感じの可愛らしい帽子を見つけたので買いましたそしたらそれだけで満足して最初にみた可愛らしい帽子はもういいや!となってしまって買いませんでした絶対に!!というか、なんだろう、強い気持ち?じゃなかったら、冷める気持ちって早いんだなぁと感じた1日でした 笑 でも今はもう欲しいものがなくなったので、次に出会った時は買ってしまうかもしれません 笑また可愛らしい帽子に出会えますように〜!!!でも最近ハマっているのは靴下です!🧦(誰得〜っていう情報ですね 笑)告知です📣10月31日発売 BUBKAさん 12月号にひらがなけやきから金村美玖、河田陽菜、丹生明里が登場しております!制服です!🌟久しぶりの制服での撮影だったのでドキドキでした!学生気分です!(高校三年生ですが…笑)みく!おろしているのが可愛かった!♡ひな!笑顔がキュートすぎて、きゅうううってなります 笑部屋着です!ツインテールになりました!3人バージョン。3人のお互いのイメージや今までの活動のことなどインタビューも掲載されております撮影地が、実は一番最初の撮影地でもあった学校だったので、とても懐かしくてなんだか不思議な気持ちになりました!!わたしはバスケットボール🏀を使った撮影をしたのですが、ボールでたくさん遊べて楽しかったです!ありがとうございました!みなさん是非お手にとってみて下さいね♪読んでいただきありがとうございました#99次で100個目のブログだ〜!ブログが始まったのは12月なので、約11ヶ月経ったのですね!と思うと早いようで短いような。1年じゃ経験できないくらいの沢山のことを経験した1年だったので、不思議な感覚ですもう1年!時の流れ早いなぁ!という気持ちと、1年しか経ってないのにこんなにも色んなことがあったんだなぁ〜という気持ちこんな感覚は初めてなので、経験できて嬉しいなぁありがとう!今回は文章の おまけ でした 笑最後まで読んでいただきありがとうございます😊  

5. 終わりに

文体的特徴を用いたアイドルブログの著者分類をしました。 結果、文書の話題に依存しない文体的特徴であっても、ある程度の精度で著者分類ができることが確認できました。

今後の課題とか

  • 文体的特徴を算出するためのパラメータ(n-gramやカットオフ数)に関して考察、検証していない。
  • 別の応用として、以下のようなタスクもうまく問題設計ができれば面白そう。
    • 「文体変化に基づくアイドルのキャラ変検出」
    • ゴーストライター検出 (本人 or 運営など)」

*1:コードがこれで良いかどうか正直不明です...

「Spotlight on Search, Google Tokyo」に参加しました

はじめに

Google Tokyoの検索チームの主催イベント「Spotlight on Search, Google Tokyo」に参加しました。 Googleはフィードバックを賢く学習していことで超進化する会社なので、忘れないうちに本イベントへの感想を書いてみました。 *1

参加イベント

所感

まず、私は多いときは月1000本以上YouTubeの動画を視聴するGoogle信者なので*3、中の人のお話が聞けて満足でした。

  • 今回は検索チームの回であったものの、全体的に発表内容がGeneralな感じだった
    • Google Tokyoチームの歴史や働き方を中心に、事例を交えつつといった感じ
    • より具体的な(より細かいテーマとか、1つのプロジェクトに注目したとか)回があると嬉しい
  • 言えないこと(アルゴリズムとか評価方法)も多そうでしたが、真摯に何か伝えようとしてくれる感じはした
  • 検索チームという括りではあるものの、めちゃめちゃ色んなプロジェクトがあるんだなーと思った。「Interactive Sessions」で色んなトピックについて話が聞けた。
    • Web Content Ecosystem Effortの「Navlekha」とか興味深い。

イベントレポート

以下イベントのメモです。「#SpotlightOnSearch」のツイートも参考にさせて頂きました。 *4

Introductions of Engineering teams in Tokyo Search by Ryoichi Imaizumi (Engineering Director at Google Tokyo)

  • Google Japanの検索チームは、今まで検索の機密性の観点などからあまりオープンではなかったが、今年からイメージを変えて今回のようなイベントを増やしていこうと検討中?
  • Google Japanについて
    • 現在、Googleの正社員数100000+, Google Japanは1300+
    • 2001年に渋谷に初めての海外拠点として、Google Japan設立
    • search, map, chrome browser, chrome os, など色々やってきた?
    • 2018年にGoogle brainチーム(research team)ができた、2019年に渋谷に拠点を移す
  • Tokyo teamの取り組みなど
    • Search quality
      • 検索の質の向上?
      • Synonyms, Spelling, Featured Snippets, Titles& Snippets
    • Mobile search
      • 2007年に開始
      • smartphone indexing, mobile ranking, Apps rankingなど
    • 日本にローカライズして何かやるということはほぼ無い、日本のニーズを基にグローバルに展開するというイメージ
    • New areas

Tech Talk: Life of a Project (Video Featured Snippet) by Tsutomu Ohkura

  • Google検索について*5
    • 約100兆ページからクエリにあった検索結果を返す
    • 各レスポンスは平均1/8秒以内で
    • 1000億リクエスト/月
    • それらの約15%は初めてみるクエリ
  • Work cycleについて
    • analysis
    • idea
    • implement
    • experiment
      • precision evaluation 40000/year
      • A/Bテスト 10000/year
    • approval
      • 社内のミニ学会みたいなのがあって、フィードバックがある
    • launch
  • Video Featured Snippetsの例
    • 理想の質問応答を目指して、動画理解とつなげる
    • Timeline
      • 2016/4 簡単なデモ作成, 評価方法を決める
      • 2016/7 動画解析のパイプライン, 検索システムの中に動画の解析結果?
      • 2016/9 動画の責任者とUX, UI評価、実装、評価方法の改良
      • 2017/1 セキュリティ、バグ、遅延の検証や調整
      • 2017/4 Launch

Answers to FAQs

  • Q. What do you like most working at Google?
    • 人それぞれだけど、
      • 今までにない課題解決ができるという立場にあること/解決した課題のimpactが大きい/挑戦しやすい
      • 周りが賢いのでストレスが少ない, など
  • Q. How much autonomy do you have in development?
    • 裁量はかなりある。各々のエンジニアを信じているというスタンス。
  • Q. What's the relationships with engineer in other offices?
    • 対等。プロジェクトによって色々変わる。
  • Q. Do you visit HQ?
    • 人それぞれ。5,6回/年ぐらい?
  • Q. What are the background of engineering in the search team?
    • IR(Information Retrieval), NLPが多いけど、最近色々増えてきた?
  • Q. Are you working on localization?
    • Internationalizationのほうがある
    • 日本にフォーカスするのはレア
    • 日本だけの機能をやっている人はいない
  • Q. How do you set the missions and goals?
    • 正しい問題をみつけることが大事
    • MethodとしてOKRは使ったり、使わなかったり、チームによる...
    • Bottom upのカルチャーを大事にしている
  • Q. What do you think is important for engineering?
    • コーティングやフルスタックなのはスタートライン
    • 答えが分からない問題へ取り組めて、分析してロジカルに思考して解決するのか、そのために手を動かせるかが大切らしい
    • Googleで成功している人は
      • 問題を解きながらコアの問題を探しているひと
      • 視野が広くて、気づいてすぐに言える人
  • Q. Does my programming contest skill matter?
    • 重要だけど、支配項でない
  • Q. Any tips to help people more productive?
    • (私達も知りたいと...)
    • motivationが大切、本人がやりたいかどうかが大事な気がする、その人が何をすると楽しいか? その嗜好をパズルゲーム的に組み合わせる
    • 自由を与えると素晴らしい成果をだす?
  • Q. What are the examples of 20% time?
    • そもそも勤務時間把握してないから20%とは限らない。プロジェクトに近いことから、本当に関係ないことまで
    • Google homeのラジオを聴く機能を足した
    • 社内の他のチームを助けるとかもある
      • 例, 秘書さんがよく使うカレンダーのプラグインを直してとても感謝されてるとか
    • ダイバーシティ問題への取り組みとかも

Interactive Sessions with Tech Leads / Engineers

※ 「Interactive Sessions」では議論を活発にするために3つに分ける。それぞれ20分ぐらい。
※ 以下はインタラクティブセッションで忙しかったので、自分の気になるところだけメモ

Search Quality: Featured Snippets, Titles & Snippets, Video Ranking

  • Topics
    • Featured snippet
    • Result preview, Snippet detection
      • サイト内の構造とか表示するやつとか
    • Video Understanding in search
      • Q. Video UnderstandingのTokyoにチームがある? 世界にも複数あってその1つ?
        • Video Understandingに関しては、画像検索等の研究チームがあって、そういうところが論文を書くのが多い。検索に絡ませる側はあまりない。(Tokyoチームともう1つぐらい?)

Search Feature: Google Search App on iOS (Photo Search, webview, etc.) and Web Ecosystem

  • Topics
    • Google Search App on iOS
      • 日本風の検索から着想?
    • Web lite
      • Webサイトを圧縮して、Userのアクセスを早くしよう、軽くしようという取り組み
      • 法律で禁止されている国もある。なので、この機能は、ユーザや管理者がコントロールできるようになっている。
    • Web content ecosystem effort
      • Web自体を良くしたい
      • 「Navlekha」というプロジェクト
        • インドだとWeb contents自体が少ないので、書物など物理のコンテンツとかをWebへupし、コンテンツ量を増やす
        • Navlekha

Assistant: Language Understanding, Core Features

  • Topics
    • Google Assistant
    • 東京はどんなことしてる?
      • Language understanding, internationalization
      • 個々の機能, assistant features
      • Assistant for japan

Closing & Networking

大きな食堂でご飯を食べながら、他の参加者、社員さんとお話

お土産

f:id:myaun:20190224211356j:plain

*1:資料等は公開されていないので私的なメモベースのレポートなので、内容のズレとかあるかもですが勘弁

*2:2019/03/01にEnglish verが開催される予定

*3:年越し前に自分のYouTubeの視聴履歴を解析したよ【Python】

*4:写真や動画はダメ!メモはOK!なので、テキストのみ。各セッション名前はイベントページのものです。当日は微妙に違ったかも

*5:数値とか間違ってるかも