# 機械加工文書における用語入れ子構造と トリガワードを考慮した用語関係同時抽出

稲熊陸 ${ }^{1}$ 小島 “ $^{2}$ 東孝幸 ${ }^{2}$ 三輪誠 ${ }^{1}$ 古谷 克司 ${ }^{1}$ 佐々木 裕 ${ }^{1}$
1 豊田工業大学 2 株式会社ジェイテクト

## 1 研究背景

機械加工はものづくり分野における基本技術の一 つであるが，少子高齢化にともないものづくりに携 わる技術者，技能者が引退するとともに，新規後継者が減少している. そのため技術者一人あたりの作業負担は増加し，次世代の技術者に熟練技術者と同程度の知識と技術が求められている。

熟練者同等の知識が求められる業務に工程の策定業務が挙げられる。策定業務の遂行のためには，一 つの機械加工因子の変化によって，他の機械加工因子が受ける影響をあらかじめ可能な限り網羅する必要がある. 機械加工因子とは工具の種類や材料の特性, 加工条件と機械加工パラメータなどの機械加工 に関わる全ての因子のことをいう。

機械加工因子は専門書や機械加工を対象とする学会で発表される論文, 社内技術文書や学生向けの教科書など，文書形式で幅広く存在し，文書内で複雑 な関係で結ばれたり，因子間で入れ子構造を形成し たりすることが多い．技術者が文書を閲読し，機械加工因子とその関係を獲得することは熟練者同等の 知識が必要となる点で属人的である.

そこで本研究では，文書に含まれる機械加工因子 と関係の自動抽出を目的に, 用語抽出と, 関係抽出 とのマルチタスク学習を行う深層学習モデルを提案 する. 用語抽出においては入れ子構造を考慮し, 関係抽出においてはトリガワードを考慮したモデル設計を行い，機械加工技術文書における用語と関係の 抽出精度の評価を行う.

## 2 関連研究

属人的方法からの脱却を目指し，機械加工分野の 文書から自動で機械加工因子を獲得し，因子を関係という観点で集約する手法として，増田 [1] らが 行った Support Vector Machine（SVM）を用いた関係抽出の研究がある．増田らはトリガワードと呼ばれ
…切削速度が増加すると切削温度が増し，…

$
\text { トリガワード }
$

図 1 トリガワードの例

る単語について「トリガワードの出現位置」と「ト リガワードが修飾する用語の位置」を定義し，関係抽出の素性に加えた、トリガワードは「物理量を示 す二用語間の変化を表す単語」で定義される. 図 1 に具体的な例を示す.「切削速度」に対して「増加 する」，切削温度に対して「増し」といった単語のこ とをいう．増田らの研究は機械加工因子をあらかじ め特定させた上での関係抽出であり，新しく発表さ れる機械加工技術文書や論文に示されるような文書 への転用には，最初に機械加工因子を獲得するタス クが残っている点で問題が残っている.

## 3 提案手法

本提案モデルは，日本語で記述された機械加工技術文書の入れ子構造を対象とした用語抽出タスクと 関係抽出タスクを，マルチタスク学習で解く深層学習モデルである. 図 2 にモデル全体の概要を示す.図中の格子状の四角はベクトルを表し，行方向に各 トークンのベクトルの次元を，列方向にトークンの 並びを表現している。また，五角形はぞれぞれ記述 された演算処理を表現している。関係抽出タスクに おいては，トリガワードを Attenition 機構を用いて 考慮したモデルとなっている. 本提案モデルにおけ るモデルの入力単位は一文である.

## 3.1 共有部

共有部（Shared Part）は用語抽出と関係抽出のど ちらのタスクを学習する際にも用いられる構成要素 である。与えられた各文を日本語版 Wikipedia で事前に学習された Sentencepiece[2] を用いてトークン に分割する. 得られたサブワード単位のトークン群

図 2 モデル全体の概要

$\boldsymbol{x}$ に対して日本語版 Wikipedia で事前に学習された BERT[3] を用いてトークンの表現 $\boldsymbol{h}_{\mathbf{1}}$ を獲得する.

$
\boldsymbol{h}_{1}=\operatorname{BERT}(\boldsymbol{x})
$

獲得したトークンの表現 $\boldsymbol{h}_{\mathbf{1}}$ を CNN の入力とし，中間表現 $\boldsymbol{h}_{\mathbf{2}}$ を獲得する。

$
\boldsymbol{h}_{\mathbf{2}}=\mathrm{CNN}\left(\boldsymbol{h}_{\mathbf{1}}\right)
$

中間表現 $\boldsymbol{h}_{2}$ は用語抽出と関係抽出のどちらのタス クを解く際にも用いる表現である. 従って用語抽出 と関係抽出それぞれで発生する損失を用いて $\boldsymbol{h}_{\mathbf{2}}$ を 生成するパラメータが更新される。この更新によっ てマルチタスク学習におけるそれぞれのタスクを解 くための表現に新しく情報が追加され，学習が改善 することが期待される。

