Published on Mar 3, 2021
DEIM 2021 第13回データ工学と情報マネジメントに関するフォーラム(第19回日本データベース学会年次大会)[I25] SNS④ No.5 DEIM注目研究賞,DEIM学生プレゼンテーション賞
Twitterユーザに対するゼロショットタグ付け筑波⼤学新⽥洸平,加藤誠2021年03⽉02⽇DEIM 2021 [I25] SNS④
View Slide
ユーザの性質が分かることで有益な判断が容易になるより具体的でより多くの性質を明らかにすることが重要背景 2• SNSにおいてユーザの特徴を明らかにすることは重要深層学習に関する情報をよく発信するユーザの性質からそのユーザが発信する情報の傾向がわかる情報源として有効か否かの判断が容易イベントに参加するユーザの性質からイベント⾃体の性質がわかる興味と合致するか否かの判断が容易GPT-3…BERT… Go⾔語勉強会初⼼者 60%中級者 35%上級者 5%
• ユーザの属性に基づく分類‒ クラスがあらかじめ決められているような問題設定[1,2]関連研究 3SNSユーザ⺠主党 共和党30歳未満30歳以上政党年齢あらかじめ与えるクラスラベル学習テストデータ予測 機械学習モデル学習データSNSユーザ予測結果⺠主党 30歳未満ユーザにクラスラベルを付与• ユーザに対するタグ付け‒ クラスが明⽰的に決められていないような問題設定[3,4,5]「Go⾔語の初⼼者」Go⾔語 初⼼者作成SNSユーザ共通点を持つユーザ集合リスト※1タグ付けシステムリスト名タグ付け※1:リストとはTwitterの機能.ユーザをまとめることで情報を閲覧しやすくする機能.Facebookであればグループ.[3] Sharma et al., Inferring who-is-who in the Twitter social network. SIGCOMM 2012.[4] Yamaguchi et al., Tag-based User Topic Discovery Using Twitter Lists. ASONAM 2011.[5] Kim et al., Analysis of Twitter Lists as a Potential Source for Discovering LatentCharacteristics of Users. CHI 2010.[1] Rao et al., Classifying Latent User Attributes in Twitter. CIKM 2010.[2] Marco et al., A Machine Learning Approach to Twitter User Classification. ICWSM 2011.ユーザの特徴としてツイートなどを利⽤
既存⼿法の限界 4多くのクラスに分類したい場合,あらかじめ⼤量のクラスを決めることは困難データセットに含まれていないユーザが多く存在するタグの表現はデータセットに含まれている表現に限定されるクラスを明⽰的に決めない「ユーザに対するタグ付け」データセットに含まれないユーザにもタグ付けしたいデータセットに含まれないような表現もタグ付けしたい属性に基づくユーザ分類の課題ユーザに対するタグ付けの課題1ユーザに対するタグ付けの課題2課題への対応課題への対応課題への対応
SNSユーザに対してタグ付けを⾏う研究⽬的 5ユーザが含まれるリスト名と同じタグでユーザをタグ付けリストに含まれていないユーザに対してタグ付け学習データに存在しない具体的な表現をタグ付け具体的な⽬的リスザルが好きGo⾔語の初⼼者Rust⾔語の初⼼者リスザルが好きGo⾔語の初⼼者ユーザ集合 U リスト集合 L タグ集合 Tu1u2u3t1t2t4l1l2ロック l3 ロック t3これらの⽬的を満たす⼿法を提案する
具体的な研究⽬的 1/3 6リスザルが好きGo⾔語の初⼼者リスザルが好きGo⾔語の初⼼者ロックユーザ集合 U リスト集合 L タグ集合 Tu1u2u3t1t2l1l2l3ユーザが含まれるリスト名と同じタグでユーザをタグ付けリストに含まれていないユーザに対してタグ付け学習データに存在しない具体的な表現をタグ付け具体的な⽬的含まれる 同じタグ付けロック t31. タグの名前と同じ名前を持つリストに含まれるユーザにタグ付けSNSユーザに対してタグ付けを⾏うリストに含まれていないユーザにタグ付けできない
具体的な研究⽬的 2/3 7リスザルが好きGo⾔語の初⼼者リスザルが好きGo⾔語の初⼼者ユーザ集合 U リスト集合 L タグ集合 Tu1u2u3t1t2l1l2ユーザが含まれるリスト名と同じタグでユーザをタグ付けリストに含まれていないユーザに対してタグ付け学習データに存在しない具体的な表現をタグ付け具体的な⽬的ロックタグと同じ名前を持つリストに含まれないl3 ロック t31. ユーザとタグの適合性を判定2. 適合しているならユーザに対してタグ付けSNSユーザに対してタグ付けを⾏うタグ付け
具体的な研究⽬的 3/3 8ユーザが含まれるリスト名と同じタグでユーザをタグ付けリストに含まれていないユーザに対してタグ付け学習データに存在しない具体的な表現をタグ付け具体的な⽬的リスザルが好きGo⾔語の初⼼者Rust⾔語の初⼼者リスザルが好きGo⾔語の初⼼者ユーザ集合 U リスト集合 L タグ集合 Tu1u2u3t1t2t4l1l2ロック l3 ロック t3 ⽣成1. 既存のタグから品詞に注⽬して新たなタグを⽣成2. ユーザとタグの適合性を判定3. 適合しているならユーザに対してタグ付けタグ付けSNSユーザに対してタグ付けを⾏う
研究の⽬的 9ユーザリスザルが好きリスザルが好き含まれる同じ タグ付けタグリストGo⾔語の初⼼者タグと同じ名前を持つリストに含まれないタグ付け Rust⾔語の初⼼者タグ付けGo⾔語の初⼼者⽣成ユーザが含まれるリスト名と同じタグでユーザをタグ付けリストに含まれていないユーザに対してタグ付け学習データに存在しない具体的な表現をタグ付けタグ タグユーザ ユーザタグゼロショット学習⼿法[6]を⽤いることで学習データがない場合でもタグを付与できる⽅法を実現[6] Socher et al., Zero-Shot Learning Through Cross-Modal Transfer. NIPS 2013.SNSユーザに対してタグ付けを⾏う
• ゼロショット学習⼿法を⽤いたユーザとタグの適合性判定‒ タグに対応するユーザがいない場合でもタグとユーザの適合度からユーザに対してタグ付けを⾏う提案⼿法の概要 10既知タグ:学習データとなるユーザが存在するタグ未知タグ:学習データとなるユーザが存在しないタグRust⾔語の初⼼者未知タグ対応するユーザが存在しないGo⾔語の初⼼者既知タグ対応するユーザが存在する未知タグは既知タグから⽣成予測対象のユーザモデル対応関係を学習学習モデルで適合性を判定特徴表現空間学習データとなるユーザ変換変換変換変換学習:既知タグの特徴表現と対応するユーザの特徴表現の対応関係を学習予測:未知タグの特徴表現と予測対象のユーザの特徴表現から適合性を判定
提案⼿法と既存⼿法の違い 11ツイートツイートドッグフードって…• タグとユーザの特徴表現空間上の対応関係を学習‒ 既存⼿法ではタグごとにユーザのパターンを学習⽝好きタグユーザツイートツイート⾖柴かわいいよね…ツイート…ツイートツイート散歩に⾏ってきました⽝好きツイートツイート散歩に⾏ってきましたタグ ユーザツイート特徴表現空間タグごとにユーザパターンを学習既存⼿法タグとユーザの対応関係を学習提案⼿法タグごとに⼗分な量のユーザが必要になる タグごとに⼗分な量のユーザを必要としない
提案⼿法における学習の概要 12ツイートとタグの表現の違い 学習時の損失関数の違い⽝好きタグユーザツイートツイートツイートツイート⽂埋め込みBERT単語埋め込みfastText特徴表現Binary crossentropy lossMargin rankingloss損失関数• タグとユーザツイートの特徴表現ベクトルを作成,ベクトルを全結合層に⼊⼒して対応関係を学習‒ 特徴表現: 単語埋め込み(fastText[7,8]), ⽂埋め込み(BERT[9])‒ 損失関数: Binary cross entropy loss, Margin ranking loss[7] Bojanowski et al., Enriching word vectors with subword information. TACL 2017.[8] Joulin et al., Bag of tricks for efficient text classification. EACL 2017.[9] Devlin et al., BERT: Pre-training of deep bidirectional transformers for language understanding. NAACL 2019.全結合層
特徴表現として単語埋め込みを利⽤した学習 13単語埋め込みベクトル平均ベクトル結合ベクトル⼊⼒ 𝓍tag既知タグ⁝ユーザtweetntweet1ツイートツイートごとに平均してツイート全てを平均する出⼒ 𝑦 ⽬標値(適合度) 𝗍300次元600次元全結合層…単語単語t単語単語t単語単語t…⁝⁝⁝⁝⁝⁝…⁝⁝⁝⁝⁝⁝300次元単語分割MeCab学習⽅法• タグ:タグの単語埋め込みの平均• ユーザ:ツイート毎に単語埋め込み平均して,全てのツイートベクトルを平均• タグベクトルとユーザツイートベクトルを結合• 結合ベクトルを全結合層へ⼊⼒して適合度を出⼒• ⽬標値との誤差から学習fastTextによる変換タグとツイートの特徴表現• fastText: subword を考慮することで未知語の埋め込みを⾼い精度で獲得できる⼿法• 対象としているデータには未知語が多く含まれるため活⽤語や未知語に対応している fastText を⽤いる損失関数• Binary cross entropy loss• Margin ranking loss誤差
特徴表現として⽂埋め込みを利⽤した学習 14単語分割⼊⼒シーケンス[CLS]のベクトル⼊⼒ 𝓍既知タグ ユーザ ツイート全結合層…⁝[CLS], 𝑡-./0, …, 𝑡1./0, [SEP], 𝑡-.233., …, 𝑡4.233., [SEP]BERTによる変換出⼒ 𝑦学習⽅法• タグとユーザツイートの単語をBERTの⼊⼒形式に合わせてBERTへ⼊⼒• [CLS] のベクトルを全結合層へ⼊⼒して適合度を出⼒• タグとユーザのツイート毎に適合度を出⼒• ツイート毎の適合度の中で最も⾼い適合度をタグとユーザの適合度とする損失関数• Binary cross entropy loss• Margin ranking losstag tweetntweet1単語単語t単語単語tタグとツイートの特徴表現• BERT: 広範囲の⾃然⾔語タスクで優れた性能を発揮する双⽅向学習による汎⽤⾔語モデル• ⽂脈を考慮した埋め込みを獲得できるため BERT を⽤いる⼊⼒トークン毎にベクトルが出⼒[CLS]: 先頭を表すトークン[SEP]: ⽂の区切りを表すトークン
[CLS], 𝑡-./0, …, 𝑡1./0, [SEP], 𝑡-.233., …, 𝑡4.233., [SEP]tag tweetntweet1単語単語t単語単語t特徴表現として⽂埋め込みを利⽤した学習 15単語分割⼊⼒シーケンス[CLS]のベクトル⼊⼒ 𝓍既知タグ ユーザ ツイート全結合層…⁝BERTによる変換出⼒ 𝑦1, …, 𝑦nmax• タグと各ツイートのスコアを出⼒• 最も⾼いスコアがタグとユーザの適合度損失関数• Binary cross entropy loss• Margin ranking loss出⼒ 𝑦 ⽬標値(適合度) 𝗍学習⽅法• タグとユーザツイートの単語をBERTの⼊⼒形式に合わせてBERTへ⼊⼒• [CLS] のベクトルを全結合層へ⼊⼒して適合度を出⼒• タグとユーザのツイート毎に適合度を出⼒• ツイート毎の適合度の中で最も⾼い適合度をタグとユーザの適合度とするタグとツイートの特徴表現• BERT: 広範囲の⾃然⾔語タスクで優れた性能を発揮する双⽅向学習による汎⽤⾔語モデル• ⽂脈を考慮した埋め込みを獲得できるため BERT を⽤いる誤差
• 単語の厳密な⼀致による⼿法と⽂の表現を抽象化した⼿法によって適合性判定を互いに補完できるという考え‒ BM25[10]は単語の厳密な⼀致による⼿法.ユーザをクエリ,タグを⽂書.提案⼿法とBM25による組み合わせ⼿法 16𝑓(𝑈, 𝑡) = 𝑤 ) 𝑓BM25(𝑈, 𝑡) + (1 − 𝑤) ) 𝑓ZSL(𝑈, 𝑡)U: ユーザツイート, t: タグ, 𝑤: ハイパーパラメータ[10] Robertson et al,. Okapi at trec-3. TREC 1995.BM25のスコアと提案⼿法によるスコアの線型結合※ ZSL: Zero shot learningパラメータはバリデーションデータでグリッドサーチ
予測:適合度に基づくユーザに対するタグ付け 17• ユーザとタグの適合度に基づいてタグを順位付けし,最も適合するタグをユーザに対してタグ付けする‒ ⼊⼒:ユーザとタグ集合‒ 出⼒:ユーザと各タグとの適合度学習モデル⽝好きユーザタグ集合⼊⼒⽝好き猫好きリスザルが好き⁝0.630.010.89リスザルが好き⽝好き猫好き⁝0.890.630.01出⼒ 順位付け⁝タグ付け
実験に⽤いるデータセットの構築 18Twitterからのデータ収集1. ユーザ名の収集• 仮定:フォロワーの多いユーザはリストに多く含まれている• ロケーション:⽇本2. ユーザが含まれるリストの収集• 公開リストのみ3. リストの選定• ⽇本語のみで構成• 固有名詞を1つ以上含む• 内容語を 2 つ以上含む• センシティブな単語を含まない• リスト名は重複しない4. ユーザのツイート収集• リストに含まれるユーザ• 1,000件/ユーザ5. ユーザの選定• 1,000件以上のツイートを持つユーザのみ ※1: meyou, https://meyou.jp/ranking/follower_allcat※2: Twitter, https://twitter.com1フォロワーランキングサイト※1ユーザTwitter ※223user_nameツイート4選定したユーザ5リスト選定したリスト1,000件/ユーザ80,2711,829,5188,50119,805
ゼロショット学習によるユーザに対するタグの適合性判定は効果的か?実験設定・評価⽅法 19• データセット‒ Twitter から収集したデータから1,000 セットの学習データを構築• 実験⽅法‒ 各ユーザ u にたいして,正解タグ 1 件と不正解タグ 99 件を⽤意‒ 100件のタグを適合性によって順位付け• 評価指標‒ [email protected] (上位 k 件に正解タグが⼊るか)‒ [email protected](正解タグ: 1,不正解タグ: 0)• ⽐較⼿法‒ BM25:タグとユーザの推定適合度‒ 提案⼿法とBM25の組み合わせた⼿法t1t2t100⁝ユーザ タグu1 正解タグ1不正解タグ1不正解タグ99学習データの形式ユーザごとに100件のタグを⽤意して学習と評価に利⽤実験で明らかにすること1セット
• [email protected] において BM25,[email protected] において BM25 と提案⼿法(BERT,Margin ranking loss)を⽤いた⽅法が最も⾼い精度を⽰した‒ 単語のマッチングによる⼿法とタグとユーザの特徴表現空間上の対応関係を学習する⼿法を組み合わせることで微量ではあるが適合性判定精度を向上することが⽰唆された実験結果と考察 200.0740.0473900.020.040.060.080.1[email protected] [email protected]各⼿法の上位 10 件の精度BM25ZSL(fastText, BCELoss)ZSL(fastText, MRLoss)ZSL(BERT, BCELoss)ZSL(BERT, MRLoss)BM25+ZSL(fastText, BCELoss)BM25+ZSL(fastText, MRLoss)BM25+ZSL(BERT, BCELoss)BM25+ZSL(BERT, MRLoss)※ ZSL: Zero shot learning考察:fasteText ではユーザのツイートの平均を⽤いたが,BERT ではタグとツイートの最も⾼い適合度を⽤いたことでユーザとタグの関係性におけるノイズを考慮できた可能性がある.作成したデータセットにおける偏りを考慮できていない学習⽅法を改善する必要がある.
予測結果の成功・失敗例と考察 21提案⼿法の成功例タグ ユーザ 特徴⾳楽 バンドメンバー guita_rei ミュージシャン作家、⽂化⼈ nog_akドラマ・映画の脚本家テレビラジオ番組 LIVEYEAH_sstvテレビ番組公式アカウントアニソン 声優 koiwai_kotori 声優提案⼿法の失敗例タグ ユーザ 特徴歌い⼿ 踊り⼿ namidai0402 声優歌い⼿ 踊り⼿ morishitamao アイドル歌い⼿ 踊り⼿ confidencemanJP映画公式アカウント歌い⼿ 踊り⼿ bokuun2017映画公式アカウント• データセットの偏りが対応関係の学習に影響している可能性が⾼い‒ リストに含まれていてフォロワーが多いかつ 1,000 件以上の投稿をしているユーザを収集したことでデータセットに芸能関係のデータが多いという偏りがある可能性が⾼い‒ 失敗した結果の中には,意味的には近いような結果も複数存在した‒ 適合度を0,1から多値に変えることが必要である可能性もある
まとめ 22SNSにおいてユーザの性質を明らかにすることは重要• ユーザの性質がわかることで様々な判断が容易になる3つの課題• 多くのクラスに分類したい場合,あらかじめ⼤量のクラスを決めることは困難• データセットに含まれていないユーザが多く存在する• タグの表現はデータセットに含まれている表現に限定される1. 背景SNSユーザにタグ付け• ユーザが含まれているリスト名をタグ付け• リストに含まれていないユーザに対してタグ付け• 学習データに存在しない具体的な表現をタグ付け2. 既存⼿法の課題3. 研究⽬的タグとユーザの対応関係• タグとユーザツイートの対応関係を学習• タグとユーザの適合度を予測• タグを適合度で順位付けて最も適合度の⾼いタグをユーザに付与4. 提案⼿法[email protected] において BM25,[email protected]において BM25と提案⼿法を⽤いた⽅法が最も⾼い精度を⽰した5. 実験結果• fasteText ではユーザのツイートの平均を⽤いたが,BERT ではタグとツイートの最も⾼い適合度を⽤いたことでユーザとタグの関係性におけるノイズを考慮できた可能性がある.• 作成したデータセットにおける偏りを考慮できていない学習⽅法を改善する必要がある6. 考察00.020.040.060.080.1[email protected] [email protected]
補⾜資料23
実際に構築したデータセット 24id rel tag user0 1 エンタメ界隈 teokun7111 0 新潟のフォロワーさん teokun7112 0 イラストレーター・アニメーター teokun711⁝ ⁝ ⁝ ⁝99 0 京都府のホテル・旅館 teokun711100 1 好きな⼈達 daaiicchhi101 0 機動戦⼠ガンダムシリーズ daaiicchhi102 0 ジャニーズ情報 daaiicchhi⁝ ⁝ ⁝ ⁝構築したデータセットの⼀部• id: ⾏番号• rel: ユーザとタグの適合性• tag: タグ• user: ユーザ名別ファイルにユーザごとにツイート1,000 件を保存各列の説明• Train: 600 set(00000 ~ 59999)• Validation: 200 set(60000 ~ 79999)• Test: 200 set(80000 ~ 99999)学習データ• 収集したデータから 1,000 件のユーザと正解タグのペアを抽出‒ 1,000 件から Train, Validation, Test のデータを決定‒ 不正解データは Train, Validation, Test それぞれのタグから作成
学習時の損失関数の違い 25Binary cross entropy Margin rankingタグ ユーザ 予測値 ラベルtag10.89 1x y tタグ ユーザ 予測値 ラベルtag10.891x1y1ttag20.63x2y2u1u1𝑳 = −𝒕 𝐥𝐨𝐠 𝒚 − 𝟏 − 𝒕 𝐥𝐨𝐠(𝟏 − 𝒚)𝑳 = 𝐦𝐚𝐱(𝟎, −𝒕 𝒚𝟏− 𝒚𝟐+ 𝐦𝐚𝐫𝐠𝐢𝐧)
予測結果の成功例と失敗例 26BM25: 成功例 BM25: 失敗例タグ ユーザ 特徴静岡県関連情報 ieyasukun100静岡県浜松市のゆるキャラ遊戯王声優 ishige_syoyaアニメ遊戯王の声優ディズニー公式 disneystudiojpDisney 公式情報発信アカウントタグ ユーザ 特徴にじさんじ所属 key_999にじさんじファンかつ関係者⼥⼦サッカー選⼿ afpbbcomAFP通信の⽇本語アカウント台湾好き Yomiuri_Online読売新聞のアカウント