Slide 1

Slide 1 text

商品属性とレビューの 対応関係学習に基づく 言語モデル構築 兵庫県立大学 情報科学研究科 山本研究室 河田友香

Slide 2

Slide 2 text

2 商品の属性・属性値の理解は難しい 属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO 51200 … … 商品のスペック 画素数3410万 って どれくらい キレイに撮れる? ISO 51200って どれくらい良い?

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

このようなモデルが実現できると 6 属性名 A商品 B商品 C商品 撮像素子 フルサイズ APS-C APS-C 画素数 3410万画素 2410万画素 2150万画素 最高撮影感度 ISO 51200 ISO 25600 ISO 51200 どの商品が激しい動きの スポーツ撮影に向いている? テキストと属性値を関連づけて 商品を探す … … … …

Slide 7

Slide 7 text

属性に関連するレビューを探す テキストと属性値を結び付けて 商品を探す 7 このようなモデルが実現できると 今までにはない視点で 商品を探すことが可能になる

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

10 BERT • Transformer Encoderを用いたニューラルネット ワークのモデル • ファインチューニングを行うことで様々な 自然言語処理タスクを精度よく解くことができる BERT [CLS] [SEP] ハン ##バーグ 。 。 です 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid 今日 の です か … Token ID 関連あり/関連なし 0 1 1 1 1 0 1 0 0 0 0 Segment ID … … …

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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文目かを判断

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

属性名 属性値 撮像素子 フルサイズ 画素数 3410万画素 最高撮影感度 ISO 51200 商品の属性 18 技術的課題 BERT [CLS] ##像 素子 512 撮 ISO 全結合層 正解との誤差を計算(クロスエントロピー) 損失値 逆伝播 Sigmoid 空 の ます 。 … Token ID 関連あり/関連なし … … 空の青や木々の緑が 美しく撮影できます。 レビュー [SEP] … ##00 … 数値を含む属性値をどのように扱うか 技術的課題

Slide 19

Slide 19 text

19 数値の処理 1193万画素 6100万画素 数値の大小関係をモデルが理解するのは難しい 数値の大きさを モデルに理解させたい トークン化 '119', '##30', '##000', '画素' '610', '##000', '##00', '画素'

Slide 20

Slide 20 text

20 数値を含む属性値を扱うための工夫 1.量的データを含む 属性値の処理 2.属性名、属性値、 レビューの区別

Slide 21

Slide 21 text

21 数値を含む属性値を扱うための工夫 1.量的データを含む 属性値の処理 2.属性名、属性値、 レビューの区別

Slide 22

Slide 22 text

1.カテゴリ化&トークン化 2.カテゴリ化&数値化 3.桁数を表すトークンを追加 22 量的データを含む属性値の処理

Slide 23

Slide 23 text

1.カテゴリ化&トークン化 2.カテゴリ化&数値化 3.桁数を表すトークンを追加 23 量的データを含む属性値の処理

Slide 24

Slide 24 text

• 量的データを含む属性値をカテゴリ化 • 属性ごとに属性値を表現するトークンを 用意 24 量的データをカテゴリ化&トークン化 1193万画素 6100万画素 2470万画素 画素数:[gaso_1] 画素数:[gaso_3] 画素数:[gaso_4] 数値を含む属性値の大きさに 複数のカテゴリがあることが理解できる

Slide 25

Slide 25 text

25 トークンを追加する問題点 1193万画素 6100万画素 2470万画素 画素数 580g 580g 285g 重量 画素数:[gaso_1] 画素数:[gaso_3] 画素数:[gaso_4] 重量:[weight_3] 重量:[weight _1] 重量:[weight _3] 属性ごとにトークンを追加するため 学習すべき重みの数が増えてしまう

Slide 26

Slide 26 text

1.カテゴリ化&トークン化 2.カテゴリ化&数値化 3.桁数を表すトークンを追加 26 量的データを含む属性値の処理

Slide 27

Slide 27 text

• カテゴリ化に数値を使用する • もともとの数字が持つ意味が失われる可能性あり 27 量的データをカテゴリ化&数値化 1193万画素 6100万画素 2470万画素 画素数:1 画素数: 3 画素数: 4 数値のみで表現するため 新たに学習すべき重みの数が増えない

Slide 28

Slide 28 text

1.カテゴリ化&トークン化 2.カテゴリ化&数値化 3.桁数を表すトークンを追加 28 量的データを含む属性値の処理

Slide 29

Slide 29 text

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 桁数の異なる属性値について スケールを捉えられる

Slide 30

Slide 30 text

手法 入力方法 利点 追加される トークン数 カテゴリ化 & トークン化 画素数:[gaso_1] 大きさを種類と して捉えること ができる 属性数× カテゴリ 数 カテゴリ化 &数値化 画素数:1 学習すべき重み が増えずに済む 0 桁数を表す トークンを 追加 画素数: 1193[EXP]3 数値のスケール を捉えることが できる 1 30 量的データを含む属性値の処理

Slide 31

Slide 31 text

31 対応関係を学習するための工夫 1.量的データを含む 属性値の処理 2.属性名、属性値、 レビューの区別

