The Effect of Realistic Appearance of Virtual Characters in Immersive Environments - Does the Character’s Personality Play a Role?

The Effect of Realistic Appearance of Virtual Characters in Immersive Environments - Does the Character’s Personality Play a Role?

Katja Zibrek, Elena Kokkinara, Rachel McDonnell
Transactions on Visualization and Computer Graphics
2018 IEEE

Abstract

page link

Motivation

What issues or problems did they try to solve?

They tried to solve whether different types of rendering styles would directly influence appeal or a character's personality was the most important factor for appeal.

What was lacking in existing research?

The study of Zibrek showed there was a possible link between appearance and personality but only investigated two styles and was conducted on screen.

Method

What system did they create? Why did they think that the system design was well justified?

They used five different rendering styles. Realistic >> highest level of realism Toon CG >> less realistic cartoon character Toon Shaded >> the least realistic character Creepy >> designed to induce a sense of discomfort by using grossly enlarged eyes Zombie >> additionally changing the diffuse map for the skin and tye eyes were an unnatural color

they instructed the actor to react to different emotional situations based on the Big Five traits
as the theory was perceived by many to be the standard description of human personality.

What kind of surveys did they do? How did they justify their study design?

What experiments did they conduct? How did they justify their experimental design?

Waiting Room An instruction box appeared in front of the participant’s view and it guided the participant to do the first task to be familiar with a realistic virtual character. After the task, the participant could enter the training room.

Training Room The participant was asked to remember word tags in the room

Experiment Room In the experiment room, the participant was instructed by the character which was randomly assigned to rendering style and personality. The participant remembered the words and answered them as did in the training room.

Insight

What results did they obtain? Under what conditions did it work, and under what conditions did it not work?

They used three measures:subjective responses, an implicit measure and a behavioral measure

Rendering style does not affect overall perceptions, even the perceived realism. Unexpectedly zombie appearance was the best proximity result.

As for personality, it contributed to the variety of responses on empathy, affinity and even realism, but did not affect the perceiver's behavior.

What are the new findings? What are the findings that could be used in other applications or systems?

Rendering styles did not vary significantly in appeal. Rendering Style only changes its appeal in the combination of suitable personality.

A cartoon looking character is attributed to its personality by the situation.

Contribution Summary

Zibrek tried to investigate the relationship between render styles and character’s personality and found affinity towards the virtual characters is a complex interaction between the character’s personality and appearance.

To Stylize or not to Stylize? The Effect of Shapes and Material Stylization on the Perception of Computer-generated Faces

To Stylize or not to Stylize? The Effect of Shapes and Material Stylization on the Perception of Computer-generated Faces

Eduard Zell, Carlos Aliaga, Adrian Jarabo, Katja Zibrek, Diego Guierrez, Rachel McDonnell, Mario Botsch
Bielefeld University, UniversidaddeZaragoza, Trinity College Dublin
ACM

Abstract

page link

Yatani Format

Motivation

What issues or problems did they try to solve?

Designing believable characters remains a challenging task. They wanted to analyze two of the most influential factors for a character's looks.

What was lacking in existing research?

Some works have already investigated the role of few of the many variables involved in the creation of 3D faces, such as rendering style, anthropomorphism or applying 2D filters. But shapes and materials have not yet been researched which affects 3D characters.

Method

What system did they create? Why did they think that the system design was well justified?

1a. They first investigated the influence of shape and material. They used three types of shapes (cartoon, middle, realistic) and three types of materials (cartoon, middle, realistic).

1b. They investigated shading and lighting by modifying the lighting transparency.

1c. They investigated the effect of pigmentation variation filtering through the gaussian blur of the kernel. 2. They added a different agender character for the experiment. They set 5 stylizations times 5 material levels times 5 expressions(surprise, angery, sad, happy and neutral). 3. They investigated the effect of shape on the recognition and intensity of the expression.

What kind of surveys did they do? How did they justify their study design?

From McDonnell et al. 2012 , they employed the following scales. (Appeal, Eerie, Relstic, Familiar, Attractive)

Much of the information that people use to evaluate virtual characters is available in a still image[McDonnell et al.2012]

What experiments did they conduct? How did they justify their experimental design?

The user’s task and the rating scales are explained before the experiment All stimuli were presented in a random order and shown for 3 seconds each. Participants were asked to rate stimuli according to the above scales after each stimulus presentation.

Insight

What results did they obtain? Under what conditions did it work, and under what conditions did it not work?

1a. Appeal and Reassurance were obtained with good results in toon and middle. 1b. The difference between realism and toon was very small in lighting. 1c. Blurred texture affected positive in Realism and Appeal with Realistic texture.

  1. They obtained good results in level2 and level3.
  2. In effect of shape on recognition, only the angry expression did not work. And the effect of intensity, the more shape was being tooned, the less intensity they obtained.

What are the new findings? What are the findings that could be used in other applications or systems?

