LLMを活用した生活行動ナレッジグラフの構築
ナレッジグラフ推論チャレンジ2023～生成AI時代のナレッジグラフ構築技術～
所属： 青山学院大学 森田研究室
氏名： 青山 仁
応募部門： 一般部門
1

構築したナレッジグラフ⚫日常生活における行動を表現したナレッジグラフ• 「ナレッジグラフ推論チャレンジ【実社会版】2022」で提供されているナレッジグラフ• 「イベント」とそれに対応する「行動」、「対象物」、「エージェント」、「場面間の関係」などで表現される
Relax on sofa

characteragent
livingroom

hasEvent

hasEvent

hasEvent

Activity

EventAction

ObjecthasEvent

objectevent0nextEventactionevent1
actionwalk

nextEvent

event2nextEventfind

actionobjectsit

objectsofa

objectevent3
action※一部分のみを表現2

ナレッジグラフの構築手法 ①⚫VirtualHome2KG• 家庭用シミュレータ VirtualHome（VH）を用いて、「ソファで寛ぐ」、「テレビを見る」などの日常的な行動（アクティビティ）のシミュレーション情報をナレッジグラフとして合成するシステム→ VHで日常的な行動をシミュレーションできれば、ナレッジグラフが構築可能⚫VHでのシミュレーション実行方法• 「アクション」、「オブジェクト」、「オブジェクトのID」の組のシーケンス表現（アクションスクリプト）を用いる→ アクションスクリプトを自動生成できれば、ナレッジグラフの自動構築が可能

Action Script[Walk] <livingroom> (11)[Walk] <sofa> (239)[Find] <sofa> (239)[Sit] <sofa> (239)3ナレッジグラフの構築手法 ②⚫LLM（GPT-3.5-Turbo）を利用したアクションスクリプト自動生成手法の提案をする＝ LLMを利用したナレッジグラフ構築手法の提案
Activity name

入力は、日常的な行動を表現する
アクティビティ名とする

Ex: Relax on sofa
提案部分
アクションスクリプト
自動生成

Action Script[Walk] <livingroom> (11)[Walk] <sofa> (239)[Find] <sofa> (239)[Sit] <sofa> (239)

Knowledge Graph
VirtualHome2KG

4利用したデータ⚫VHデータセット• アクティビティ名，行動説明文，アクションスクリプトをクラウドソーシングにより収集 [Puig+ 2018]
Relax on sofa ⇐ アクティビティ名（抽象的タスク記述）
I turn on the tv and sit in the sofa. I watch the tv. ⇐ 行動説明文[WALK] <livingroom> (1)[WALK] <tv> (1)[SWITCHON] <tv> (1)[WALK] <sofa> (1)[SIT] <sofa> (1)[TURNTO] <tv> (1)[WATCH] <tv> (1)⇐アクションスクリプト[Puig+ 2018] X. Puig, et al. “VirtualHome: Simulating Household Activities via Programs” CVPR 2018.

5

アクションスクリプト自動生成の概要
アクティビティ名
Ex: Go to toilet

アクションのステップ
1. Walk to the bathroom
2. Walk to the toilet
3. Find the toilet
4. Sit on the toilet

Comp.1

LLMによる詳細な行動説明文の生成

行動説明文
Walk to the bathroom, walk to the toilet,
find the toilet, and sit on the toilet.

Comp.3
Sentence Embeddingsによるアクションスクリプト変換

アクションスクリプト[Walk] <bathroom> (1)[Walk] <toilet> (1)[Find] <toilet> (1)[Sit] <toilet> (1)Comp.2

LLMによるアクションのステップ生成

Comp.4
アクションスクリプトの実行検証・修正

6

Comp.1
LLMによる詳細な行動説明文の生成 ①⚫LLMを用いて、アクティビティから詳細な行動説明文を生成する
プロンプト
user role
Describe the details of the following activity: {activity}#activityは変数

system role
1. You can use only the following actions in the description:
Walk, Find, Sit, ... #VH上で実行可能なアクション
2. You can use only the following objects and rooms in the description:livingroom, tv, sofa, … #環境の情報（環境内に存在する物または部屋）

