はてなブックマークに導入されたYahoo! JAPANの「建設的コメント順位付けモデルAPI」に関する論文を読んで中身を妄想してみました

f:id:karaage:20210724134601p:plain:w640

はてなブックマークに導入されたYahoo! JAPANのAPI

 治安の悪いはてなブックマークにYahoo! JAPANのAPIが導入されたようです。

 これで、はてなブックマークの治安が良くなってくれたら嬉しいですね。また、これに関連して、THE GUILDの深津さんから以下のようなコメントががが。

 自分も全く自信ないですが、面白そうなので読んでみることにしました。

 なにせ、はてなさんはこのブログでお世話になっていますし、ヤフーさんにも勉強会を主催したとき会場でお世話になっていますからね。

「建設的コメント順位付けモデルAPI」に関して調べてみて分かったこと

 最初に断っておくと、私はAI初学者向けの書籍を書いていますが、自然言語処理の専門家ではなく、自然言語のデータ分析の実務経験はないので、この分野に関しては素人です(文字通りに受け取ってください)。

 あくまで、ここで書くことは論文やネットの記事から考えた、私の仮説・妄想であり、正確ではない可能性があることをご了承ください。

 その前提の上で、結論から書くとYahoo! JAPANの提供している「建設的コメント順位付けモデルAPI」は以下2つのモデルのスコアを合計したものではないかと思っています。

モデル 学習データ
ディープラーニングモデル(Transformer) Yahoo知恵袋・Yahoo!ニュース
線形rankSVMモデル + TF特徴量 建設的ニュースコメントの順位付けのためのデータセット

 主に参考にした論文・ネット記事は以下4つです。

Yahoo!ニュースの「不適切コメント対策」最前線――自然言語処理研究者に聞く、スパコンによる機械学習導入後の変化とは?

Yahoo!ニュースにおける建設的コメント順位付けモデルの導入(PDF)

建設的ニュースコメントの順位付けのためのデータセット構築(PDF)

研究会 - 社内コンペティションによるYahoo!ニュースのコメントランキングの改善

 ちなみに「社内コンペティションによるYahoo!ニュースのコメントランキングの改善」論文は有料だったので、わざわざ登録して1650円払って買いました(笑)買うのは、結構ちゅうちょしましたが、多少理解が進んだので買って良かったです。

 ここから、2つのモデルに関してそれぞれ少し詳しく解説をしていきます。

ディープラーニングモデル

 ディープラーニングモデルの詳細に関しては、1つ目の「Yahoo!ニュースの「不適切コメント対策」最前線」というネット記事に詳しく書かれています。最先端の「BERT」(Transformer)という巨大なモデルを使って、記事とコメントがどれだけ関連あるかという指標でコメントをチェックしているようです。教師データとして、Yahoo知恵袋の質問と回答を学習させてから、Yahoo!ニュースの記事とコメントを使って転移学習(orファインチューニング)をしているようです。この学習の発想凄いですね。

 AI使ったコメントのチェックの仕組みを、想像を交えて簡単に説明すると、BERTを使うと文章から768次元の特徴量を抽出することができます。768次元の特徴量といってもピンと来ないかもしれませんが、要はベクトルで方向を示しているとイメージしてください。記事とコメントをベクトルという1つの指標で表すことができれば、記事とコメントのベクトルが近いかを、例えばコサイン類似度という指標で評価することができます。

線形rankSVMモデル

 線形rankSVMモデルは、「Yahoo!ニュースにおける建設的コメント順位付けモデルの導入」という論文に書かれているものです。「社内コンペティションによるYahoo!ニュースのコメントランキングの改善」という論文によると、社内コンペでアルゴリズム改善する試みをして結果も出ているので、現時点では変わっている可能性もあります。ただ、どちらにせよディープラーニングではない、小さ目の機械学習モデルとなります。

 ちなみにrankSVMというのはSVM(サポートベクターマシン)の一種ですね。SVMに関しては、以前ブログ記事書いているので、こちらを参照ください。特徴量の抽出はAIは使わず、TF(Term Frequency)という非常にシンプルな特徴量を使っています。手動で設計した特徴量をSVMで処理するという方式は、機械学習分野ではよく使われる手法です。

 rankSVMの学習に使うデータは、ディープラーニングの学習に使っているデータとは異なる独自のデータセットです。これに関しては「建設的ニュースコメントの順位付けのためのデータセット構築」という論文に詳しく書かれていますが、クラウドソーシングで、Yahoo!ニュースのコメントに対して、いくつかの条件(この条件が建設的と定義されている)をもとに10段階でスコアをつけたもののようです。

2つのモデルが使われている根拠

 最初、私がニュース記事や「Yahoo!ニュースにおける建設的コメント順位付けモデルの導入」の論文を読んだときは、rankSVMのモデルのみが「建設的コメント順位付けモデルAPI」で提供されるのかなと思ったのですが、それだと深層学習(AI)を使ったという表現と矛盾するので、何が正しいか分からず混乱していました。

 ただ「Yahoo!ニュースにおける建設的コメント順位付けモデルの導入」論文をよく読むと、下記のように2つのモデルを組み合わせているという表現がありました。