Shape is the key attribute for perceived realism, however realistic materials do not increase realism of stylized shapes. But appeal, erriness and attractiveness are mainly affected by material, especially albedo texture is the dominant factor.

Contribution Summary

Eduard analyzed the relationship between shape and material in 3D characters and found shape is the main factor for realism and material is key to appeal, erriness and attractiveness.

”Author" did "Method" to solve "Motivation" and found "Insight". *Attention : which is a template Sentence!**

No.14! Tsundere Intaration ~Evaluation of Tsundere AR agent using measured behavior data aimed at behavior change~

Tsundere Intaration ~Evaluation of Tsundere AR agent using measured behavior data aimed at behavior change~

Tainaka Keishi
The Virtual Reality Society of Japan

Abstract

We propose an interaction system using Tsundere AR agent based on the measurement of Tsundere behavior data that is actually used commercially. We verified the effectiveness of the proposed method on the willingness of continuing the work

page link

Yatani Format

Motivation

They proposed an interaction that combines cool behavior for punishment and kind behavior for reward. But they haven't verified its effectiveness.

What issues or problems did they try to solve?

Operant conditioning is only possible if there is a good relationship between the person who encourages the behavior and the person who is encouraged. They would like to establish good relationships and have the person who is encouraged continue to work with motivation through Tsundere interaction.

What was lacking in existing research?

The feedback from the avatar is only audio and appearance changes, and more complex ways such as avatar behavior.

Method

What system did they create? Why did they think that the system design was well justified?

The users who use the System wear Holo Lense 2 through which they watch AR agent. Researchers measured Tsundere behavior data (utterances, audio and action).

They empirically set the situation 1.Before Work, 2.After Work, 3. Before Breaktime, 4. After Breaktime, 5. Being Tired and 6. Can’t Concentrate.

Staff of maid cafes set the sentences for Tsuntsun, Tsundere and Deredere. Example sentences are shown below. Tsuntsun “Humm. Well done!”(ふん、よくやったじゃない) Tsundere “How long is this taking! Bu..., but you did your best in your own way.”(どれだけ時間がかかっているのよ!で、でも、君なりに頑張ったのね。) Deredere “Thank you for your hard work! You worked hard all day and my master is the best in the world! ” (お疲れ様でした。今日もいっぱい頑張って、ご主人様は世界一優秀です)

Actual maid cafe staff play a role based on each utterance and measured posed data using mic and motion tracking device (Azure Kinect DK). The maid cafe staff wear clothes for every use in work and they set a person in front of the staff.

What algorithm did they create? Why did they consider that the algorithm design was good enough?

TDI : Tsundere Interaction (cool behavior and kind behavior) DDI : Deredere Interaction (only kind behavior) NDI : Non dere Interaction (No behavior)

They have the test subjects do tasks performed by a single person who is unlikely to feel approval or responsibility from those around him or her.

What kind of surveys did they do? How did they justify their study design?

Corrent study!

What experiments did they conduct? How did they justify their experimental design?

Test subjects choiced an agent which they liked the best. They performed tasks twice in a row. Test subjects got the behavior from the agent before The task, 5 minutes later from start and after the task Answered questions about achievement, recognition, interest, growth, responsibility, motivation, boredom.

Insight

What results did they obtain? Under what conditions did it work, and under what conditions did it not work?

They obtained good results about achievement, recognition, interest, growth, responsibility, motivation in TDI and DDI, and NDI did not work.

What are the new findings? What are the findings that could be used in other applications or systems?

DDI and TDI did not differ a lot.

Test subjects said good feedback such as “I’m glad it was slow and steady in TDI ”, “I got motivation from the last deredere”. In contrast, some said “I want to be cheered at first instead of being punished”, “I was irritated at the first Tsun utterances”.

Contribution Summary

Tainaka did Tsundere Interaction to solve behavior change and found Tundere Interaction and Deredere Interaction motivate people.

12本目!A Persona-Based Neural Conversation Model.

ではでは、今度はChatbotに詳細な人物像(ペルソナ)を組み込んだモデルについて、見ていきたいと思います!

重要なのは4からっ!

Personalized Response Generation

この研究では2つのpersona-basedモデルを導入している。Speaker ModelとSpeaker-Addressee Modelがある。Speakerモデルが自分自身についての文章を生成するモデルで、Speaker-Addressee Modelは対話でのペルソナに応じて応答を適応させるモデルなのかな?

Notation

M は inputの単語列として M = {m_1, m_2, ..., m_I}として表記して、R は responseの単語列として R = {r_1, r_2, ..., r_j, EOS}として、表記している。 んで、Kがword embeddingのサイズで、Vがvocabularyのサイズとして定義されている。

Speaker Model

では、Speaker Modelについて見ていきたいと思います。 Speaker ModelはChatbot自身のペルソナをembeddingとして、表現するモデル。 年齢、性別、方言などの個人情報(?)に基づいた内容とスタイルを応答に埋め込みたかったけど、データセットに反映するのが大変だから、年齢とか住んでいるところとかでクラスター化したみたい。