Slide 32

Slide 32 text

テキストの入力から レビュー、属性名、属性値を区別する 必要がある 32 Segment IDによる入力の区別 BERT [CLS] 画素 数 : [SEP] [SEP] [gaso_1] 全結合層 正解との誤差を計算(クロスエントロピー) 逆伝播 Sigmoid この 商品 … です 。 … Token ID 損失値 関連あり/関連なし

Slide 33

Slide 33 text

• 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 損失値

Slide 34

Slide 34 text

• 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 損失値 関連あり/関連なし

Slide 35

Slide 35 text

35 Segment IDを3種類にすると 利点 • レビュー、属性名、属性値の区別がつく 欠点 • 事前学習済みモデルではSegment IDは2種類 • 新たなIDを用意するため、学習する重みが 増えてしまう

Slide 36

Slide 36 text

目的 • どの手法が対応関係を当てるのに適しているのか 使用データ • 価格ドットコムのカメラ508商品、23,381件のレビュー (一眼レフ、ミラーレス一眼) • 属性値のコサイン類似度を求め、0.95以下の商品を負例としてラ ンダムに抽出する • 後継商品やレンズキットなどの酷似した商品を負例として学習 しないため • 価格ドットコムの評価観点に関するレビューを1文ずつ使用(文書 長は中央50%である19文字以上47文字以下。) 36 評価実験

Slide 37

Slide 37 text

37 価格ドットコムのレビュー 【画質】 上位機種と同じ最新の機能なので最高です。 また上位機種に無いAUTOモードでの撮影も素晴ら しいと思います。 【操作性】 ダイヤルが使いやすいので良い。 評価観点 8種類の評価観点(デザイン、画質、操作性、 バッテリー、携帯性、機能性、液晶、 ホールド感)に関するテキストを抽出

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

ベースライン • 属性値を数値のまま入力する 提案手法 • 量的データをカテゴリ化&トークン化 • 量的データをカテゴリ化&数値化 • 数値の桁数を表すトークンの追加 40 比較手法 Segment IDが2種類の場合、3種類の場合をそれぞれ比較する

Slide 41

Slide 41 text

学習・評価データ • 訓練: 87,165件、検証: 9,685件で学習 (196種類425商品のテキスト) • 評価: 11,067件(20種類50商品のテキスト) 学習条件 • 東北大学乾研究室事前学習済みモデル • 最大入力トークン数: 256 • 損失関数: 交差エントロピー • 学習率: 2 × 10−6 • Patienceを10で早期終了をかける 41 学習条件

Slide 42

Slide 42 text

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 ベース ライン

Slide 43

Slide 43 text

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種類にすると 属性値の部分が数字だとわかるため正解率が高い

Slide 44

Slide 44 text

カテゴリ化&数値化を行う手法 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となる部分が 属性値であると理解できた

Slide 45

Slide 45 text

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 ベース ライン 特殊トークン自体に属性値の情報が 含まれるため正解率があまり変わらない

Slide 46

Slide 46 text

カテゴリ化&数値化を行う手法 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

Slide 47

Slide 47 text

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 ベース ライン 桁数の異なる属性値が少なかったため 高い精度が出なかった

Slide 48

Slide 48 text

48 正しく当てられているテキスト 初代とほぼ変わりなく 非常に安定した高画質と いえます。 テキスト 属性名 属性値 タイプ ミラーレス 画素数 4575万画素 撮像素子 フルサイズ 商品の属性 … 画素数が高いカメラに 「高画質」と記述してあるテキストを 関連ありと判定できている 正解: 関連あり、予測: 関連あり

Slide 49

Slide 49 text

49 正しく当てられているテキスト 他APS-C機と比較しても 悪いという事はありません。 テキスト 属性名 属性値 タイプ ミラーレス 画素数 1684万画素 撮像素子 フォーサーズ 商品の属性 … レビューが属性値に含まれている 撮像素子と異なることが理解できている 正解: 関連なし、予測: 関連なし

Slide 50

Slide 50 text

50 正しく当てられていないテキスト 最近のAPS-C機種は 2400万画素で 画質は良好ですが、 高感度対応力はそれなりです。 テキスト 属性名 属性値 タイプ ミラーレス 画素数 2410万画素 撮像素子 APS-C 商品の属性 … カテゴリ化したため、 レビューに含まれる数値情報との 関連を理解できていない 正解: 関連あり、予測: 関連なし

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

53 今後行う評価 テキストと属性が正しく 関連づいているか 初代とほぼ変わりなく 非常に安定した高画質と いえます。 テキスト 属性名 属性値 タイプ ミラーレス 画素数 4575万画素 撮像素子 フルサイズ 商品の属性 … 正解: 関連あり、予測: 関連あり

Slide 54

Slide 54 text

54 今後行う評価 テキストと属性が正しく 関連づいているか 初代とほぼ変わりなく 非常に安定した高画質と いえます。 テキスト 属性名 属性値 タイプ ミラーレス 画素数 1000万画素 撮像素子 フルサイズ 商品の属性 … 予測: 関連なし?

Slide 55

Slide 55 text

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