Upgrade to Pro — share decks privately, control downloads, hide ads and more …

商品属性とレビューの対応関係学習に基づく言語モデル構築

 商品属性とレビューの対応関係学習に基づく言語モデル構築

More Decks by 兵庫県立大学 山本研究室

Transcript

  1. 2 商品の属性・属性値の理解は難しい 属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO

    51200 … … 商品のスペック 画素数3410万 って どれくらい キレイに撮れる? ISO 51200って どれくらい良い?
  2. 3 研究目的:属性とレビューの 関連の理解 属性名 属性値 𝑎1 = 撮像素子 𝑣1 =

    フルサイズ 𝑎2 = 画素数 𝑣2 = 3410万画素 𝑎3 = 最高撮影感度 𝑣3 = ISO 51200 … … 商品の属性・属性値( 𝐴 ) 𝑟1 = 空の青や木々の緑が とてもきれいに撮影できます。 𝑟1 𝐴 = {(𝑎1 , 𝑣1 ), (𝑎2 , 𝑣2 ), (𝑎3 , 𝑣3 ) ⋯ } モデル 属性・属性値集合𝑨を持つ商品に 付けられそうなレビュー? 𝑃(𝐴, 𝑟1 ) = 0.75 レビュー
  3. 4 研究目的:属性とレビューの 関連の理解 属性名 属性値 𝑎1 = 撮像素子 𝑣1 =

    フルサイズ 𝑎2 = 画素数 𝑣2 = 3410万画素 𝑎3 = 最高撮影感度 𝑣3 = ISO 51200 … … 商品の属性・属性値( 𝐴 ) 𝑟2 = 発色はきれいだが、 画質は良いといえない。 𝑟2 𝐴 = {(𝑎1 , 𝑣1 ), (𝑎2 , 𝑣2 ), (𝑎3 , 𝑣3 ) ⋯ } モデル 属性・属性値集合𝑨を持つ商品に 付けられそうなレビュー? 𝑃(𝐴, 𝑟2 ) = 0.15 レビュー
  4. 5 このようなモデルが実現できると 属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO

    51200 … … レビュー スポーツなどの激しい動きも 思いのまま撮影できます。 運動会での結果はまあまあ。 後ろの子にピントが合い、苦労。 空の青や木々の緑が とてもきれいに撮影できます。 撮影感度に関するレビューは? 属性に関連するレビューを探す 商品の属性・属性値
  5. このようなモデルが実現できると 6 属性名 A商品 B商品 C商品 撮像素子 フルサイズ APS-C APS-C

    画素数 3410万画素 2410万画素 2150万画素 最高撮影感度 ISO 51200 ISO 25600 ISO 51200 どの商品が激しい動きの スポーツ撮影に向いている? テキストと属性値を関連づけて 商品を探す … … … …
  6. 8 研究目的:属性とレビューの 関連の理解 属性名 属性値 𝑎1 = 撮像素子 𝑣1 =

    フルサイズ 𝑎2 = 画素数 𝑣2 = 3410万画素 𝑎3 = 最高撮影感度 𝑣3 = ISO 51200 … … 商品の属性・属性値( 𝐴 ) 𝑟1 = 空の青や木々の緑が とてもきれいに撮影 できます。 𝑟1 𝐴 = {(𝑎1 , 𝑣1 ), (𝑎2 , 𝑣2 ), (𝑎3 , 𝑣3 ) ⋯ } モデル 属性・属性値集合𝑨を持つ商品に 付けられそうなレビュー? レビュー P(𝐴, rj ) = 0.75
  7. 9 提案手法 属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO

    51200 商品の属性 BERT [CLS] ##像 素子 512 撮 ISO 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid 空 の ます 。 … Token ID 関連あり/関連なし … … 空の青や木々の緑が 美しく撮影できます。 レビュー [SEP] … ##00 … BERTを用いた言語モデル
  8. 10 BERT • Transformer Encoderを用いたニューラルネット ワークのモデル • ファインチューニングを行うことで様々な 自然言語処理タスクを精度よく解くことができる BERT

    [CLS] [SEP] ハン ##バーグ 。 。 です 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid 今日 の です か … Token ID 関連あり/関連なし 0 1 1 1 1 0 1 0 0 0 0 Segment ID … … …
  9. 11 BERTを用いた文と文の 関連性推定の例 BERT 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid …

    … Token ID 関連あり/関連なし 今日のご飯は 何ですか。 ハンバーグ です。 Segment ID … …
  10. 12 BERTを用いた文と文の 関連性推定の例 BERT [CLS] [SEP] ハン ##バーグ 。 。

    です 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid 今日 の です か … Token ID 関連あり/関連なし 今日のご飯は 何ですか。 ハンバーグ です。 関連あり 0 0 1 1 1 0 1 0 0 0 0 Segment ID … … … Segment IDによって1文目か2文目かを判断
  11. 13 提案手法: テキストと属性の関連性推定 BERT 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid …

    Token ID 関連あり/関連なし 属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO 51200 … … 商品の属性 空の青や木々の緑が 美しく撮影できます。 レビュー
  12. 属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO 51200 商品の属性

    14 提案手法: テキストと属性の関連性推定 BERT [CLS] ##像 素子 512 撮 ISO 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid 空 の ます 。 … Token ID 関連あり/関連なし … … 空の青や木々の緑が 美しく撮影できます。 レビュー [SEP] … ##00 …
  13. 属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO 51200 商品の属性

    15 提案手法: テキストと属性の関連性推定 BERT [CLS] ##像 素子 512 撮 ISO 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid 空 の ます 。 … Token ID 関連あり/関連なし … … 空の青や木々の緑が 美しく撮影できます。 レビュー [SEP] … ##00 … 撮像素子:フルサイズ、 画素数:3410万、 最高撮影感度:51200・・・ のように属性名と属性値の ペアを繋げて入力
  14. 16 対応関係 属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO

    51200 … … 属性名 属性値 撮像素子 APS-C 画素数 2150万画素 最高撮影感度 ISO 51200 … … 発色はきれいだが 画質はまあまあ 空の青や木々の緑が 美しく撮影できます。 商品Aのレビュー 商品Aの属性 商品Bのレビュー 商品Bの属性 関連あり・関連なしを対応関係と呼ぶ
  15. 属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO 51200 商品の属性

    17 対応関係学習 BERT [CLS] ##像 素子 512 撮 ISO 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid 空 の ます 。 … Token ID 関連あり/関連なし … … 空の青や木々の緑が 美しく撮影できます。 レビュー [SEP] … ##00 … 関連ありなしを学習することを 対応関係学習と呼ぶ
  16. 属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO 51200 商品の属性

    18 技術的課題 BERT [CLS] ##像 素子 512 撮 ISO 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid 空 の ます 。 … Token ID 関連あり/関連なし … … 空の青や木々の緑が 美しく撮影できます。 レビュー [SEP] … ##00 … 数値を含む属性値をどのように扱うか 技術的課題
  17. • 量的データを含む属性値をカテゴリ化 • 属性ごとに属性値を表現するトークンを 用意 24 量的データをカテゴリ化&トークン化 1193万画素 6100万画素 2470万画素

    画素数:[gaso_1] 画素数:[gaso_3] 画素数:[gaso_4] 数値を含む属性値の大きさに 複数のカテゴリがあることが理解できる
  18. 25 トークンを追加する問題点 1193万画素 6100万画素 2470万画素 画素数 580g 580g 285g 重量

    画素数:[gaso_1] 画素数:[gaso_3] 画素数:[gaso_4] 重量:[weight_3] 重量:[weight _1] 重量:[weight _3] 属性ごとにトークンを追加するため 学習すべき重みの数が増えてしまう
  19. 29 量的データを 桁数を表すトークンで表現 262g 1270g 285g Xikun Zhang, Deepak Ramachandran,

    Ian Tenney, Yanai Elazar, Dan Roth: Do Language Embeddings Capture Scales?, Findings of the Association for Computational Linguistics, pp.4889–4896, 2020. • 数値の桁数を表す特殊トークンを追加 • [EXP]トークンを使用することで数値の 大きさを捉えられる 重量: 262[EXP]2 重量: 285[EXP]2 重量: 1270[EXP]3 桁数の異なる属性値について スケールを捉えられる
  20. 手法 入力方法 利点 追加される トークン数 カテゴリ化 & トークン化 画素数:[gaso_1] 大きさを種類と

    して捉えること ができる 属性数× カテゴリ 数 カテゴリ化 &数値化 画素数:1 学習すべき重み が増えずに済む 0 桁数を表す トークンを 追加 画素数: 1193[EXP]3 数値のスケール を捉えることが できる 1 30 量的データを含む属性値の処理
  21. テキストの入力から レビュー、属性名、属性値を区別する 必要がある 32 Segment IDによる入力の区別 BERT [CLS] 画素 数

    : [SEP] [SEP] [gaso_1] 全結合層 正解との誤差を計算(クロスエントロピー) 逆伝播 Sigmoid この 商品 … です 。 … Token ID 損失値 関連あり/関連なし
  22. • Segment IDを2種類とする • レビューに0、属性名・属性値に1を 割り当てる 33 Segment IDによる入力の区別 BERT

    [CLS] 画素 数 : [SEP] [SEP] 3600 全結合層 正解との誤差を計算(クロスエントロピー) 逆伝播 Sigmoid 0 0 0 0 1 1 1 1 1 この 商品 … … … 0 です 0 。 … Token ID 関連あり/関連なし Segment ID 損失値
  23. • Segment IDを3種類とする • レビューに0、属性名に1、属性値に2を 割り当てる 34 Segment IDによる入力の区別 BERT

    [CLS] 画素 数 : [SEP] [SEP] 3600 全結合層 正解との誤差を計算(クロスエントロピー) 逆伝播 Sigmoid 0 0 0 0 1 1 2 1 2 この 商品 … … … 0 です 0 。 … Token ID Segment ID 損失値 関連あり/関連なし
  24. 目的 • どの手法が対応関係を当てるのに適しているのか 使用データ • 価格ドットコムのカメラ508商品、23,381件のレビュー (一眼レフ、ミラーレス一眼) • 属性値のコサイン類似度を求め、0.95以下の商品を負例としてラ ンダムに抽出する

    • 後継商品やレンズキットなどの酷似した商品を負例として学習 しないため • 価格ドットコムの評価観点に関するレビューを1文ずつ使用(文書 長は中央50%である19文字以上47文字以下。) 36 評価実験
  25. 38 実験に用いた属性 属性名 データの形式 メーカー カテゴリ(CANON、SONY…) タイプ カテゴリ(一眼レフ、ミラーレス) 画素数 数値

    撮像素子 カテゴリ(フルサイズ、APS-C) 最低・最高撮影感度 数値 最低・最高シャッタースピード 数値 撮影枚数 数値 防塵・防滴 カテゴリ(あり、なし) 幅 数値 高さ 数値 奥行 数値 可動式モニタ カテゴリ(バリアングル、チルト) 重量 数値 カラー カテゴリ
  26. 39 実験に用いた属性 属性名 データの形式 メーカー カテゴリ(CANON、SONY…) タイプ カテゴリ(一眼レフ、ミラーレス) 画素数 数値

    撮像素子 カテゴリ(フルサイズ、APS-C) 最低・最高撮影感度 数値 最低・最高シャッタースピード 数値 撮影枚数 数値 防塵・防滴 カテゴリ(あり、なし) 幅 数値 高さ 数値 奥行 数値 可動式モニタ カテゴリ(バリアングル、チルト) 重量 数値 カラー カテゴリ
  27. 学習・評価データ • 訓練: 87,165件、検証: 9,685件で学習 (196種類425商品のテキスト) • 評価: 11,067件(20種類50商品のテキスト) 学習条件

    • 東北大学乾研究室事前学習済みモデル • 最大入力トークン数: 256 • 損失関数: 交差エントロピー • 学習率: 2 × 10−6 • Patienceを10で早期終了をかける 41 学習条件
  28. 42 各モデルの正解率の比較 入力形式 Segment ID 正解率 属性値そのまま入力 (画素数:1163、重量:262) 2種類 0.687

    3種類 0.677 量的データはカテゴリ化&トークン化 (画素数:[gaso_1]、重量:[weight_1]) 2種類 0.693 3種類 0.697 量的データはカテゴリ化&数値化 (画素数:1、重量:1) 2種類 0.681 3種類 0.714 数値の桁数を表すトークンの追加 (画素数:1163[EXP]3、重量:262[EXP]2) 2種類 0.703 3種類 0.687 ベース ライン
  29. 43 各モデルの正解率の比較 入力形式 Segment ID 正解率 属性値そのまま入力 (画素数:1163、重量:262) 2種類 0.687

    3種類 0.677 量的データはカテゴリ化&トークン化 (画素数:[gaso_1]、重量:[weight_1]) 2種類 0.693 3種類 0.697 量的データはカテゴリ化&数値化 (画素数:1、重量:1) 2種類 0.681 3種類 0.714 数値の桁数を表すトークンの追加 (画素数:1163[EXP]3、重量:262[EXP]2) 2種類 0.703 3種類 0.687 ベース ライン Segment IDを3種類にすると 属性値の部分が数字だとわかるため正解率が高い
  30. カテゴリ化&数値化を行う手法 44 画素数:1、最低撮影感度: 2・・・ Segment ID2種類 Segment ID3種類 画素 数

    : 1 、 最低 撮影 感度 : 2 Token Segment ID 1 1 1 1 1 1 1 1 1 1 画素 数 : 1 、 最低 撮影 感度 : 2 Token Segment ID 1 1 1 2 2 1 1 1 1 2 トークンとSegment IDが結びつき、 Segment IDが2となる部分が 属性値であると理解できた
  31. 45 各モデルの正解率の比較 入力形式 Segment ID 正解率 属性値そのまま入力 (画素数:1163、重量:262) 2種類 0.687

    3種類 0.677 量的データはカテゴリ化&トークン化 (画素数:[gaso_1]、重量:[weight_1]) 2種類 0.693 3種類 0.697 量的データはカテゴリ化&数値化 (画素数:1、重量:1) 2種類 0.681 3種類 0.714 数値の桁数を表すトークンの追加 (画素数:1163[EXP]3、重量:262[EXP]2) 2種類 0.703 3種類 0.687 ベース ライン 特殊トークン自体に属性値の情報が 含まれるため正解率があまり変わらない
  32. カテゴリ化&数値化を行う手法 46 画素数:[gaso_1]、最低撮影感度: [min_kando_2]・・・ Segment ID2種類 Segment ID3種類 画素 数

    : [gaso_1] 、 最低 撮影 感度 : [min_kando_2] Token Segment ID Token Segment ID 1 1 1 1 1 1 1 1 1 1 画素 数 : [gaso_1] 、 最低 撮影 感度 : [min_kando_2] 属性値を表現する独自のトークンなので、 Segment IDを使用しなくても 属性値であると理解できる 1 1 1 2 2 1 1 1 1 2
  33. 47 各モデルの正解率の比較 入力形式 Segment ID 正解率 属性値そのまま入力 (画素数:1163、重量:262) 2種類 0.687

    3種類 0.677 量的データはカテゴリ化&トークン化 (画素数:[gaso_1]、重量:[weight_1]) 2種類 0.693 3種類 0.697 量的データはカテゴリ化&数値化 (画素数:1、重量:1) 2種類 0.681 3種類 0.714 数値の桁数を表すトークンの追加 (画素数:1163[EXP]3、重量:262[EXP]2) 2種類 0.703 3種類 0.687 ベース ライン 桁数の異なる属性値が少なかったため 高い精度が出なかった
  34. 48 正しく当てられているテキスト 初代とほぼ変わりなく 非常に安定した高画質と いえます。 テキスト 属性名 属性値 タイプ ミラーレス

    画素数 4575万画素 撮像素子 フルサイズ 商品の属性 … 画素数が高いカメラに 「高画質」と記述してあるテキストを 関連ありと判定できている 正解: 関連あり、予測: 関連あり
  35. 49 正しく当てられているテキスト 他APS-C機と比較しても 悪いという事はありません。 テキスト 属性名 属性値 タイプ ミラーレス 画素数

    1684万画素 撮像素子 フォーサーズ 商品の属性 … レビューが属性値に含まれている 撮像素子と異なることが理解できている 正解: 関連なし、予測: 関連なし
  36. 50 正しく当てられていないテキスト 最近のAPS-C機種は 2400万画素で 画質は良好ですが、 高感度対応力はそれなりです。 テキスト 属性名 属性値 タイプ

    ミラーレス 画素数 2410万画素 撮像素子 APS-C 商品の属性 … カテゴリ化したため、 レビューに含まれる数値情報との 関連を理解できていない 正解: 関連あり、予測: 関連なし
  37. 51 今後行う評価 与えられたスペックに対して どのようなテキストがスコアが高くなるのか 属性名 属性値 タイプ ミラーレス 画素数 4575万画素

    撮像素子 フルサイズ 商品の属性 … テキスト 初代とほぼ変わりなく 非常に安定した高画質と いえます。 他APS-C機と比較しても 悪いという事はありません。 画質は良好ですが、 高感度対応力はそれなりです。
  38. 52 今後行う評価 与えられたスペックに対して どのようなテキストがスコアが高くなるのか 属性名 属性値 タイプ ミラーレス 画素数 4575万画素

    撮像素子 フルサイズ 商品の属性 … テキスト 初代とほぼ変わりなく 非常に安定した高画質と いえます。 他APS-C機と比較しても 悪いという事はありません。 画質は良好ですが、 高感度対応力はそれなりです。 0.9 0.2 0.5
  39. 53 今後行う評価 テキストと属性が正しく 関連づいているか 初代とほぼ変わりなく 非常に安定した高画質と いえます。 テキスト 属性名 属性値

    タイプ ミラーレス 画素数 4575万画素 撮像素子 フルサイズ 商品の属性 … 正解: 関連あり、予測: 関連あり
  40. 55 まとめ 商品属性とレビューの対応関係学習に基づく 言語モデル構築 𝑟 𝑗 A = {(𝑎1 ,

    𝑣1 ), (𝑎2 , 𝑣2 ), ⋯ (𝑎𝑛 , 𝑣𝑛 ) } モデル 𝑟 𝑗 は 𝐴を持つ商品に対応しているレビューなのか P(𝐴, rj ) = 0.75 • 属性・属性値の理解は難しい • レビューと属性や属性値の関連が分かれば、属性を解釈 することが可能になる • 量的データをカテゴリ化し、数値に置き換える手法が 最も正解率が高かった • 今後はさらなる評価を行う