Yahoo!知恵袋は、さまざまなテーマについて質問・相談したり、自分の知識や知恵を生かして回答したりできるQ&Aサービスです。2004年にベータ版がリリースされてから現在までに、およそ2億件の質問が投稿され、回答総数は約5億件となっています。
これらの膨大な件数の質問に、できるだけ多くの人に答えてもらいたいという思いから、2018年にYahoo!知恵袋アプリでプッシュ通知するタイトルを改善。ユーザーが投稿した質問文から、通知用のタイトルに適切な文を自動的に抽出する仕組みを導入しました。
今回は、この改善の担当者に、自動生成の仕組みや改善結果、今後の展望などを聞きました。
- Yahoo!知恵袋アプリのプッシュ通知用のタイトルにはどのような課題があったのでしょうか?
小林:
Yahoo!知恵袋では、ユーザーは質問文のみを投稿するため、各質問の冒頭部分がそのまま質問のタイトルとして表示されます。
Yahoo!知恵袋アプリのプッシュ通知も、投稿された質問文の先頭から20文字を切り出して送っていました。そのため、たとえば「はじめまして、よろしくお願いします」「初めて投稿します。大学2年生です」などの冒頭の文章がそのままプッシュ通知に表示され質問の内容が伝わりにくい、という課題がありました。
要約に関しては幅広く研究されていますが、ニュース記事のような、ある程度書式が統一されている文章に関するものが多く、Yahoo!知恵袋のようにユーザーが自由に記述できる文章に対して要約技術を適用したものは少ないのが現状です。ですが、自動生成の仕組みを使って通知される内容を改善することで、通知の開封率や質問への回答率が上がるのではないかと考えました。
研究をはじめた当初は、プッシュ通知用の要約文を質問文をもとに新たに生成していたのですが、この方法だと文法に誤りがあるなど、適切な要約になりにくい、という課題がありました。
そのため、質問文から要点と思われる箇所の冒頭20文字分を切り出し、前後に「…」をつけて文の途中だと明示的にわかるようにすれば、もとの質問文を加工していないので本文の内容と大きく違うタイトルにはならないのではと考えました。
日暮:
まず、プッシュ用のタイトル候補から一番適切なものを選ぶためのルールづくりを行いました。
具体的には、約1万件の質問の本文から1質問につき6文くらいずつ候補を決め、Yahoo!クラウドソーシングを利用して、もっとも質問文の内容を類推できる文章はどれかを選んでもらいました。
以下がYahoo!クラウドソーシングで出題した例です。
選んでもらう際には、以下のような文が含まれない文を選択してもらうよう事前に伝えておきました。
1. あいさつ文
「はじめまして。」「こんにちは。」「お願いします。」などの文
2. 自己紹介文
「高校生です。」「30歳主婦です。」「初心者です。」などの文
3. 定型文、または具体的な内容がない文
「相談です。」「助けて。」「教えてください。」「?についての質問です。」などの文
より多く選ばれた文に「タイトルらしさ」のスコアを付与して教師データ(※)とし、それらを使った機械学習で質問の中の文を重みづけして、スコアが高いと判断された文をプッシュ通知のタイトルとして表示する仕組みができました。
※教師データ:
機械学習の「教師あり学習」のための実験用データ。「教師あり学習」とは事前に与えられた「入力データ」と「正解データ」がセットになったデータをもとに、コンピュータが正解データを学習する手法のこと。
村尾:
今回の研究では、「『はじめまして』から始まる文は、候補として選ばずに必ず削除する」など、あらかじめ決まったルールに沿って選ぶ方法も検討しました。ですが、たとえば「『はじめまして』を英語で言うと何ですか?」という質問では「はじめまして」を削除してはいけない、といった例外ルールも網羅しようとすると、条件文が複雑かつ膨大な数になり、大規模なシステムになってしまうという課題がありました。
そのため、たとえば「私は東京に住んでいる女性です。」という文であれば「東京」「女性」などの単語単位で切りスコアリングした点数で判断するという、できるだけ共通のルールにしました。
- 今回の改善は、どのくらいの効果があったのでしょうか?
日暮:
Yahoo!知恵袋アプリでプッシュ通知された質問の回答率は、改善前の2.4倍になりました。
現在は、ユーザーがYahoo!知恵袋に投稿すると、プッシュ通知用のタイトルが自動で生成されるようになっています。
小林:
なるべく全自動で生成する仕組みにした方が他のサービスにも横展開しやすいので、Yahoo!知恵袋独自のルールは増やさないようにしています。今後は教師データを追加したり、計算式など機械学習のモデルを変えたりして、さらに精度を上げていきたいです。
日暮:
たとえば、Yahoo!知恵袋には質問に回答するともらえる「知恵コイン」を集めている人をひきつけるために、質問の冒頭を「コイン500枚あげます」などとするユーザーもいます。この冒頭文は、クラウドソーシングの結果としては選ばれにくいですが、サービスやユーザーにとっては有益なタイトルかもしれません。
今はクラウドソーシングでの調査結果をもとに自動生成していますが、今後はサービス側の意図や、ユーザーの「(質問のタイトルを)こう使いたい」という要望も確認しながら改善していく必要があると思います。
小林:
機械学習によって自動生成されたタイトルは、もしかしたら質問者の意図を100%反映したものではないかもしれませんが、今回は「まだこの質問に回答がないので回答してほしい」ということを伝える目的でプッシュ通知を改善しました。
自動生成されたタイトルが質問者の意図とは少し違ってしまったとしても、プッシュしてもらって質問への回答を得られた方が質問者にとってメリットがあると考えています。
- 自動生成の仕組みを使って今後実現したいことを教えてください
村尾:
たとえば、ユーザーがYahoo!知恵袋に質問を投稿するときに、「この質問を要約したタイトルとしてこの文が適切ですか?」とシステムが提案して、「そうです」または「違います」とフィードバックされたものをシステムに反映することで、さらに改善していけるのではと考えています。
また、今はプッシュ通知のみでこの仕組みを使っていますが、今後はYahoo!知恵袋のランキングなどでも使うことで、サービスがよりよくなるのでは、という話をしています。
日暮:
今回の自動生成の仕組みはYahoo!知恵袋のためにつくったものですが、要約ワーキンググループとして、他のサービスでも要約をしたいという課題があったときに、適切な手法の提案や、個別にいろいろなアプローチができるようにしていきたいと思います。
【関連リンク】
- Yahoo!知恵袋アプリ
- ランク学習によるYahoo!知恵袋の見出し生成(Yahoo! JAPAN研究所)
- 知恵を共有する「Yahoo!知恵袋」今後の展開は?(コーポレートブログ)