つまり、Twitter上の個人情報に合わせて、「20代,男,関東在住」みたいな感じ?

v_i について、プログラムで書くとこんな感じで、

v_i = tensorflow.keras.layers.Embedding(V, K)
v_i = torch.nn.Embedding(V, K) 

埋め込みと表現して、LSTMにぶち込むみたい。 でも、tensorflowの方では

The model will take as input an integer matrix of size (batch, input_length), and the largest integer (i.e. word index) in the input should be no larger than 999 (vocabulary size).

ってあるんだけど、Vが1000未満のモデルってBERTじゃありえんぞ。まあ、pytorch使うからええんかな? ってか、この論文だとvocabraryのサイズが50,000とかなので、tensorflowはまず使えないってことかな?

Speaker-Adrresse Model

ここでは、相手によって言葉の表現を変えるということを学習する。 例えば、ツンデレでは好きな相手には「別にあんたのためじゃないんだからね。」みたいなセリフとなるところを、女友達には「うんうん。気にしないで。」みたいなセリフにするということ。

ここでは speakerのi, jを用意して以下の式で  V _ {i, j}という、ユーザーiからユーザーjへの発言をcoding する。

 V _ {i, j} = tanh(W _ 1 \dot v _ i + W _ 2 \dot v _ j)

これをpytorchで表現すると以下のようになる。

v_i = torch.nn.Embedding(V, K) 
v_j = torch.nn.Embedding(V, K) 
W_1 = torch.nn.Linear(K, K)
W_2 = torch.nn.Linear(K, K)
V_ij = torch.tanh(W_1(v_i) + W_2(v_j))

あとはこのV_ijについて、Speaker-Model と同様にしてseq2seqにぶち込むだけである。

Decoding and Reranking

応答の出力では beam-searchによる N-best listの生成を行って、このN-best listから最も良い応答を選ぶ。 bearm-searchのサイズは200(やっぱでかい。)で長さは20tokensを限度としている。 tokenの出力にtokenが出てきたやつはすべてN-best listに追加している。

「なるほど」とか「それな」みたいな汎用性の高くて中身のない発言を取り除くために、N-best listから A diversity-promoting objective function for neural conversation models.による方法で以下の数式を用いて選ぶ。

f:id:kaya-takashiro:20210929170029j:plain
n_best

第一項は入力のメッセージMとspeakerのvectorから、応答Rが生成される確率で、speakerに特有の確率の計算。 第二項は応答RからメッセージMが生成される確率で、「いってらっしゃい」と「いってきます」みたいな定型的な掛け合いに対しての確率の計算。 第三項はただ単に応答Rが長ければいいっていう項。

んで、これらの最適化にλとγが使われているんだけど、どうやっているのかは不明。多分、前述の論文で詳しく書かれているのかもしれない。 調べたら、以下の論文で見てくださいってあったorz.

BLUEへの最適化にはMinimum Error Rate Training in Statistical Machine Translationという論文が使われている.

Datasets

さてさて、みんな大好きなデータセットについて最後に見ていきます。

Twiiter Persona Dataset

このデータはtwitterのFireHouseによって集められたデータです。んで、このFireHouseが何かというと、Streaming APIに用意されている、全公開ツイートをリアルタイムに取得可能な機能という、ただデータを集めるのに最適なAPIです。公式ページ。 ただ、Streaming APIはenterprise専用だから個人での利用は難しいと思われる。

3-turn以上の会話に6か月間で60回以上参加していた人から集めている。 スライドを含めて、24,725,711個もの3-turnの会話を集めている。でも、TwitterのIDしか集められていないから、Speaker-Modelにしか使われていないらしい。

Twitter Sordoni Dataset

Microsoftのサイトでダウンロードできるデータセット。base-lineとして使用した。

Televison Series Transcripts

FirendsとBig Ban Tehoryっていうドラマ(?)の字幕を使っている。 データを抜き出したサイトはIMSBbっていうところ。でも、調べたときFriends消えてたorz. 他にもOpenSubtitleっていうサイトとかSubsceneっていうサイトでデータを集められるらしい。でも、こいつらには誰がしゃべったかっていう情報が抜けている。そのため、1対1の対話と仮定して学習したらしい。

つまり、まず初めに字幕のCharacterなしのデータセットでOpen-domain Chatbotをつくる。この時の v_i, v_j はともに0とする。そのあとで、FirendsとBig Ban Tehoryを使って、Personaの学習をしている。

Results

Speaker-Model でも、Speaker-Addressee Modelでも結果はMutual Information Setting等の定量的には変わらない。 定性的にはSpeaker-Addressee Modelでは固有名詞とかに強いっぽい。

11本目!Question retrieval using combined queries in community question answering

ではでは、恒例(?)のXioaIceで使われていた論文シリーズに参りたいと思います。