## 3.2 用語抽出部

入れ子内部の用語と入れ子外部の用語の違いが用語を構成するトークンの数であることに注目し，本提案モデルはトークンの構成数毎に 2 值 ${ }^{1)}$ の出力を するモデルとなっている．図中の五角形の「長さ $i\rfloor$ という演算は，長さ $i$ のトークン列の表現を得る畳 み込み演算である. 以下の式で表される。なお，モ デルは稲熊ら [4]のものを用いている.

$
\boldsymbol{v}_{\boldsymbol{i}}=\operatorname{spanCNN}_{i}\left(\boldsymbol{h}_{\mathbf{2}}\right) \quad \forall i \in\left[1, \ldots, n_{\text {tok }}\right]
$


ここで $\operatorname{spanCNN}_{i}$ はカーネルサイズ $i$ のフィルタに よる畳み込み演算を表す. $n_{t o k}$ は用語を構成する トークン数に対応しており，学習を行う前に与える ハイパーパラメタである. 次に $n_{t o k}$ 個の中間表現 $v_{i}$ に対して共通の全結合層をそれぞれ作用させる.式としては以下のようになる。

$
\boldsymbol{l}_{\boldsymbol{i}}=\text { FullyConnected }_{\text {one }}\left(\boldsymbol{v}_{\boldsymbol{i}}\right)
$

全結合の出力は $n_{t o k}$ 個のカーネルサイズ毎に対応 したトークン数長のシーケンスになる. 出力の中身 はカーネルサイズの用語を構成するトークンの開始位置に 1 が立つものである．損失は以下の式で表さ れる。

$
L_{\text {entity }}=\sum_{i=1}^{n_{\text {tok }}} \sum_{j=1}^{l} y_{i}^{j} \log \left(l_{i}^{j}\right)
$

ここで $n_{t o k}$ はモデルの出力数すなわち用意するフィ ルタ数を表し， $l$ は一文におけるトークン数を表す.各トークンに対する予測 $\hat{l}$ と正解 $y$ との差を交差エ ントロピーで定義する. 各フィルタに対応する出力 の和をとったものを損失とする.

## 3.3 ペア作成部

ペア作成部（Pair Process）において，用語抽出で 抽出された用語からぺアを作成し，関係抽出用に データ整形を行う。用語抽出で抽出された用語が入 れ子構造を構成する場合は，一番大きい単位の用語

のみをぺア作成の対象とする。

作られた各ぺアに対してアノテーションファイル を参照して関係ラベルを付与し，（関係ラベル，用語 1, 用語 2）のトリプレットを作成する. このト リプレットの用語 1 と用語 2 の情報を用いて関係ラ ベルを当てることが関係抽出タスクになる. ペア作成部では, 用語 1 と用語 2 の用語位置ベクトルも作成する. 用語位置ベクトルは一文のトークン数の長 さの次元数が 1 のベクトルで, 用語が存在する位置 に 1, 用語では無い位置には 0 が立つべクトルであ る. 一文から $n_{\text {entity }}$ 個の用語が抽出された場合, 2 つの用語を選択してぺアを作成するので $n_{\text {entity }} \mathrm{C}_{2}$ 個 のペアを作成する。

## 3.4 関係抽出部

関係抽出部はトリガワードを考慮した関係抽出 モデルである. (2) 式の中間表現 $\boldsymbol{h}_{\mathbf{2}}$ に対してトリガ ワードの情報を追加で与えて MultiHeadAttention 層 の入力とし, 関係を求めるモデルとなっている. 最初にトリガワードの情報をアノテーションファイル から参照して $v_{\text {trig }}$ を作成する。v $v_{\text {trig }}$ は長さが一文中のトークン長 (SeqLen) で次元が 1 のベクトルで ある. 対応するトークンに対してトークンがトリガ ワードの場合は 1 が入り，トリガワードではない場合には 0 が要素として定義されるべクトルである. この $v_{\text {trig }}$ に対して平均 0 分散 1 の正規分布に基づ いた重みで初期化される行列を用いた埋め込み処理 を行う。

$
\boldsymbol{h}_{\text {trig }}=\text { Embedding }\left(\boldsymbol{v}_{\text {trig }}\right)
$

この $\boldsymbol{h}_{\text {trig }}$ に対して中間表現 $\boldsymbol{h}_{\mathbf{2}}$ を次元方向に Concat して全結合層に入力して $\boldsymbol{q}$ を生成する.

$
\boldsymbol{q}=\text { FullyConnected }_{q}\left(\boldsymbol{h}_{\mathbf{2}} \oplus \boldsymbol{h}_{\text {trig }}\right)
$

