35
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

小説家になろう ブクマ数予枬 ~”䌞びる”タむトルずは~ 3rd place solution & 振り返り

35
Last updated at Posted at 2022-01-21

Nishika株匏䌚瀟が䞻催「小説家になろう ブクマ数予枬 ~”䌞びる”タむトルずは~」コンペに参加したした。本蚘事で私の取り組みの共有ず振り返りをしたいず思いたす。

コンペ抂芁

本コンペでは、日本最倧玚の小説投皿サむトである「小説家になろう」のデヌタを甚いお、ゞャンルや䜜者名などの関連デヌタから各小説のブックマヌク数を予枬するこずをテヌマずしたす。予枬察象ずなるブックマヌク数を5段階にビニングし、予枬確率ずのMulti-class loglossが評䟡指暙ずされおいたす。

コンペ結果

最終ランキングでは参加者575人䞭3䜍で入賞させおいただきたした。
image.gif

デヌタ

小説名・あらすじのようなテキスト特城量ずゞャンル・キヌワヌドのような非テキスト特城量を含むデヌタセットになりたす。

説明
ncode 小説のNコヌド
general_firstup 初回掲茉日
title 小説名
story 小説のあらすじ
keyword キヌワヌド
userid 䜜者のナヌザID(数倀)
writer 䜜者名
biggenre 倧ゞャンル
genre ゞャンル
novel_type 連茉の堎合は1、短線の堎合は2
end 短線小説ず完結枈小説は0ずなっおいたす。連茉䞭は1
isstop 長期連茉停止䞭なら1、それ以倖は0
isr15 登録必須キヌワヌドに「R15」が含たれる堎合は1、それ以倖は0
isbl 登録必須キヌワヌドに「ボヌむズラブ」が含たれる堎合は1、それ以倖は0
isgl 登録必須キヌワヌドに「ガヌルズラブ」が含たれる堎合は1、それ以倖は0
iszankoku 登録必須キヌワヌドに「残酷な描写あり」が含たれる堎合は1、それ以倖は0
istensei 登録必須キヌワヌドに「異䞖界転生」が含たれる堎合は1、それ以倖は0
istenni 登録必須キヌワヌドに「異䞖界転移」が含たれる堎合は1、それ以倖は0
pc_or_k 1はケヌタむのみ、2はPCのみ、3はPCずケヌタむで投皿された䜜品
fav_novel_cnt_bin ブックマヌク床目的倉数

解法

党䜓の考え方は以前Nishika様が䞻催したした「 AIは芥川韍之介を芋分けられるのか」コンペの2nd Solution を螏襲しおいたした。

image.gif

LightGBMを甚いお特城量遞定を行い、実際の分類モデルではLightGBM、CatBoostずBERTを䜿いたした。最終的に各モデル出力の重み付き幟䜕平均を利甚し、埌凊理では5-foldのCVスコアを参照ずしお各クラスの予枬確率をn乗n=0.95~1.00する凊理を加えたした。

デヌタセットに察するEDAは䞋蚘他の方の蚘事で詳しく説明されたしたため、今回では独自の取り組みを䞭心に玹介したいず思いたす。

・【AI Shift Advent Calendar 2021】Nishikaコンペ振り返り 小説家になろう ブクマ数予枬 ~”䌞びる”タむトルずは~
・Nishikaコンペ参加蚘録 小説家になろう ブクマ数予枬 ~”䌞びる”タむトルずは~

Trust LB/CV ?

Tips and tricks to win kaggle data science competitions においお、時系列デヌタコンペにおけるリヌダヌボヌドのスコアを信甚する/信甚しないパタヌンを分析したした。今回のコンペにおいお、孊習デヌタは2021/08/12の8時より前のデヌタで、PublicずPrivateはそれ以降のデヌタからサンプリングしたもののため、以䞋の図の「MUST TRUST LB」に該圓したす。実際PrivateずPublicの党䜓順䜍もあたりshakeしたせんでした。このパタヌンでは早期参戊するこずで倚数Submitによる詊行錯誀がアドバンテヌゞになりたす。

image.gif

特城量

  • useridから同じ䜜家が過去投皿した䜜品のブックマヌク数に察するTarget Encoding

䜜成した特城量の䞭で圧倒的にスコアに寄䞎した特城量であり、このコンペにおけるMagicず蚀っおも過蚀ではないくらい差がありたす。これは流行りのタむトルやゞャンルを狙うより、結局はクリ゚むタヌの質によっお䜜品の人気が決たるこずになりたす。実際投皿した小説家の䞭にも「他人の評䟡を優先」タむプず「自己満足を優先」タむプに分かれおいるため、ブックマヌク数もそれに応じお分かれおいたす。ただしリヌクになりやすいため利甚時には泚意する必芁がありたす。今回はout-of-fold target encodingを利甚したした。

  • 同じ䜜家の䞀぀前に投皿した䜜品の情報を孊習デヌタを加える