XioaIceでは生成ベース、検索ベース、ルールベースが使われていましたが、こいつはそのうちの検索ベースで使われていたやつ。 具体的にはPaired Dataに対して、(Question, Answer)としてデータベースに保存しているところを、Questionで検索してAnswerを持ってくるのにこのモデルが使われていたね。

特にCore ChatにおけるCPSの2/3の高精度を占めているのがPaired Dataの検索モデルの結果だから心してかかろう(笑)

まあ、こいつが何をやっているのかを一言で言うと、Questionがあった時、Yahoo知恵袋とかのアーカイブデータから、もっとも答えっぽい回答を抜き出すためのシステムらしい。 っていうか、Yahoo知恵袋とかってCommunity question answering(cQA)っていうのね。

なんか、このシステムでは検索するときに、keywordsではなくsentenceで検索できるっぽい。まじで、どうやんの?

queryに関連した文から、(a)でquestionだけがドキュメントにあるパターンと(b)でquestionとanswerが両方共ドキュメントにある場合の2つのパターンでやってるっぽい。

(b)のやり方がわからん。 あと、IR(Information Retrieval) modelっていうので、Queryを引っ張ってるらしいんだけど、verctor space ,Okapi, language mdoelっていろいろあるのね。

よくわからんが、見ていこう!

まあ、よく見る単語入力の場合。転置インデックスとフレーズクエリっていうのを使うらしい。

転置インデックスっていうのが、いわゆる逆引きのことで、ドキュメントにどの単語が使われているのかを知るのがインデックス(Transormferのconvert_tokens_to_idsとかのイメージ)。単語がどのドキュメントに使われているのかを知るのが転置インデックスらしい。

なんか、聞いたことあるなって思ったら、Googleページランクとかの技術の一部らしい。

んで、単語を組み合わせて、n-gramとしてインデックスを作って、検索する方法は1998年にはあったぽい。まじかー20年以上も昔やん。

疑問点としては転置インデックスをつくる単語って全部っぽいけど計算量とかどうなんだろう?

っていうか、単語の種類が1000あるとして、n-gramの単語長さで考えると、それだけで1000000000のインデックスが必要になるし、マジでどうゆう仕組みなんだろう?

Question retrieval from FAQs

こいつは多分検索フォームとかに打ち込んで調べるやつ。よくある質問(Frequent Answers and Questions)の検索システムみたい。 ここで、クエリ検索の最も一番大きな問題は類義語。 QuestionとAnswer間の単語の違いとが重要らしい。WHY? 「君の心臓を喰らいたい」と「あなたのハートを食べてしまいたい」が意味的には同じって判断できるのに、コンピューターでは判断できないことか。 技術としてはQuestionの拡大や統計学の使用、メタデータの使用、フィッシャーカーネルフレームワークっていうよく知らんやつの使用、SVM、翻訳モデル、トピックモデルの使用、etc... Wow!どれを使えば良いんだ?

Question retrieval in cQA

こいつは多分、ドキュメントから質問を検索する技術 検索モデルは4つのVSM, Okapi Model, Language Model, translation modelの4種類があるっぽい。 translation modelで、質問の構成をTree構造で解析して、ルートからマッチングを行うのかな?全く想像がつかん。 Important phraseってあるけど、Tree構造のどこにあたるんだろう?そもそもTree構造から検索するシステムがわからん。

調べた感じ、重要な単語(Categoryに多く出てくるが、Docuemntsでは珍しい単語。いわゆるTopic モデルのやつ)から順番にTree構造に直して、最もTreeが近いものを検索するためのQuestionにしているっぽい。

その後の技術では、ドキュメントそのものをベクトル表現になおして、QueryとAnswerを組み合わせたベクトルに近いドキュメントを検索するみたい。統計情報と意味情報でQuestionとクエリの類似性を調べているみたい。まあ、RNNつかってるけど。

Using classification for question retrieval in cQA

前述のTree構造をどうやって作るのかが問題。Topic分類を使ってTreeを作るんだけど、ではどうやってTopicを分類して文章を集めましょうかってこと。 一般的な文章からどうやって分類をするのかが問題。 すぐに思いつくのが、Yahoo のTopicとかを教師データにしてあとはガンガンWebデータをぶち込んでいく方法 or sent2vecでドキュメントのベクトルでどうにかする方法だけど...。

SVM, Okapi Model, Translate model, syntactic tree matchingとか色々あるっぽい。 あと、加重および疑似関連性フィードバック手法っていうよくわからない方法で文章の分類だけでなく補完できるっぽい。

Use of combined queries for question retrieval in cQA

Information Retrievalのシステムでは単語を使って検索している。 んで、やっぱ基本は単語の頻度分析らしい。TF-IDFだよね。まあ、データを集めるのが大変だけど。

この研究ではcombined indexes と nextword indexesを使って検索した結果の比較みたい。phrase queryってなんだ?

Architecture of proposed methodology