$k, v$ は以下の式に沿って作成し， $q, k, v$ を MultiHeadAttention 層の入力とし， $\boldsymbol{h}_{\mathbf{3}}, \boldsymbol{W}$ を生成する

$
\begin{aligned}
\boldsymbol{k} & =\text { FullyConnected }_{k}\left(\boldsymbol{h}_{\mathbf{2}}\right) \\
\boldsymbol{v} & =\operatorname{FullyConnected}_{v}\left(\boldsymbol{h}_{\mathbf{2}}\right) \\
\boldsymbol{h}_{\mathbf{3}}, \boldsymbol{W} & =\operatorname{MultiHead}(\boldsymbol{q}, \boldsymbol{k}, \boldsymbol{v})
\end{aligned}
$

この Attention は query に対してトリガワードの情報 を加えたものである. query に対しての情報付加な ので「文中における関連度を知りたいもの」として トリガワードを加えていることになる. key, value には $\boldsymbol{h}_{\mathbf{2}}$ の情報が含まれていることを考慮すると，得られる $\boldsymbol{h}_{3}$ は「文全体におけるトークンの内トリ
ガワードに関連するトークンに対して，強く注意が かかった表現」という解釈が可能である. これは 「トリガワードが存在する場合，トリガワードと文全体の文脈との関連性」を考慮することで関係抽出 の精度が向上することを期待している.

次に得られた $\boldsymbol{h}_{3}$ に対してスキップコネクション と畳込み層を 2 層を通して中間表現 $\boldsymbol{h}_{4}$ を作成する。

$
\begin{aligned}
& \boldsymbol{h}_{\mathbf{3}}^{\prime}=\operatorname{CNN}\left(\boldsymbol{h}_{3}\right)+\boldsymbol{h}_{\mathbf{3}} \\
& \boldsymbol{h}_{\mathbf{4}}=\operatorname{CNN}\left(\boldsymbol{h}_{\mathbf{3}}^{\prime}\right)+\boldsymbol{h}_{\mathbf{3}}
\end{aligned}
$

次にペア作成部で作成した用語位置ベクトルと $\boldsymbol{h}_{\mathbf{4}}$ を用いて関係抽出に用いる 2 つの用語の表現 $\boldsymbol{e}_{\mathbf{1}}$ と $e_{2}$ を獲得する。

$
\boldsymbol{e}_{\boldsymbol{i}}=\boldsymbol{p} \boldsymbol{e}_{\boldsymbol{i}} \odot \boldsymbol{h}_{\mathbf{4}} \quad \forall i \in[1,2]
$

ここで $\boldsymbol{p}_{\boldsymbol{i}}$ は $i$ 個目の用語位置ベクトル，๑は要素積を表す. 得られた $e_{1}$ と $e_{2}$ に対して Maxpooling の 演算を行いそれぞれの 1 つのベクトルに整形する。

$
\boldsymbol{e}_{\boldsymbol{i}}^{\prime}=\operatorname{Maxpooling}\left(\boldsymbol{e}_{\boldsymbol{i}}\right) \quad \forall i \in[1,2]
$

ここで $\boldsymbol{e}_{i}^{\prime}$ は複数トークンから構成される用語であ る.この $\boldsymbol{e}_{\boldsymbol{i}}^{\prime}$ をそれぞれ全結合層を入力して用語と しての表現を獲得し，それらのべクトルの和をとっ てから最後に全結合層を通して用語間に存在する各関係の確率を出力する．以下の式で表される。

$
\begin{aligned}
\boldsymbol{e}_{i}^{\prime \prime} & =\text { FullyConnected }\left(\boldsymbol{e}_{\boldsymbol{i}}^{\prime}\right) \quad \forall i \in[1,2] \\
\boldsymbol{e}_{\boldsymbol{r} \boldsymbol{e}} & =\boldsymbol{e}_{1}^{\prime \prime}+\boldsymbol{e}_{2}^{\prime \prime} \\
\boldsymbol{l}_{\boldsymbol{r} \boldsymbol{l}} & =\text { FullyConnected }\left(\boldsymbol{e}_{\boldsymbol{r} \boldsymbol{e}}\right)
\end{aligned}
$

関係抽出を行うことによる一文の損失は以下のよう になる。

$
L_{\text {relation }}=\sum^{n_{\text {entity }} \mathrm{C}_{2}}\left(\sum_{i=1}^{r} y_{i} \log \left(\boldsymbol{l}_{\text {rel }}\right)_{i}\right)
$

ここで $r$ は関係ラベルの種類数であり， $n_{\text {entity }}$ は用語抽出が一文から抽出した用語数である. 各関係に 対して損失が発生し，それらの全ての和をとったも のを関係抽出の損失とする。一文に対するマルチタ スク学習モデル全体の損失としては，用語抽出の損失と合わせて以下のようになる.