7

Comp.1
LLMによる詳細な行動説明文の生成 ②⚫方法１：Zero-shotで生成⚫方法２：Few-shotで生成 → VHデータセットを活用

Relax on sofa ⇐ アクティビティ
I turn on the tv and sit in the sofa. I watch the tv.
行動説明文[WALK] <livingroom> (1)[WALK] <tv> (1)[SWITCHON] <tv> (1)[WALK] <sofa> (1)アクションスクリプト[SIT] <sofa> (1)[TURNTO] <tv> (1)[WATCH] <tv> (1)アクティビティに対応する「行動説明文」 or 「アクションスクリプトを変換した説明文」
を例として与える２種類の方法を提案
Question
Describe the details of the following activity: Relax on sofa
Answer: Pattern1
I turn on the tv and sit in the sofa.

VHデータセット#2行目の行動説明文

Answer: Pattern2
I walk to livingroom, walk to the tv, switch on the tv, …

#4行目以降のアクションスクリプトを説明文にする
8

Comp.2
LLMによるアクションのステップ生成⚫LLMを用いて、行動説明文からアクションのステップを生成する→ 生成したアクションのステップはリスト形式で保存する
プロンプト
user role

Rewrite the following description as action steps: {description}#descriptionは変数

system role
1. You can use only the following actions in the description:
Walk, Find, Sit, ... #VH上で実行可能なアクション
2. You can use only the following objects and rooms in the description:livingroom, tv, sofa, … #環境の情報（環境内に存在する物または部屋）
9Comp.3
Sentence Embeddingsによるアクションスクリプト変換⚫Hash Tableの作成• VH上で実行可能な行動と、環境内に存在する物または部屋から成る得る行動文を Key として作成する• 行動文（Key）に対応するアクションスクリプトを Value として作成する⚫アクションスクリプト変換• 生成したアクションのステップに対して、作成した辞書内で類似度の行動文（Key）を選択する• 選択した行動文（Key）に対応するアクションスクリプト（Value）に変換する

アクションスクリプト変換のための Hash Table
KeyValuewalk bathroom[walk] <bathroom> (1)walk bedroom[walk] <bedroom> (1)…

…

sit chair[sit] <chair> (1)sit sofa[sit] <sofa> (1)…

…

※ 類似度の計算には、Sentence Transformersの技術を用いる

10

Comp.4
アクションスクリプトの実行検証・修正⚫アクションスクリプトの実行検証• VHシミュレータを用いて実行可能か検証する• 実行不可であった場合、原因となるアクションのステップを特定し、エラーメッセージを出力する⚫アクションスクリプトの修正• エラーメッセージの内容から、アクションの対象となるオブジェクトとの距離が遠いことが原因である場合、対象オブジェクトに近づくアクション（Walk）を追加する• その他の原因の場合、失敗したアクションステップを削除する

11

評価概要
⚫構築したナレッジグラフが、入力となるアクティビティを表現できているかを評価する→ VirtualHome2KGを利用して構築するナレッジグラフは、利用するデータに依存する→ 生成したアクションスクリプトの評価をする⚫アクションスクリプト自動生成手法の評価• アクティビティから生成したアクションスクリプトの正しさ（妥当かどうか）を正解データ（VHデータセット）を用いて評価• アクティビティから生成したアクションスクリプトの実行率（実行可能かどうか）⚫評価用データ： VHデータセット（197個）
12