検索モデルは、ドキュメントの表現、クエリの表現、検索関数の3つが重要みたい。 検索関数って検索して引っ張ってくる関数なのか、検索結果をランキング付する関数なのか、それとも両方なのか?

まあ、QAペアをどうやって集めるのかが大事みたいだけど。

Query and Document representation

ドキュメントとクエリの表現は一般的には term-document matrixを使って表現していたみたい。

f:id:kaya-takashiro:20210912021756p:plain

こいつに各マスに重みをつけて、単語の重みの合計値が最も近いドキュメントを引っ張ってくるみたい。 問題点としては文中の単語の位置情報や単語間の関係性が表現できないことらしい。 で、これを解決する方法は syntactic phrases 、graph-theoric approach 、 combined queries とかがあるみたい。

sytactic phrases は重要な単語から枝を伸ばしていって構造木を作り、クエリに最も近い木をさがす方法らしい。まあ、構造木の作り方は TF-IDF で重要度を測って一番重要なやつからつなぐとか?でも、そうすると、助詞とかの情報が取れないんだよね。どうするんだろう?

graph-theoric approach は単語間でグラフを作って、文の構造を解析し、クエリに最も近いドキュメントを取ってくる方法らしい。 どうやって重みつけるの?とか、解析のやりかたは?とかわからないこともあるけど、この論文では載ってない。

combined queriesはこの研究でやってる方法で、inverted indexes と nextword indexesの2つのデータ構造を使って、クエリとドキュメントの表現をしているみたい。

Inverted indexes

Information Retrieval Systemでよく使われている方法みたい。 検索keyにはboolean, position, phraseとかあるって書いてあるけど、どうやってんの?

Inverted indexって

(ドキュメントの番号, ドキュメント中の単語tの出現合計数, [ドキュメント中の位置のリスト]) で表されるみたい。これを 例えば「何」って単語のidを1125として、

1125,(<1, 1, [1]>, <8, 1, [10]>, <15, 2, [1, 5]>,...)

みたいな感じで表されるみたい。

Nestword list

Nextword listは単語と次の単語の組み合わせごとに id を振る方法らしい。 たとえば、「本 を」, 「本 に」, 「本 が」のidをそれぞれ 6, 19, 20として振る感じだね。

Combined inverted and nextword indexes

Combined queryでは、rare wordにはnextword listを使わずに、rare word以外ではそのまま idを振る感じだね。 例えば「何 を」「何 が」「コーヒー」にそれぞれ id を109, 23, 432 を振る感じ。 「コーヒー」は珍しいからそのままでidを振って、「何」は頻出単語だから nextword listと組み合わせてid振る。

Information retrieval methods

クエリとドキュメントについて数学的に表現して、検索するみたいだけど、クエリに対してスコアをつける方法がわからん。 combined queryをどうやって数学的に表現しよう?

Vector space model

Nをすべてのドキュメントの合計値、 f _ tを単語tの合計値、 t( f _ {t, d})wpドキュメントdにおける単語tの合計値とする。 各ドキュメンtにおいて、 W _ {q, t}は単語tにおける IDFで  W _ {d, t}は単語tにおけるTFとして計算するみたい。

んで、この式にぶち込むと。

f:id:kaya-takashiro:20210912204705p:plain
vsm

うーん。類義語とか単語の文章中の位置とかは考慮しないのか...。

Okapi BM25 model

Okapi BM25は Okapiのモデルに重み付けしたやつらしい。 こんな感じ。

f:id:kaya-takashiro:20210912211308p:plain
okapi

Language model

言語モデルを使ったやつ。

ドキュメントDの中で単語tが発生する確率は、すべてのドキュメントのコレクションで単語tが発生する確率とドキュメントDで単語tが発生する確率の合わせたやつで、これをクエリ中のすべての単語に対して行って、クエリのドキュメントDでの発生確率をだすみたい。

まあ、それぞれの発生確率はベイズ理論を用いて出すみたいだけど。

Expriments

まあ、実験結果を見た感じ、VSM + combined queries で作ればいい感じ。

でも、結局word2vecとかのやつで検索するやつはなかった。XioaIceがただの単語idしか使わないとは思わないし、多分もう一方の論文で、べつの検索関数でランキング付してるんだろうな。

Sentence BERTっていう、類似度検索をBertをFine-Tuningしてできるやつがあるから、あとで見てみよう。

10本目! Question Generation for Question Answering

さてさてさーて。Question Generationにやってまいりました。

Question Generationといえば、傾聴とかの必須スキル。とういうか、Chatbotでの会話の継続のためにぜひとも学習したいモデルですね。

では、早速見ていきましょう。

ちなみに今回の論文はMicro Softです。Microsoft Research Aisaなので、XioIceとかのQuestion Generationとかもこれかもしれない。

まあ、Question Generationていうのは、CNNを使った検索ベースのモデルと、RNNを使った生成ベースのモデルがあるみたい。 ここ、Seq2seq大好きだからなー。(XioIceのモデルもSeq2seq)