$
L_{\text {all }}=L_{\text {entity }}+n L_{\text {relation }}
$

この損失をすべての文に対して，最小化することで マルチタスク学習を実現する。
表 1 関係抽出の対象ラベル数

## 4 実験

4.1 節で今回実験に用いるデータについて述べ， 4.2 節で実験設定について述べる. 4.3 節ではマルチ タスク学習モデルで行った用語抽出と関係抽出の実験について述べる.

## 4.1 対象データ

用いたデータは機械加工の切削加工に関する教科書文で文中に関係ラベルが存在する 794 の文を学習 714 と評価 80 に分割する. データ中の用語ラベル は「機械加工用語である」という Machining である. また，この 794 文の内トリガワードが含まれる文は 149 文で全体の 18.4\%であった。関係ラベルは，用語 A と用語 Bに「A が大きくなれば B が大きくな る」という正の相関を表す Positive の関係，「A が大 きくなると B は小さくなる」という負の相関を表す Negative の関係，「AはBの一種である」という Sub の関係，「A は B と何らかの定性的な関係がある」 という Relation の関係の四種類である.

## 4.2 実験設定

本節では行った実験の全体に共通する設定を述べ る. 最適化アルゴリズムは学習率 0.001 の Adamを 用いた. 用語抽出における用語のフィルタ数 $n_{t o k}$ は 4 とした. これは対象のデータにおける用語を構成 するトークン数が四つまでで全体のトークンの $96 \%$ を越えることが分かったためである.

## 4.3 マルチタスク学習による関係抽出

タスクの難易度に差がある用語抽出タスクと関係抽出タスクにおいて，用語抽出と関係抽出の同時学習モデルによるマルチタスク学習を行うことによる 関係抽出の精度評価実験について述べる. このマル チタスク学習において, 学習初期から用語抽出と関係抽出を同時に行うことは精度が安定しない. その 理由として, 関係抽出の対象とする用語ぺアが用語抽出で抽出された用語から作成されることが挙げ られる。実際に，最初からマルチタスク学習を行う と, 用語の抽出精度が安定していないため, 関係抽表 2 学習法の違いによる評価データでの $\mathrm{F}$ 值

出が対象とする用語ぺアの数が多くなってしまうこ とがあり，GPUメモリに載らず，処理がそもそも不可能であった. そこでマルチタスク学習モデルにお ける関係抽出は学習全体の半分は用語抽出のみを行 い，半分以降は関係抽出も行うマルチタスク学習モ デルとして評価を行った. 表 2 に実験結果を示す. ベースラインモデルは用語抽出と関係抽出を別々で 行ったモデルである．結果を見ると用語抽出と関係抽出どちらのタスクにおいてもマルチタスク学習モ デルの方が高い精度が得られることが分かった. こ の結果から，マルチタスク学習モデルにおける共有部の中間表現 $\boldsymbol{h}_{\mathbf{2}}$ が用語抽出・関係抽出の両タスク にとって必要な情報を獲得していることを示唆して いる.

## 5 おわりに

本研究は熟練者同等の知識が必要となる中で，技術文書等のテキストから機械加工因子と関係を抽出 することを目指し，入れ子構造を考慮した用語抽出 とトリガワードを考慮した関係抽出を同時に学習す るマルチタスク学習モデルを提案した. マルチタス ク学習をおこなうことで，用語抽出，関係抽出とも にベースラインより高い抽出精度が実現できること を示した.

今後の課題としては，マルチタスク学習モデルの 学習方法についてのより詳細な検討, 結果のより詳細な解析が挙げられる。

## 参考文献

[1] 増田ら. Trigger word と部分文字列を用いた機械加工用語の関係抽出. 言語処理学会 第 22 回年次大会 発表論文集, pp. 573-576, 2016.

[2] Taku Kudo and John Richardson. Sentencepiece: A simple and language independent subword tokenizer and detokenizer for neural text processing. CoRR, Vol. abs/1808.06226, , 2018.

[3] Yohei Kikuta. Bert pretrained model trained on japanese wikipedia articles. https://github.com/yoheikikuta/ bert-japanese, 2019.

[4] 稲熊陸, 小島大, 東孝幸, 三輪誠, 古谷克司, 佐々木裕.入れ子構造を考慮した機械加工用語抽出. 言語処理学会第 26 回年次大会 (NLP2020) P5-31, 2020.
 稲熊陸 ${ }^{1}$ 小島 “ $^{2}$ 東孝幸 ${ }^{2}$ 三輪誠 ${ }^{1}$ 古谷 克司 ${ }^{1}$ 佐々木 裕 ${ }^{1}$ 1 豊田工業大学 2 株式会社ジェイテクト  