現行モデルは,コメントの誹謗中傷などに関する予測値を総合して計算されたスコアで順位付けを行うモデルである.この現行モデルのスコアに建設的度合いを追加したモデルを建設的順モデルと呼び,比較を行う.

 Yahoo! JAPANのプレスリリースの表現と少し矛盾するような気もするのですが、他のYahoo! JAPANのネット記事も含め総合的に判断すると「建設的コメント順位付けモデルAPI」は「ディープラーニングモデル」と「線形rankSVMモデル」を組み合わせて実現している可能性が高いと思っています。ちなみに複数のモデルを組み合わせて性能を上げる手法は、アンサンブル学習と呼ばれ、機械学習の分野ではよく使われるテクニックです。

はてなブックマークでのYahoo! APIの使用効果

 はてなブックマークでは、早くも「顔文字で文字数を稼ぐと、消されない!」というまことしやかな噂が広がっています。この顔文字可愛いですね(笑)

人気コメント算出アルゴリズムの一部にYahoo! JAPANの「建設的コメント順位付けモデルAPI」を導入しました - はてなブックマーク開発ブログ

スターくださいʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʔ•̫͡•ʕ•̫͡•ʔ•̫͡•ʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʔ•̫͡•ʕ•̫͡•ʔ•̫͡•ʔʕ•̫͡•ʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʔ•̫͡•ʕ•̫͡•ʔ•̫͡•ʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʔ•̫͡•ʕ

2021/07/19 16:20

 文字数とスコアの関係は、私の仮説が正しいとしても、2つのモデルのスコアがどのような割合で採用されるのかも、教師データに関しても分からないのでなんとも言えません。論文を読むと、コメントが長いほどよいスコアが出る傾向があるモデルになっているのは事実のようです。

 そうだとしても、意味のない顔文字で文字数稼いでスコアが良くなる理由はちょっと分からないです。論文読んでも、文字数だけ稼ぐと、ペナルティが課せられるようですし。ここからは完全に想像ですが、論文にかかれているモデル以外にも、ルールベースでスコアを調整するモデルがあるのかもしれません。その中に、例えば文字数が極端に少ないとスコアが低くなる調整がされている可能性はあります。

 さらに気になるのは、Yahoo!のAPIのモデルは、継続的にデータを追加してモデルの学習をしなおしているようなのですが、そのとき学習されるデータに、はてなブックマークのコメントが使われるかどうかですね。

 はてなブックマークのデータがフィードバックされないと、はてなブックマーク独自の、謎のハックコメントがいつまでも対策されずに残って、よりコメントが見づらくなってしまいそうです。ここについては、推測になりますが、はてなブックマークのコメントはYahoo!にフィードバックされるのではないかなと思っています。

 そう考える根拠は、このAPIが無償で提供されている点にあります(YahooのAPI導入を検討している企業向けの説明ページに「無償でご利用いただけます」と記載されています)。普通に考えるとYahoo!がAPIを提供するメリットが何もないのですが、恐らくAPI使用する代わりに、そのデータを提供するという契約があるのではないかと思います。AI時代だと、データが価値をもちますからね。Google検索が無料なのと似た構図です。

 はてなブックマーク、意図していない拡散したりするのと、コメントも「良くないな」と感じるものが多くなったので、最近はあまり使わないようになってしまいました。このYahooのAPI導入で、何かしら改善してくれたら嬉しいです。ただ、AIって人間のように文章を理解しているわけではない(と自分は思っている)のでなかなか難しいかなとは思います。

 公開されている情報を元に、色々コメントを試せばハックすること自体は可能だと思います。頑張ればYahoo! APIで高いスコアを獲得するコメントをAIで自動生成とかもできるとは思います。もちろん、やり方は書きませんし、私はやりませんが。

まとめ

 はてなブックマークに導入されたYahoo! JAPANの「建設的コメント順位付けモデルAPI」に関して、論文やネット記事を手がかりにあれこれ妄想してみました。自分の妄想が正しければ、最先端の巨大なAIを駆使した相当複雑なモデルのようです。1日10万を超えるコメントをこのモデルを使ってさばくYahoo!JAPANのエンジニアリング力には心から感服します。ただ、それでも日本語の文章の判定はまだまだ難しいようですね。この難しさは、私も以前AI使って小説書いたことあるので凄くよく分かります。

 この記事では、専門家ではない個人で趣味として論文を読んで自分なりに考えてみました。こういう試みは、なかなか楽しいのでオススメです。以前そんなことをブログにも書いています。どれだけこの考察が正しいかは別として、色々新しいことも知れたので個人的には楽しかったし満足しています。かなり大変でしたが。

 AIのニュースを理解したり、自分で仕組みを想像してみるための基礎知識をつけるためには、拙作「AI自作教室」がおすすめです!(宣伝です)。自然言語処理も丸々1章使って解説しています。この記事で出てきた「転移学習」「BERT」なども出てきますし、AIを使った文章生成にも手軽にチャレンジできます。興味を持った方は是非!

参考リンク

ヤフーにおける自然言語処理モデルBERTの利用 - Yahoo! JAPAN Tech Blog

関連記事