目的としては、会話の履歴からQuestion(Open Question と Closed Question の両方)を作りたい。

Question Generation

基本的にQuestion Generationは文章Sが与えられたときに、質問のリスト{Q}を生成したいみたい。 ってことは相手の会話の履歴の7分くらいをぶち込んで、Question Listを生成できるようになれればいいってこと。

Question Generationに用いる Engineは4つの機能が必要らしい。

1.Question Pattern Mining

データセットから質問文を抜き出すstepみたい。without any human anotaion effortってことは、文章の最後に「?」がついているかのPattern Maching とか、「何故」 とかの疑問詞とかを持っている文章を抜き出すみたい。 こっから、質問文自体のデータセットQを作るのか。

疑問点としてはここで固有表現抽出とかを使ってパターンを作るのか、それとも単語の置き換えとかをせずに質問文のパターンを作るのか?どっちだろう?それとも、別のパターン?

2.Question Pattern Prediction

文章Sから質問文にふさわしいパターンをN個抜き出すらしい。このstepではGeneration-based でもRetrival-basedでも変わらないみたい。

Question Generationにおける『推測』の意味は、検索ベースにおいては質問の候補を文章Sに基づいてrankづけすることらしい。では、生成ベースにおいては文章Sを入力として、seq2seqを使って新しいQuestionパターンを作ることらしい。

疑問点としてはGeneration-baseにおいて、質問文のデータセットQをどういうふうに使っているのか? seq2seqのモデルの訓練にしか使わないのか、それとも推論時にはどうデータセットQを使うのか、それともそれ以外の方法なのか?

3.Question Topic Selsection

質問文データセットQから、推論時の質問パターンQ_pから、qution topic の Q_tを選ぶらしい。このQ_tはどっから出てきたんだ? データセットQ?

4.Question Ranking

いろいろな特徴量を用いて、生成された質問のrankづけをするらしい。まあ、文章Sにはたくさんの質問文を作るための fact があるから、どの質問が最適かを決めるのがこのstepらしい。

会話の文章なら、できるだけ最後のfactを用いて、かつ話者が以前に言及していない質問を選ぶと良いってことか?ここらへんの rankづけは文章の種類によって変化するだろうし。

ではでは、1~4までの内容について、見ていきましょう。

Question Pattern Mining

Question Pattern について、固有表現のところかわからんが、一部を「#」に置き換える。

あと、ここでFQAの定義が出てくる。FQAってQuestion Patternが一定回数以上登場したら、Frequently Question-Answeringって定義している。

んで、問題となるのがQuestionのなかで、どこを#に置き換えるのかが問題となってくる。

ここで登場するのが重要度。なんの重要度かって言うと、わからん。

数式を見て見ると、


Importance(Q_t ^m)  = \sum_{Q_k} \delta (Q_t ^m, Q_k) \dot |Q_t ^m|

よくわからん。 \delta (Q_t ^m, Q_k) っていうのが、0か1を取る関数で、 Q_t ^mっていうのが、Q_tっていう文のm番目の単語らしい。ってことは、 Q_kっていう質問文の中に Q_t ^mの単語があるかどうかってことらしい。

んで、 |Q_t ^m|っていうのが Q_t ^mの全体の出現数らしい。

っていうことは、Q_tがいっぱい出てくるほうがImportanceが大きくなってくるみたい。Importanceが最も大きい Q_tをtopicとして、他のQuestion Patternから抜き出して、#に置換するみたい。

わからんのが、 Q_tは文章なのにどうやって抜くんだろう?

単語の質問があるってこと?「Vivy?」みたいな文章が、最も重要な文と判断すれば、良いのだろうけど、こういった質問文がなかったどうすんだろう?謎が深まる。

あー、質問クラスター中での特異性を調べてんのか。データセットであるCQAでは関連した質問のリストがあるらしいし。関連した質問のリストにだけ、よく頻出する単語がQuestion Topicってことか。

あー、 Q_tの解釈が違うかも。質問のリストでn-gramかけて7文字以内のwordの組み合わせで Q_t ^ 1, Q_t ^2, ..., Q_t ^mを作るのか。そうすれば「Vivy?」みたいな文章がつくられるし。

んで、この抜き出した単語の組み合わせでどうやって質問文のtopicの境界を決めるんだろう?

Thus, we can leverage the consensus information among questions to detect the boundary of the question topic.

ってあるんだけど、consensus informationってどうやって取り出すんだよー(泣)。あー、 Q_tの隣から一定値以上のImportanceをもつ単語だけ抜き出して行けば良いのか。

Question Pattern Prediction

質問パターンが文章Sのどこの部分で引き起こされたかで、質問が作れるらしい。 「誰が歌っていますか?」っていうバターンが抽出できて、それが「がカラオケにいた」という文の一部から引き出されるらしい。

Training Data Construction

