「夫子憮然曰、鳥獣不可與同羣。吾非斯人之徒與、而誰與。
「論語」微子、第十八、六

2013/02/26

いかに記事を推薦するか、その5(その他の問題)

記事の推薦サーヴィスをめぐる問題の最終回。 こういうものを作ろうと思った時点では思い付きもしなかったが、 実は難問だったことから二つほど。

Mynd Daily に登録して下さっている方の手元に毎朝届く推薦記事それぞれの横には、 画像がついている。この画像はどうやって選んでいるのか。 記事の本体から抜き出してくるんでしょ、と思われたかも知れないが、 そして、まさにその通りなのだが、 大抵の場合、その記事について説明した本当の画像の他に、 広告画像や、そのサイトのバナーや、関係のない画像も付随している。 この中から、記事に相応しい画像を自動的に抜き出さなければならないのである。 これが簡単に見えて、難しい。 実際、この画像抽出だけをサーヴィスにしている会社があるくらい難しい。

画像の埋め込まれ方は、サイトによって様々で、 人間ならぱっと見て「これだよ」と分かるのだが、 それは人間が記事の内容を理解していて、 かつ、写真を目で見ることができるからだ。 その知性と感覚をどうやって機械に持たせるか。 弊社の優秀なプログラマたちが何とか、 かなり高い確率で正しい画像を当てられるアルゴリズムを開発し、 これは他の類似の記事推薦サーヴィスで使われているものよりずっと優れていると、 我々は自負している。 しかし、おそらくあなたは、 たまに記事の横に変な画像が出ているのを見つけては、 「でいりーたん、だめじゃん」と思うかも知れない。 しかし、 このように簡単に見える技術が実は難問だったりするのだ、 ということは知ってもらいたい。

また別の問題として、「類似記事の検出」がある。 これも事前には全く思いつかなかったし、 気付いてからもしばらくは、簡単な問題だと思っていた。 Mynd Daily は、一日分の推薦記事候補を集めた上で、 そこからあなたが興味を持つだろう記事を推薦しているのだが、 インタネットには良く似た記事があふれている。 元の記事をそのまま引用しただけの記事、 引用して一言だけ足した記事、 同じ内容だが一応は書き直してある記事、 あたりまでは「ほぼ同じ」記事と言ってしまっていいだろう。 こういう記事が推薦記事セットの中にいくつもあると、 読者は当然ながら不快に思う。 しかし、推薦であるが故に、ある記事があなた向きだと判断されれば、 その類似記事もあなた向きだと判断されて、こういうダブりが集中してしまう。

これを解決するには、 類似記事であることを自動的に検出しなければならない。 これも人間が見れば明らかなのだが、 機械にその知性を持たせるのは難しい。 ちょっと分かっている人は「ははん、あれを計算すればいいじゃん」 と思ったかも知れないが、それは第一歩に過ぎない。 この問題はやればやるほど、じわじわ難しさが分かってくるタイプの問題で、 正直に言うと、我々も未だに模索中である。 だから、推薦記事の中に重複にしか見えない記事を見つけても、 しばらくは温かく見守ってほしい。

似ている記事をちゃんと見つける精度の問題の他に、 大量の記事を分類する計算量の問題もある。 今のところは記事数が少ないので、事前に総クロス計算することが可能だが、 いずれは、計算タイミングとハッシングを最適化する、つまり、 必要になったその場その場で必要なだけ計算し、 計算したものは記憶しておくような工夫をするとか、 あるいは、類似度計算そのものを高速化しなければならないだろう。 このあたりも今後の課題である。と言うより、課題になるくらいのスケールになりたい。

他にもまだまだ、いくらでも問題がありますが、 長い上に、専門的な内容が続くと読者がいなくなるので、 とりあえずこのあたりで止めておきます。 Mynd Daily は、今のところメイル配信だけですが、 既に社内では「ドッグフード」状態で web 版が動いています。 さらに、面白い機能を追加したものも実験中です。 だんだんと公開版に反映されていくはずですので、お楽しみに。 登録するなら、今ですよ。