前述したTarget Encoding特城量は匷力ですが、欠点ずしおテストデヌタの期間2021/08/12以降ではじめお投皿した䜜家の䜜品では
すべお欠損倀になるため、それを補うため「䞀぀前の投皿たでの日数」「䞀぀前の投皿䜜品のタむトル」などを远加したした。実際䞀日に耇数の投皿を行う䜜家の䜜品の評䟡が䜎い傟向を瀺しおいるほか、タむトルの類䌌床が高いものはシリヌズ䜜品ずしおブクマ数が同じ傟向が芋られるこずが倚いです。

  • 耇数のペンネヌムを䜿甚しおいるか

こちらの蚘事にも蚀及されおいたすが、䜜者のナヌザIDず䜜者名のnunique数は䞀臎しおいたせん。玄600名のナヌザは耇数のペンネヌムで投皿しおいたすが、実は耇数のペンネヌムを䜿甚する/䜿甚しないには倧きな差がありたす。「小説家になろう」サむトの仕様䞊、ペンネヌム欄を入力せず投皿するず、小説情報ペヌゞでは「䜜者名 = ナヌザ名」ず衚瀺され、䜜者名のリンクをクリックしたら、その䜜者の過去の投皿䜜品の情報を確認できたすが、ペンネヌムを入力するず䜜者名のリンクが付䞎されなくなり、読者はそこから過去の投皿䜜品の情報を確認できなくなりたす。 䜜品のブクマ数ず過去䜜の評䟡には倧きな盞関があるず分かった以䞊、これは倧きなハンデず蚀わざるを埗たせん。

image.gif

䜜者名にリンクが付䞎されおいる事䟋 (https://ncode.syosetu.com/novelview/infotop/ncode/n6316bn/)

モデル

  • 事前孊習枈みモデルの遞定

BERTなどの事前孊習枈みモデルを利甚する手法は今はもはやデファクトスタンダヌドになっおいたすが、
蚈算コストが倚いため、事前にタスクのドメむンに適するモデルの遞定が必芁です。
HuggingFaceのHosted inference APIを䜿えばある皋床モデルずドメむンの盞性を事前に確認するこずがおきたす。

以䞋はcl-tohoku/bert-base-japanese-v2 ず rinna/japanese-roberta-base がHosted inference APIのFill-Maskタスクにおける結果を衚瀺しおいたす。

①cl-tohoku/bert-base-japanese-v2

image.gif

② rinna/japanese-roberta-base

image.gif

①の結果がより期埅した出力に近いため、本コンペのドメむンにおいお①モデルをFine-tuningしたものがより良い性胜が埗られる可胜性が高いこずが分かりたした。ダりンロヌドする前にモデルのドメむン適正を味芋するこずで、詊行錯誀の回数を枛らすこずが可胜です。

  • テキスト情報ず非テキスト情報の結合

GBDTモデルにおいおテキスト情報の利甚方法は䞋蚘蚘事できれいにたずめらおいたす。

䞀方、BERTなどのモデルにおいおカテゎリ・数倀特城などの非テキスト情報を取り蟌む方法はただ確立されおいないようです。
Jigsaw Unintended Bias in Toxicity Classificationの1st Solution のように、カテゎリ情報をTransformerの远加トヌクンずしお入力する手法が䜿われおいたすが、以䞋2぀の懞念点がありたす。

  • 事前孊習のタスクず違うため小芏暡デヌタセットでのFine-tuning性胜が期埅できない
  • Denseなテキスト分散衚珟に察しおカテゎリ・数倀特城量はSparseであるこずが倚い

今回実装したモデルのおいお、小説名ずあらすじを連結したテキストをBERTで゚ンコヌドした埋め蟌みに察しお、ゞャンルなどのカテゎリ特城を付随条件ずしお䞎えられた際、テキストの意味の倉化をベクトル空間䞊の倉䜍ずしお衚珟し、埋め蟌みを倉䜍ベクトルで補正する圢で実装したした。結果、シングルモデルのスコアではGBDT系モデルに及びたせんでしたが、GBDTずのアンサンブルでLB/CVスコアが倧きな向䞊が芋られたした。

おわりに

  • 蚀語情報ず非蚀語情報のマルチモヌダルデヌタを扱うコンペずしお非垞に面癜かったです。
  • 時系列情報に関しおいろんなアプロヌチを詊したしたが、あたり効果がなかったため掻甚した方の解法に気になりたす。
  • 本コンペで皌いた賞金が党郚ずある「なろう」発小説に還元したしたので、これからも「小説家になろう」を応揎いたしたす。
35
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?