まず、QAのデータセットから<Q, A>を取り出す。このQに基づいて、Question PatternのセットであるQからQ_pを取り出す。んで、「#」にあてはまるQ_tをAから取り出す。

目標としては文章Sから、Q_pを取り出すのが目的。

方法論としては検索ベースと生成ベースがある。

Retrival-based QP Prediction

Input layer

attention付きのCNNで取り出すみたい。  v_i ^S, v_j ^{Q_p}をそれぞれ、文章Sのi番目の単語、Q_pの番目の単語として、Attentionをcosine類似度で計算する。


Atten_{i, j} = cos(v_i ^S, v_j ^{Q_p})
んで、このAtteionの大きさが最も大きい[tex: VS],  V^{Q_p}をそれぞれ選んで、これをSoftmaxをかけたやつをそれぞれのembeddingにかけて、更新する。

Convolution layer

embeddingで作られた文章Sについてのベクターから[tex: v{t-d}, ..., v{t}, ..., v{t+d}]をt= 0~|S|まで取り出して、concateして[tex: Z_S = {l_1, .., l{|S|}]を作って、Convolution layerの入力にするみたい。

こっから、[h_t ^S = tanh(W_c l_t)]で h_t ^Sを作って畳み込み終了

Pooling layer

max-poolingをかけるらしい。ここで、各 h_t ^Sについて最大のベクターを取り出すみたい。んで、 l_p ^sをつくると。

つまり、文章S中に含まれる各単語についての最大のベクターの塊。

Optput layer

 y(S) = tanh(W_s l_p ^X)で文章Sについての最終的な埋め込みベクターを作るみたい。 あとはおんなじように y(Q_p)をつくって、y(Q_p)とy(S)が最小のコサイン類似度となるように訓練すればいいらしい。

めっちゃ面倒やん(泣)。

Generation-based QP Prediction

seq2seqのBiGRUってモデルが使われているみたい。

入力をS = (x_1, x_2, .., x|S|)として、出力Q_p = (y_1, y_2, ..., y|Q_p|)となるように学習したい。ってことで、普通にモデルにぶち込んで、SDGでパラメータの調節をして完成ってことで。

推論時にはこっからBeam-searchかけて、top-Nを取り出すみたい。

問題としては、生成ベースだと「#」が生成されないかもってこと。そうする場合どうすんだろう?でも、検索ベースだと、汎用的な質問パターンしか選ばれないかもしれないし、そこは難しい。

Question Topic Selection

では、肝心のQ_tを文章Sから取り出して見ましょう。

For Q_p from retrieval-based method

Q_tはまずFreebaseの固有表現とか、Stanford parseの名詞句を用いて、取り出すらしい。

んで、 s(Q_t, Q_p) = \# \frac{1}{N} \sum_k  (Q_p ^{t_k})  dist(v _ {Q _ t}, v _ {Q _ p})って感じで、sを出力するらしい。

 #(Q_p ^{t_k})が他の質問で t _ kが出た回数で、 dist(v _ {Q _ t}, v _ {Q _ p}) っつーのが2つのベクターの距離。つまり、topicが他の質問パターンで何回も登場していて、かつそのtopicが抜けている質問パターンとはできるだけ異なるやつを選びたいらしい。

まあ、似た質問で欠けているところを探す作業と考えれば良いのか。

For Q_p from generated-based method

topicは w _ j = argmax _ {w _ j} \alpha _ {ij'}でもとめられるみたい。つまり、めちゃくちゃAttentionがかかっているところってことね(笑)。

まあ、こうすると一単語しか抜き出せないんだけど、どうすんだろう?ちなみに i が固定で i は「#」が入っているところらしい。

Question Ranking

Q_p中の「#」をQ_tに置き換えたあとの話。

Q_pのランク付けは以下の点を考慮するそうだ。

Question pattern prediction scroe Question topic selection score QA matching score Word overlap between Q and S *Question patten frequency

まあ、検索ベースと生成ベースで差をつけて、s(Q_t, Q_p)やattentionの重みが大きくて、QとSが関連してるQのクラスターから選んで、QとSに似た単語が多く登場して、Q_pがQにいっぱい含まれていると良いよね、ってことらしい。

まあ、 p(Q|S) = \sum _ i \lambda _ i h _ i (Q, S, Q _ p, Q _ t)っていう何か簡単な式でこれを最大化すればいいらしい。

うーむ。実に難しい(笑)。

9本目!If I Hear You Correctly: Building and Evaluating Interview Chatbots with Active Listening Skills

ではでは、Active Listening(日本では傾聴って呼ばれているやつ)を搭載した Chatbot について、調べていきたいと思います。

この子は今まで見てきたような、Open-DomainのChatbotではなく、InterviewというTask-orientedなChatbotですです。

なんで、Active Listeningかって言うと、共感のskillをガッツリ使う技術の一つが傾聴だからだね。あと、なんか Chatbot と話しているときに、頓珍漢な回答されるくらいなら、質問された方が嬉しいしね。

では行きましょう!

Active Listeningは Chatbot の課題のひとつである、ユーザーのテキトーな回答を質の高い回答にすることができるらしい。やったね!

答えのない質問。「あなたの今直面している問題はなんですか?」みたいな Open-Question かつ抽象的な topic を用意した場合。「今日の夕飯は何にするの?」みたいな質問に比べて、NLPを利用したユーザーの意図理解と、それに応じた応答の回答は作るのがむずいし、わからないし、そもそもデータを作るのがクソむずいらしい。

なんという三重苦(笑)

Related Work

Chatbotについてのいろいろな種類について、調べてくれているので見てみましょう。

情報の引き出し方 * Survey bots : 選択肢で質問するやつ。Amazon の HelpとかのChatbotやね。 * AI-powered chatbots : 自由形式で質問して、ルールベースで処理するやつ。 * embodied AI interviewers : 内部処理にルールベース以外に強化学習とか深層学習とか入れているやつ。

目的 * Task-oriented : 目的を持ってやるやつ。企業が取り入れているChatbot。 * Social Conversational : 雑談とかをやるやつ。会話を楽しむためのChatbot

Prototype Overview

このChatbotはルールベースと neural networkを使ったモデルの組み合わせでできているみたい。

f:id:kaya-takashiro:20210903195904p:plain
activelisteningChatbot

こんな感じで、JujiっていうChatbotと拡張機能の組み合わせで、できているみたい。

ってか、Jujiって何者?

juji.io

こいつのことで、なんかREP languageっていう独自の言語で Dialogを管理できるみたい。

Language - Juji Documentation

あー、だから図にはConversation Agendaとかあるんだ。各会話について、Scriptでかければ制御しやすいし。

っていうか、Interviewデータとか自分たちでLabelingしてるんだ。 Interview Resultsっていうraw dataをIntent Discoverっていうモデルと、Sentece Rankerっていうモデルでラベリング下みたい。

んで、できたTraining DataをSentence encoderってやつで、文章をVector表現にencodeして、topic分類のモデルにぶち込んで訓練したみたい。

このtopic分類のモデルを使って、ユーザーの入力から、topicを取り出して、Chatbotの制御をおこなっているみたい。

Prototype design and key components

アクティブリスニングは、言い換え、感情の言語化、要約とかのいろんな手法があるらしい。

詳しくはこちらっ!listening-skillsとかActive-Listening-Handout

実装している手段については口語的手段だけで、言い換え、感情の言語化、要約、励ましの4つがあるらしい。まあ、非口語的手段は3Dアバターとか用意しないと、無理だしね。

Prototype Design Criteria

Jujiについて、いろいろと書いている。

Task志向型のChatbotについて、ストーリを予め定義して、会話するんだけど、ユーザーが関係ない話(サイドトークというらしい)を初めたらどうすんだろうと、疑問だだったんだけど、Jujiはそれを認識して、話をメインの流れに戻すらしい。

すげーな。Dialogflowにはあんのかな? >> 「わかりません。」とか返すらしい(笑)。まあ、そうだろうな。

あと、フィラーとかも処理できるAdd-onとかもあるらしい。

The Extensions: Data-Driven User Input Prediction

ここでは、このSystemでのユーザーの意図理解をどうやって行っているのか説明されている。

  1. Prepare Trainging Data
  2. Encoding Training Data
  3. Training Text Classification

Prepare Training Data

まず、データの収集の目的を確認してみましょう。今回ではユーザーの入力から、意図を引き出す。つまり、Topic Analysisというタスクになっています。

つまり、データの準備としては、ラベル付きの教師データを用意することから始まります。

んで、今回は最初に教師なし学習であるLDAをつかって、文章を分類したみたい。LDAのライブラリはgensimでここっ

次にLDAの結果のRankingづけを各Topicにおいて行ったみたい。こうすることで、LDAの結果の信頼性を高めたらしい。やり方としては、各Topicにおいて、文章のクラスタを作ったあとで、LexRankってやつを使ったらしい。 なんぞこれ?

Lexical Centrality as Salience in Text Summarizationの略で、自動文章要約アルゴリズムの略らしい。ページランクの仕組みの拡張で、各文をvector化したあとで、コサイン類維持度をそれぞれの文で計算し、類似度の一定値より大きい組み合わせもつ文章を抜き出して、要約するらしい。

ラベルづけした文をどうやってEncodeするかっていうと、Universal Sentence Encoderっていうのを使ったらしい。さすがGoogle様。文のVector化って、そこにしびれる、憧れる!

まあ、文章をEncoder化けるしたら、なんでもモデルに突っ込めるしいいのか。

Enabling Active Listning

入力にもっとも近い文をもつ文章から、Active Listeningに基づいた応答だけを抜き出して、 ランク付けして応答するらしい。

Evaluation

Precision、Recall、F1、Accuracyの4つでScoreを見たみたい。