評価指標
⚫LCSscore• 行動の順序を考慮して一致度を計算する• LCS（Longest Common Subsequence）をもとに以下のように定義
𝑳𝑪𝑺(𝑮𝒆𝒏𝒆𝒓𝒂𝒕𝒆𝒅 𝑨𝒄𝒕𝒊𝒐𝒏 𝑺𝒄𝒓𝒊𝒑𝒕, 𝑪𝒐𝒓𝒓𝒆𝒄𝒕 𝑨𝒄𝒕𝒊𝒐𝒏 𝑺𝒄𝒓𝒊𝒑𝒕)
𝑳𝑪𝑺𝒔𝒄𝒐𝒓𝒆 =𝒎𝒂𝒙 𝒍𝒆𝒏𝒈𝒕𝒉 𝑮𝒆𝒏𝒆𝒓𝒂𝒕𝒆𝒅 𝑨𝒄𝒕𝒊𝒐𝒏 𝑺𝒄𝒓𝒊𝒑𝒕 , 𝒍𝒆𝒏𝒈𝒕𝒉 𝑪𝒐𝒓𝒓𝒆𝒄𝒕 𝑨𝒄𝒕𝒊𝒐𝒏 𝑺𝒄𝒓𝒊𝒑𝒕⚫Correctness• 行動の順序は考慮せず一致したアクションステップの数（正解数）をとり、以下の式でスコアを計算

𝑷𝒓𝒆𝒄𝒊𝒔𝒐𝒏 =𝑵𝒖𝒎𝒃𝒆𝒓 𝒐𝒇 𝑪𝒐𝒓𝒓𝒆𝒄𝒕 𝑨𝒄𝒕𝒊𝒐𝒏 𝑺𝒕𝒆𝒑𝒔,
𝒍𝒆𝒏𝒈𝒕𝒉 𝑮𝒆𝒏𝒆𝒓𝒂𝒕𝒆𝒅 𝑨𝒄𝒕𝒊𝒐𝒏 𝑺𝒄𝒓𝒊𝒑𝒕

𝑵𝒖𝒎𝒃𝒆𝒓 𝒐𝒇 𝑪𝒐𝒓𝒓𝒆𝒄𝒕 𝑨𝒄𝒕𝒊𝒐𝒏 𝑺𝒕𝒆𝒑𝒔

𝑹𝒆𝒄𝒂𝒍𝒍 =,𝒍𝒆𝒏𝒈𝒕𝒉 𝑪𝒐𝒓𝒓𝒆𝒄𝒕 𝑨𝒄𝒕𝒊𝒐𝒏 𝑺𝒄𝒓𝒊𝒑𝒕
𝑷𝒓𝒆𝒄𝒊𝒔𝒊𝒐𝒏 × 𝑹𝒄𝒂𝒍𝒍
𝑭𝟏 𝑺𝒄𝒐𝒓𝒆 = 𝟐 ×
𝑷𝒓𝒆𝒄𝒊𝒔𝒊𝒐𝒏 + 𝑹𝒆𝒂𝒄𝒂𝒍𝒍⚫実行率（%）• 生成したアクションスクリプトのうち実行可能なアクションスクリプトの割合
13

評価手順
1.

VHデータセットのアクティビティ名を入力として、アクションスクリプトを生成する

2.

入力とするアクティビティに対応するアクションスクリプトを正解データとして、LCSscoreとCorrectnessを評価する※ アクティビティに対応するデータが複数種類存在する場合、それぞれのデータに対して評価を行い、最高値を最終的な評価値とする

3.

VHシミュレータを用いて、生成したアクションスクリプトの実行率を評価する

14

Few-shot学習での例の選択方法
1.

ランダムに選択2.

入力のアクティビティと類似度の高いアクティビティのデータを選択（入力と同じアクティビ
ティのデータは選択しない）

以下、共通のルール⚫選択するデータの個数は１０個⚫アクティビティに対応するデータが複数個存在する場合、その中からランダムに１つ選択する⚫アクティビティに重複がないように例を選択

15

評価結果

Precision

RecallF1 Score

0.32

0.38

0.61

0.44

96.5

Random

0.40

0.52

0.57

0.51

100.0Sim.(Top)

0.42

0.62

0.60

0.57

100.0

Random

0.57

0.72

0.76

0.72

100.0Sim.(Top)

0.60

0.77

0.79

0.76

100.0

例の種類

選択方法

Zero-shot--

Description
Few-shot
ScriptCorrectness

実行率
（%）

手法

LCSscore

16付録
生成したアクションスクリプト、構築したナレッジグラフの公開先（一部）

URL: https://github.com/JinAoyama/kgrc2023

QR：

17