(58)【調査した分野】(Int.Cl.,DB名)
ユーザからの入力と、前記ユーザからの入力に対して予め定められたシステムの出力とを含むインタラクションの過去の文脈、前記システムの出力に対応して予め定められた今後期待される前記ユーザの入力、及び今後予定される前記システムの出力の少なくとも1つに関連する付帯情報を、付帯情報候補から選択する選択部と、
前記選択した前記付帯情報を、前記インタラクションに挿入して前記ユーザに提示する提示部と、
提示した前記付帯情報に対する前記ユーザごとの反応として、前記付帯情報を提示した後に前記付帯情報に対して前記ユーザが肯定的な反応をした割合を示す付帯情報効果、前記付帯情報を提示した後に前記インタラクションが所定のセット以上継続した割合を示す文脈親和性、及び前記付帯情報を提示した後に前記インタラクションにおいて前記ユーザから前記付帯情報に関する反応が得られた割合を示す文脈誘導性が記録される記録部と、を含み、
前記選択部は更に、前記付帯情報効果、前記文脈親和性、及び前記文脈誘導性のそれぞれの割合を重み付けしたスコアに基づいて、前記付帯情報候補から前記付帯情報を選択する
対話制御システム。
前記ユーザからの入力に基づいて、前記システムの出力、又は前記提示された前記付帯情報に関する情報に対する、前記ユーザの反応に関する情報を抽出する抽出部を更に含み、
前記選択部は、前記抽出された、前記ユーザの反応に関する情報に基づいて、前記付帯情報を選択する請求項1又は請求項2に記載の対話制御システム。
ユーザからの入力と、前記ユーザからの入力に対して予め定められたシステムの出力とを含むインタラクションの過去の文脈、前記システムの出力に対応して予め定められた今後期待される前記ユーザの入力、及び今後予定される前記システムの出力の少なくとも1つに関連する付帯情報を、付帯情報候補から選択し、
前記選択した前記付帯情報を、前記インタラクションに挿入して前記ユーザに提示し、
提示した前記付帯情報に対する前記ユーザごとの反応として、前記付帯情報を提示した後に前記付帯情報に対して前記ユーザが肯定的な反応をした割合を示す付帯情報効果、前記付帯情報を提示した後に前記インタラクションが所定のセット以上継続した割合を示す文脈親和性、及び前記付帯情報を提示した後に前記インタラクションにおいて前記ユーザから前記付帯情報に関する反応が得られた割合を示す文脈誘導性が記録され、
更に、前記付帯情報効果、前記文脈親和性、及び前記文脈誘導性のそれぞれの割合を重み付けしたスコアに基づいて、前記付帯情報候補から前記付帯情報を選択する、
ことを特徴とするプログラム。
ユーザからの入力と、前記ユーザからの入力に対して予め定められたシステムの出力とを含むインタラクションの過去の文脈、前記システムの出力に対応して予め定められた今後期待される前記ユーザの入力、及び今後予定される前記システムの出力の少なくとも1つに関連する付帯情報を、付帯情報候補から選択し、
前記選択した前記付帯情報を、前記インタラクションに挿入して前記ユーザに提示し、
提示した前記付帯情報に対する前記ユーザごとの反応として、前記付帯情報を提示した後に前記付帯情報に対して前記ユーザが肯定的な反応をした割合を示す付帯情報効果、前記付帯情報を提示した後に前記インタラクションが所定のセット以上継続した割合を示す文脈親和性、及び前記付帯情報を提示した後に前記インタラクションにおいて前記ユーザから前記付帯情報に関する反応が得られた割合を示す文脈誘導性が記録され、
更に、前記付帯情報効果、前記文脈親和性、及び前記文脈誘導性のそれぞれの割合を重み付けしたスコアに基づいて、前記付帯情報候補から前記付帯情報を選択する、
ことを特徴とする対話制御方法。
【発明を実施するための形態】
【0012】
まず、本実施形態の前提となる技術について説明する。
【0013】
ユーザとシステムとのインタラクティブな対話を行う対話システムがある。このようなサービスとしては、例えばメッセンジャー、チャット、音声対話などのサービスが提供されている。
【0014】
このような対話型のサービスの一例として、対話のシナリオを予め用意しておき、シナリオに沿って対話を進行するものがある。
図1にレシピを検索するアプリケーション(以下、「レシピアプリ」という)の対話のシナリオについて例示する。
【0015】
図1に示すように、レシピアプリでは、まず、システム発話において「どの様なレシピを探しますか」とユーザに対する提案を行う。次に、提案に対するユーザの発話が、シナリオにおいて予め用意されていたユーザ発話条件に合致するかを判別する。ユーザ発話条件とは、システム発話に対して、シナリオを進行するうえでユーザの発話として期待される内容に関連する単語等である。レシピアプリの場合、上記の「どの様なレシピを探しますか」に対するユーザ発話条件としては、例えば「サラダ」、「スープ」、「食材名」などとすることができる。そして、合致したユーザ発話条件に関連付けられているシステム発話を行う。例えば、ユーザの発話がユーザ発話条件の「サラダ」に合致するのであれば、ユーザ発話条件「サラダ」に関連付けられた「ポテトサラダ、コールスロー、生春巻きが人気です」といったシステム発話を行う。このように、シナリオに沿って対話を進行する対話型のサービスを提供することができる。
【0016】
ここで、このようなユーザとシステムとが対話を行う対話型のサービスにおいて、インタラクション中に広告を挿入する場合を一例として考える。
【0017】
広告を配信する技術の一つに、コンテンツの閲覧中に、コンテンツに関連する情報と広告に関連する情報とに基づいて広告を配信する技術がある。コンテンツの場合には、コンテンツの内容が事前に分かっているため、予め広告を挿入できるポイントに対して、適切な広告を挿入すればよい。
【0018】
一方で、対話型のサービスでは、対話の文脈に沿った広告を挿入して提示することが望ましい。すなわち、対話の文脈に沿わない広告は挿入しないように制御する必要が生じる。
【0019】
図2にレシピアプリで対話の文脈に沿わない広告を提示してしまう場合の例を示す。なお、
図2では、システム発話を実線の吹き出しで表し、ユーザ発話を破線の吹き出しで表している。以下の
図3においても同様である。
図2に示すように、システム発話で「お肉料理がおすすめです」という提案に対し、ユーザが「今日はお肉はいらない」と発話している。これに対しシステム発話は「それでは何がいいですか」と質問を発話して、ユーザは「うーん・・・」と判断を保留する発話をしている。広告の挿入は、このように対話の進行において、ユーザの発話がシナリオとして用意されているユーザ発話条件に合致せず、対話の進行が中断したタイミングなどに行うことが考えられる。ここで挿入された広告は「お肉の安売りが・・・」という内容であったが、ユーザは対話において「今日はお肉はいらない」と発話しているため、対話の文脈に沿わない広告である。このようなユーザの発話に出現しているキーワードに関連する広告でも、ユーザの意図に沿わない広告は挿入しないように制御する必要がある。
【0020】
図3にレシピアプリで対話の文脈に沿った広告を提示する場合の例を示す。
図3の例では
図2の場合と同じ対話が進行し、広告として「今日はXXスーパーでサンマが安いですよ。詳しく言いますか?」という内容の広告が挿入された場合である。この広告に対しユーザは「いいね。後で教えて」と発話しており広告で提示した内容に沿って対話が進行している。
【0021】
以下、図面を参照して本発明に係る実施形態の一例を詳細に説明する。本実施形態では、対話の文脈に沿った広告を提示する対話制御システムを一例として説明する。なお、本実施形態において、広告は、開示の技術の付帯情報の一例である。また、本実施形態における付帯情報とは、対話型のサービスにおいて、シナリオに沿ってシステムから出力される情報以外の情報である。
【0022】
〔第1実施形態〕
まず本発明の第1実施形態について説明する。
図4に示すように、本実施形態に係る対話制御システム100は、対話制御装置20と、広告データDB30とを含む。対話制御装置20と、広告データDB30とは、インターネット等のネットワーク11を介して接続される。
【0023】
対話制御装置20は、ユーザとシステムとの対話のやり取りをシナリオに沿って進行する。また、対話の進行の中で広告を挿入するか否かを判断し、挿入する場合には、対話の文脈に沿った広告を選択し、ユーザに広告を提示する。なお、対話のやり取りがインタラクションの一例である。
【0024】
対話制御装置20は、
図5に示すように、シナリオ記憶部15と、シナリオ文脈語候補記憶部16と、メタ情報文脈語候補記憶部17と、文脈語別ユーザ反応情報記憶部18と、を含んで構成されている。また、対話制御装置20は、シナリオ進行部21と、文脈語抽出部22と、特徴語抽出部23と、ユーザ発話認識部24と、ユーザ反応抽出部25と、広告判断部26と、広告選択部27と、広告提示部28とを含んで構成されている。なお、ユーザ反応抽出部25は、開示の技術の抽出部の一例である。広告判断部26は、開示の技術の判断部の一例である。広告選択部27は、開示の技術の選択部の一例である。広告提示部28は、開示の技術の提示部の一例である。
【0025】
広告データDB30には、選択対象となる広告、及び広告に関する属性情報が記憶されている。属性情報は、例えば、広告主により設定されたキーワード、ジャンル、広告発話文から抽出したキーワード、広告を提示する時間帯、対象年齢、性別、及び地域などの情報である。また、広告は、ユーザがより広告の詳しい内容を知りたいという反応を示した場合に提示するための詳細広告を設けることができる。例えば、広告が「今日はXXスーパーで魚の特売日です」というものであれば、「サンマはXXX円、アジはXXX円・・・」といった詳細広告を設けることで、ユーザの反応に応じて段階的に広告を提示することができる。なお、選択対象となる広告の各々は、開示の技術の付帯情報候補の一例である。
【0026】
シナリオ記憶部15には、ユーザとシステムとの対話のシナリオが記憶されている。シナリオは、
図6に示すように、最初のシステム発話が一つあり、最初のシステム発話に対するユーザ発話に関する複数のユーザ発話条件が対応付けられたものが1番目のセットになっている。そして、1番目のセットの複数のユーザ発話条件に対するシステム発話、そのシステム発話に対する複数のユーザ発話条件、という次の2番目のセットがある。シナリオは、これらのシステム発話と複数のユーザ発話条件のセットが、ツリー状に連なって階層的に分岐していく構成を持つものである。
図6はレシピの検索を題材としたシナリオの例であり、最初のシステム発話は「洋食・和食・中華のどれを作りますか?」であり、このシナリオ発話に対して、複数のユーザ発話条件「洋食」、「和食」、「中華」を含んでいる。また、シナリオには、シナリオ自体やシナリオに出現する単語に関するメタ情報が付与されている。レシピ検索のシナリオに関するメタ情報としては、例えば「暑い」、「寒い」、「子供」、「記念日」、「簡単」などのレシピの推奨に必要なキーワードが挙げられる。
【0027】
シナリオ進行部21は、ユーザから対話の開始指示を受け付けると、シナリオ記憶部15からシナリオを取得して、対話を開始し、最初のシステム発話をユーザに対して発話することで、対話の進行を開始する。対話の開始指示は、ユーザからの挨拶や所定の発話の入力、レシピアプリの起動や所定のコマンドの入力などである。また、シナリオ進行部21は、広告判断部26からシナリオを進行する旨の指示を受け付けると、ユーザ発話認識部24の直前の判定結果で一致したユーザ発話条件に対応するシステム発話を選択し、システム発話をユーザに対して発話して対話を進行する。なお、シナリオに沿ったシステム発話は、開示の技術の予め定められたシステムの出力の一例である。
【0028】
文脈語抽出部22は、シナリオ進行部21により対話が開始されると、シナリオ記憶部15から、開始された対話のシナリオを取得する。そして、文脈語抽出部22は、取得したシナリオに含まれるシステム発話、及び複数のユーザ発話条件から、対話で出現する可能性のある単語を文脈語候補として抽出し、シナリオ文脈語候補記憶部16に記憶する。システム発話が文章である場合には、必要に応じて形態素解析を行って文脈語候補を抽出すればよい。また、文脈語抽出部22は、選択されたシナリオに付与されているメタ情報から文脈語候補を抽出し、メタ情報文脈語候補記憶部17に記憶する。なお、文脈語とは、ユーザとシステムとの対話の文脈において出現する可能性のある単語であり、文脈語候補とは、ユーザとシステムとの対話において、文脈語となり得る単語である。
【0029】
シナリオ文脈語候補記憶部16には、文脈語抽出部22によってシナリオから抽出された文脈語候補が記憶される。
図7にシナリオ文脈語候補記憶部16に記憶される文脈語候補16Aの一例を示す。文脈語候補16Aのテーブルの項目は文脈語候補を識別するためのID、及び文脈語候補によって構成されている。1レコード目にはID「AA1」に対応付けて文脈語候補「洋食」が記憶されている。
【0030】
メタ情報文脈語候補記憶部17には、文脈語抽出部22によってシナリオのメタ情報から抽出された文脈語候補が記憶される。
図8にメタ情報文脈語候補記憶部17に記憶される文脈語候補17Aの一例を示す。文脈語候補17Aのテーブルの項目は文脈語候補を識別するためのID、及び文脈語候補によって構成されている。1レコード目にはID「AM1」に対応付けて文脈語候補「暑い」が記憶されている。
【0031】
特徴語抽出部23は、シナリオ進行部21よって対話が進行され、システム発話が発話されるごとに、特徴語を抽出する。特徴語抽出部23は、シナリオ文脈語候補記憶部16、及びメタ情報文脈語候補記憶部17に記憶されている文脈語候補から、システム発話に含まれる単語と一致する文脈語候補を、システムの特徴語として抽出する。そして、抽出した特徴語を、ユーザ反応抽出部25に出力する。また、特徴語抽出部23は、発話されたシステム発話に対するユーザ発話に関する複数のユーザ発話条件に含まれる単語と一致する文脈語候補を、特徴語として抽出する。更に、特徴語抽出部23は、発話されたシステム発話に対するユーザ発話に関する複数のユーザ発話条件の後に予定されているシステム発話を特徴語として抽出してもよい。また、当該システム発話に対するユーザ発話に関する複数のユーザ発話条件に含まれる単語と一致する文脈語候補を、特徴語として抽出してもよい。このように、予定されているシステム発話やユーザ発話条件に関する特徴語を抽出することで、将来、発話される可能性のある単語を特徴語とすることができる。
【0032】
ユーザ発話認識部24は、システム発話に対するユーザの応答となるユーザ発話を音声認識して、ユーザ発話を示すテキストデータを取得する。ユーザ発話認識部24は、例えば、ユーザ発話を示すテキストデータを形態素解析して得られた単語から、予め定めた重要語、質問などの所定の発話意図を示す単語、肯定又は否定の評価を示す評価単語等を抽出し、認識結果としてユーザ反応抽出部25に出力する。なお、ユーザ発話認識部24は、ユーザ発話に含まれる単語が評価単語か否かを、例えば、評価単語とその評価単語が肯定的な評価を示す単語か否定的な評価を示す単語かを示す極性情報とを対応付けた評価単語辞書等に基づいて判断する。そして、ユーザ発話認識部24は、評価単語と判断された単語に、その単語の極性情報を付与して認識結果に含める。ユーザ発話認識部24は、シナリオ中の現時点における複数のユーザ発話条件のいずれかに、認識結果に含まれるいずれかの単語が一致するかを判定し、判定結果を広告判断部26に出力する。また、ユーザ発話認識部24は、広告提示部28からユーザに提示した広告に詳細広告がある旨の通知を受け付ける。ユーザ発話認識部24は、詳細広告がある旨の通知を受け付けると、ユーザ発話が詳細広告の提示を求められたか否かの認識結果を広告提示部28に返却する。なお、ユーザ発話は、開示の技術のユーザからの入力の一例である。
【0033】
ユーザ反応抽出部25は、特徴語抽出部23で抽出された特徴語を、文脈語とする。また、文脈語のうち、システム発話に含まれる単語であった特徴語であり、かつ、ユーザ発話認識部24から出力されたユーザ発話の認識結果に含まれる単語と一致する文脈語については、文脈語に付与するIDの付与方式などにより識別可能する。当該文脈語を識別可能にするのは、当該文脈語が、対話においてシステム発話に対するユーザの積極的な応答を示す単語だからである。そこで、当該文脈語は識別できるようにし、後の広告選択において重要語として扱う等の処理を可能にする。また、ユーザ反応抽出部25は、シナリオ文脈語候補記憶部16、及びメタ情報文脈語候補記憶部17に記憶されている文脈語候補から、ユーザ発話の認識結果に含まれる単語と一致する文脈語候補を、文脈語として抽出する。ユーザ反応抽出部25は、抽出した文脈語に対するユーザの反応を、ユーザ発話の認識結果に基づいて評価し、文脈語別ユーザ反応情報記憶部18に記憶する。ユーザの反応の評価は、肯定的なpositiveか、否定的なnegativeかの2つに区分するように評価する。また、評価できない単語については未評価のままとする。なお、positive及びnegative以外の他の区分を設けて評価するようにしてもよい。
【0034】
文脈語の抽出、及び文脈語に対するユーザの反応の評価の例を以下に示す。
【0035】
例えば、「洋食・和食・中華のどれを作りますか?」というシステム発話からは文脈語として、「洋食」、「和食」、「中華」が抽出されている。これに対し、ユーザ発話が「中華は嫌い」であり、認識結果の単語に「中華」、「嫌い」が含まれていたとする。なお、「嫌い」には、否定的な評価を示す単語であることを示す極性情報が付与されているものとする。この場合に、ユーザ反応抽出部25は、文脈語及び認識結果において「中華」が共通していることから、「中華」を評価対象とする。このように、文脈語及び認識結果に共通の単語が出現する場合には、当該単語を評価対象として、ユーザの反応を評価する。また、ユーザ反応抽出部25は、認識結果に含まれる「嫌い」という単語に付与されている極性情報から、「中華」に対するユーザの反応はnegativeであると評価する。なお、認識結果に含まれる、文脈語と一致しない単語については、評価を行わずに未評価の文脈語とすればよい。また、極性情報が付与された単語が認識結果に含まれない場合も同様に、認識結果に含まれる文脈語と一致する単語については、評価を行わずに未評価の文脈語とすればよい。
【0036】
また、例えば、「洋食・和食・中華のどれを作りますか?」というシステム発話に対して、ユーザ発話が「簡単に作れる物がいいなぁ」であり、認識結果の単語に「簡単」及び肯定的な極性情報が付与された「いい」が含まれていたとする。この場合に、ユーザ反応抽出部25は、メタ情報文脈語候補記憶部17の文脈語候補から「簡単」を文脈語として抽出する。また、「いい」という単語から文脈語「簡単」に対するユーザの反応はpositiveとして評価する。
【0037】
上記の文脈語の抽出、及び文脈語に対するユーザの反応の評価の例はあくまで一例である。
【0038】
他に抽出対象とする文脈語としては、シナリオの進行に沿って候補となり得る文脈語候補や、固有名詞などの個体を特定する名詞、及びシナリオが許容する広告のジャンルに関する語などが挙げられる。
【0039】
シナリオの進行に沿って次のユーザ発話の候補となり得る文脈語候補について説明する。例えば、ユーザ発話が「中華がいい。でも春巻き以外」のような場合に、シナリオ文脈語候補記憶部16、及びメタ情報文脈語候補記憶部17に文脈語候補「春巻き」が存在すれば、「春巻き」を文脈語として抽出する。この場合には文脈語「春巻き」は「以外」という単語によってnegativeな評価となる。
【0040】
また、固有名詞などの個体を特定する名詞について説明する。例えば、ユーザ発話に出現した固有名詞が、シナリオ文脈語候補記憶部16、及びメタ情報文脈語候補記憶部17に含まれる文脈語候補と一致すれば、固有名詞を文脈語として抽出して評価対象としてもよい。
【0041】
また、シナリオが許容する広告のジャンルに関する語について説明する。例えば、シナリオがレシピに関するものである場合である。この場合には、広告のジャンルが「食」、「食器」等である広告のキーワードについて、シナリオ文脈語候補記憶部16、及びメタ情報文脈語候補記憶部17に含まれる文脈語候補と一致すれば、キーワードを文脈語として抽出して評価対象としてもよい。
【0042】
また、文脈語がnegativeかpositiveかの他の評価の方法として、システム発話に対するユーザ発話の類似度により評価する方法を採用してもよい。例えば、システム発話に対するユーザ発話の類似度が所定の閾値より高い場合にはpositive、類似度が所定の閾値より低い場合にはnegativeと評価することができる。また、ユーザ発話の音声感情を従来既知の手法により識別し、識別された感情に応じて、positive又はnegativeを評価してもよい。
【0043】
図9に文脈語別ユーザ反応情報記憶部18に記憶される文脈語情報18Aの一例を示す。文脈語情報18Aのテーブルの項目は文脈語を識別するためのID、文脈語、文脈語に対するユーザの反応の評価、及び出現タイミングによって構成されている。文脈語情報18Aの1レコード目にはID「AE1」に対応付けて、文脈語「中華」、評価「positive」、出現タイミング「1」が記憶されている。出現タイミングとは、対話において、ユーザ発話又はシステム発話に含まれていた文脈語について、シナリオ中のどこで発話されたものかを記録したものである。出現タイミングが「1」であればシナリオの1セット目のユーザ発話に関するものであったことを示す。これは、ユーザ発話に出現していない単語も文脈語として含むため、ユーザ発話に出現した文脈語がいつ出現したものかを把握するためのである。出現タイミングがブランクの場合にはユーザ発話として出現しないということである。なお、文脈語別ユーザ反応情報記憶部18に蓄積される文脈語情報18Aは、開示の技術のインタラクションの過去の文脈、今後期待されるユーザからの入力、及び今後予定されるシステムの出力の一例である。
【0044】
広告判断部26は、ユーザ発話認識部24のユーザ発話の判定結果と、予め定められた広告発生条件とに基づいて、対話に広告を挿入するか否かを判断する。例えば、判定結果が、ユーザ発話条件に一致するのであれば広告は挿入しないと判断し、シナリオ進行部21に次のシナリオに進むように指示する。判定結果が、ユーザ発話条件に一致しない場合には、広告発生条件を満たしていれば広告を挿入すると判断する。広告発生条件は、例えば、判定結果がユーザ発話条件に一致しない回数が3回カウントされた場合や、2回連続して判定結果がユーザ発話条件に一致しない場合、シナリオの進行の3セットに1回など、任意の条件を設定すればよい。
【0045】
広告選択部27は、広告判断部26で広告を挿入すると判断した場合に、広告データDB30に記憶されている広告に関する属性情報と、文脈語別ユーザ反応情報記憶部18に記憶されている文脈語及び文脈語に対する評価とに基づいて、広告を選択する。
【0046】
広告選択部27の広告の選択の一例について説明する。例えば、予めユーザとシステムとが対話をしている時間、ユーザの年齢や性別、地域などの情報を受け付けておき、それらの情報から広告データDB30の広告を絞り込む。次に絞り込まれた広告の中から、文脈語別ユーザ反応情報記憶部18の評価がpositive又は未評価の文脈語に一致するキーワードを持つ広告を抽出する。次に、抽出した広告のうち、文脈語別ユーザ反応情報記憶部18の評価がnegativeの文脈語に一致するキーワードを持つ広告を削除する。そして、抽出及び削除した広告の中からランダムに広告を選択する。なお、ランダムではなく、評価がpositiveの文脈語とキーワードとが一致した数や、出現タイミングが直近の文脈語に重み付けするなどしてスコア付けし、スコアの高かった広告を選択するようにしてもよい。また、広告を削除する際には、評価がnegativeの文脈語のうち、過去のインタラクションから抽出された文脈語のみを用いるようにしてもよい。一方、広告を抽出する際には、評価がpositiveの文脈語のうち、直近のユーザ発話又はシステム発話や、今後期待されるユーザ発話又はシステム発話から抽出された文脈語のみを用いるようにしてもよい。これにより、対話がシナリオからそれている場合に、対話をシナリオに戻す方向に働く広告を提示できる可能性が高まる。
【0047】
広告提示部28は、広告選択部27で選択された広告を、対話の中に、システムの発話として挿入してユーザに提示する。また、提示した広告に詳細広告がある場合には、ユーザ発話認識部24に広告の内容を詳細広告がある旨を通知する。ユーザ発話認識部24から返却された認識結果において、ユーザが詳細広告の提示を求めている場合には、詳細広告を提示する。また、広告提示部28は、広告の提示が終了した場合には、シナリオ進行部21にシナリオを進行するように指示する。
【0048】
対話制御装置20は、例えば
図10に示すコンピュータ40で実現することができる。コンピュータ40は、Central Processing Unit(CPU)41と、一時記憶領域としてのメモリ42と、不揮発性の記憶部43とを備える。また、コンピュータ40は、入出力装置44と、記憶媒体49に対するデータの読み込み及び書き込みを制御するRead/Write(R/W)部45と、インターネット等のネットワークに接続される通信インターフェース(I/F)46とを備える。CPU41、メモリ42、記憶部43、入出力装置44、R/W部45、及び通信I/F46は、バス47を介して互いに接続される。
【0049】
記憶部43は、Hard Disk Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部43には、コンピュータ40を対話制御装置20として機能させるための対話制御プログラム50が記憶される。対話制御プログラム50は、進行プロセス51と、語抽出プロセス52と、認識プロセス53と、反応抽出プロセス54と、判断プロセス55と、選択プロセス56と、提示プロセス57とを有する。また、記憶部43は、シナリオ記憶部15と、シナリオ文脈語候補記憶部16と、メタ情報文脈語候補記憶部17と、文脈語別ユーザ反応情報記憶部18とが保持される情報記憶領域59を有する。
【0050】
CPU41は、対話制御プログラム50を記憶部43から読み出してメモリ42に展開し、対話制御プログラム50が有するプロセスを順次実行する。CPU41は、進行プロセス51を実行することで、
図5に示すシナリオ進行部21として動作する。また、CPU41は、語抽出プロセス52を実行することで、
図5に示す文脈語抽出部22及び特徴語抽出部23として動作する。また、CPU41は、認識プロセス53を実行することで、
図5に示すユーザ発話認識部24として動作する。また、CPU41は、反応抽出プロセス54を実行することで、
図5に示すユーザ反応抽出部25として動作する。また、CPU41は、判断プロセス55を実行することで、
図5に示す広告判断部26として動作する。また、CPU41は、選択プロセス56を実行することで、
図5に示す広告選択部27として動作する。また、CPU41は、提示プロセス57を実行することで、
図5に示す広告提示部28として動作する。また、CPU41は、情報記憶領域59から情報を読み出して、シナリオ記憶部15、シナリオ文脈語候補記憶部16、メタ情報文脈語候補記憶部17、及び文脈語別ユーザ反応情報記憶部18の各々をメモリ42に展開する。これにより、対話制御プログラム50を実行したコンピュータ40が、対話制御装置20として機能することになる。なお、プログラムを実行するCPU41はハードウェアである。
【0051】
なお、対話制御プログラム50により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit(ASIC)等で実現することも可能である。
【0052】
次に、本実施形態に係る対話制御システム100の作用について説明する。
【0053】
まず、
図11のフローチャートを参照して、対話制御処理について説明する。シナリオ進行部21が、ユーザから対話を開始する指示を受け付けると、シナリオ記憶部15から指示に対応するシナリオを取得し、取得したシナリオの最初のシステム発話を発話して、対話制御処理を開始する。なお、一定時間の間ユーザからの応答がなかった場合には対話を終了する。
【0054】
ステップS100で、文脈語抽出部22が、シナリオ記憶部15から開始された対話のシナリオを取得する。取得したシナリオのシステム発話、及び複数のユーザ発話条件から、対話で出現する可能性のある単語を文脈語候補として抽出し、シナリオ文脈語候補記憶部16に記憶する。また、選択されたシナリオに付与されているメタ情報から文脈語候補を抽出し、メタ情報文脈語候補記憶部17に記憶する。
【0055】
ステップS102で、特徴語抽出部23が、対話の進行によって発話されたシステム発話に関する特徴語を、シナリオ文脈語候補記憶部16、及びメタ情報文脈語候補記憶部17に基づいて抽出し、ユーザ反応抽出部25に出力する。
【0056】
ステップS104で、ユーザ発話認識部24が、システム発話に対するユーザの応答となるユーザ発話を認識し、認識結果をユーザ反応抽出部25に出力する。また、シナリオ中の現時点における複数のユーザ発話条件のいずれかに、認識結果が一致するかを判定し、判定結果を広告判断部26に出力する。また、認識結果は、ユーザ発話に含まれる単語が評価単語か否かを示す極性情報を含めて抽出する。
【0057】
ステップS106で、ユーザ反応抽出部25が、ステップS102で抽出された特徴語と、ステップS104により出力されたユーザ発話の認識結果とに基づいて、文脈語を抽出する。
【0058】
ステップS108で、ユーザ反応抽出部25が、ステップS106で抽出した文脈語に対するユーザの反応を、抽出した認識結果の極性情報に基づいて評価し、文脈語別ユーザ反応情報記憶部18に記憶する。
【0059】
ステップS110で、広告判断部26が、ステップS104のユーザ発話の判定結果がユーザ発話条件に一致するか否かを判定する。一致する場合にはステップS114へ移行する。一致しない場合にはステップS112へ移行する。
【0060】
ステップS112で、広告判断部26が、広告発生条件を満たすか否かを判定する。広告発生条件を満たしていればステップS116へ移行する。広告発生条件を満たしていなければステップS114へ移行する。
【0061】
ステップS114で、シナリオ進行部21が、広告判断部26又は広告提示部28から次のシナリオに進む指示を受け付け、シナリオの次のセットのシステム発話を行うことでシナリオを進行し、ステップS102へ移行して処理を繰り返す。
【0062】
ステップS116で、広告選択部27が、広告データDB30に記憶されている広告に関する属性情報と、文脈語別ユーザ反応情報記憶部18に記憶されている文脈語及び文脈語に対する評価とに基づいて、広告を選択する。
【0063】
ステップS118で、広告提示部28が、ステップS116で選択された広告を、対話の中に、システムの発話として挿入してユーザに提示する。
【0064】
ステップS120で、広告提示部28が、提示した広告に詳細広告があるか否かを判定し、詳細広告がある場合には、ステップS122へ移行し、詳細広告がない場合には、ステップS114へ移行する。
【0065】
ステップS122で、広告提示部28が、ユーザ発話認識部24に広告の内容を示す詳細広告がある旨を通知する。
【0066】
ステップS124で、広告提示部28が、ユーザ発話認識部24から返却された認識結果において、ユーザが詳細広告の提示を求めているか否かを判定し、提示を求めていれば、ステップS126へ移行し、提示を求めていなければ、ステップS114へ移行する。
【0067】
ステップS126で、広告提示部28が、詳細広告を提示し、ステップS114へ移行する。
【0068】
以上説明したように、本実施形態に係る対話制御システムによれば、ユーザ発話と対話のシナリオとから抽出された文脈語情報に関連する広告を、広告データDBの広告から選択する。選択した広告を、対話に挿入してユーザに提示にする。このため、対話の文脈に沿った適切な広告を提示することができる。
【0069】
〔第2実施形態〕
次に本発明の第2実施形態について説明する。
図12に示すように、本実施形態に係る対話制御システム200は、対話制御装置220と、広告データDB30と、課金情報DB231と、広告選択効果履歴DB232とを含む。対話制御装置220と、広告データDB30と、課金情報DB231と、広告選択効果履歴DB232とは、インターネット等のネットワーク11を介して接続される。第2実施形態に係る対話制御システム200は、このように課金情報DB231、及び広告選択効果履歴DB232を設けている点が第1実施形態と異なる。なお、
図12において、
図4に示す第1実施形態と同一の構成となる部分については
図4と同一の符号を付して、その説明を省略する。
【0070】
課金情報DB231には、広告コンテンツを出稿している広告主ごとの広告費の課金額の情報が記憶されている。例えば、広告主Aは20,000円、広告主Bは60,000円、広告主Cは90,000円といった情報である。
【0071】
対話制御装置220は、
図13に示すように、シナリオ記憶部15と、シナリオ文脈語候補記憶部16と、メタ情報文脈語候補記憶部17と、文脈語別ユーザ反応情報記憶部18と、を含んで構成されている。また、対話制御装置220は、シナリオ進行部221と、文脈語抽出部22と、特徴語抽出部23と、ユーザ発話認識部24と、ユーザ反応抽出部25と、広告判断部26と、広告選択部227と、広告提示部28とを含んで構成されている。なお、
図13において、
図5に示す第1実施形態と同一の構成となる部分については
図5と同一の符号を付して、その説明を省略する。
【0072】
シナリオ進行部221は、上記第1実施形態のシナリオ進行部21の処理に加えて、シナリオごと、かつ、ユーザごとに、提示された広告についての広告選択効果履歴を計測し、広告ごとに広告選択効果履歴DB232に記憶する。広告選択効果履歴は、例えば、広告を提示した後にユーザに受け入れられた否かを示す広告効果が挙げられる。また、広告を提示した後に対話が継続したか否かを示す文脈親和性が挙げられる。また、広告を提示した後に対話においてユーザから広告に関する反応が得られたか否かを示す文脈誘導性が挙げられる。なお、広告選択効果履歴には、広告効果、文脈親和性、及び文脈誘導性の全てが含まれる必要はなく、少なくとも1つが含まれていればよい。
【0073】
広告効果は、広告提示部28で提示した広告に対して、ユーザ発話が肯定的(例えば、「詳しく聞かせて」、「後で教えて」など)だった割合である。
【0074】
文脈親和性は、広告提示部28で広告を提示した後に、対話が中断されずにシナリオが進行した割合である。シナリオが進行したか否かは、広告を提示した後にシナリオが2セット以上進んだか否か等により判断すればよい。なお、文脈親和性は、広告効果で肯定的なユーザ発話が得られなかった場合における、対話が中断されずにシナリオが進行した割合としてもよい。
【0075】
文脈誘導性は、広告提示部28で提示した広告に対して、広告に関連する単語がユーザ発話に含まれていた割合である。例えば、広告が「今日はXXスーパーで魚の特売日です」であれば、ユーザ発話が「サンマはいくら?」、「アジがいいな」などの広告に含まれる単語「魚」に関連するものであれば、広告に関連する単語が含まれていたものとする。この判定は、例えば、予め定めた類義語辞書や関連語辞書等を参照して行うことができる。
【0076】
図14に広告選択効果履歴DB232に記憶される広告選択効果履歴232Aの一例を示す。広告選択効果履歴232Aの項目は、シナリオID、ユーザID、ユーザ属性、広告ID、広告効果、文脈親和性、及び文脈誘導性からなる。
図14の広告選択効果履歴232Aの1レコード目は、シナリオIDが「AEE1」、ユーザIDが「1234」、ユーザ属性が「B」、広告IDが「1112」、広告効果が「0.76」、文脈親和性が「0.86」、文脈誘導性が「0.88」である。なお、広告選択効果履歴232Aについて、これらの項目に加えてシナリオがどの段階であるかを示すセット番号や、広告が提示される直前のユーザ発話に含まれる単語を含めるようにしてもよい。
【0077】
広告選択部227は、広告判断部26で広告を挿入すると判断した場合に、課金情報DB231と、広告選択効果履歴DB232と、広告データDB30と、文脈語別ユーザ反応情報記憶部18とに記憶されている情報に基づいて、広告を選択する。
【0078】
ここでは、第1実施形態と異なる、課金情報DB231、及び広告選択効果履歴DB232を考慮する場合について説明する。
【0079】
課金情報DB231の内容を考慮する場合には、課金情報DB231の広告主の課金額に応じた確率で広告を選択する。例えば、課金額に応じて予め広告主の広告を提示する残り回数を定めておき、残り回数がある広告主の広告から選択する。例えば、広告主A、広告主B、広告主Cの場合、広告主Aを20回、広告主Bを50回、広告主Cを100回とするなど設定しておけばよい。広告を提示した後は、広告主の残り回数を1減らす。なお、課金額は、開示の技術のコストの一例である。
【0080】
広告選択効果履歴DB232を考慮する場合には、例えば、広告毎に、対話を進行しているシナリオについて、広告効果、文脈親和性、及び文脈誘導性のそれぞれの割合をスコアと捉え、それぞれに重み付けして算出したスコアが高い広告を選択する。また対話中のユーザと同じ属性のユーザなどに絞り込んでスコアを算出するようにしてもよい。
【0081】
対話制御装置220は、例えば
図10に示すコンピュータ40で実現することができる。コンピュータ40の記憶部43には、コンピュータ40を対話制御装置220として機能させるための対話制御プログラム250が記憶される。対話制御プログラム250は、進行プロセス251と、語抽出プロセス52と、認識プロセス53と、反応抽出プロセス54と、判断プロセス55と、選択プロセス256と、提示プロセス57とを有する。また、記憶部43は、シナリオ記憶部15と、シナリオ文脈語候補記憶部16と、メタ情報文脈語候補記憶部17と、文脈語別ユーザ反応情報記憶部18とが保持される情報記憶領域59を有する。
【0082】
CPU41は、対話制御プログラム250を記憶部43から読み出してメモリ42に展開し、対話制御プログラム250が有するプロセスを順次実行する。CPU41は、進行プロセス251を実行することで、
図13に示すシナリオ進行部221として動作する。また、CPU41は、語抽出プロセス52を実行することで、
図13に示す文脈語抽出部22及び特徴語抽出部23として動作する。また、CPU41は、認識プロセス53を実行することで、
図13に示すユーザ発話認識部24として動作する。また、CPU41は、反応抽出プロセス54を実行することで、
図13に示すユーザ反応抽出部25として動作する。また、CPU41は、判断プロセス55を実行することで、
図13に示す広告判断部26として動作する。また、CPU41は、選択プロセス256を実行することで、
図13に示す広告選択部227として動作する。また、CPU41は、提示プロセス57を実行することで、
図13に示す広告提示部28として動作する。また、CPU41は、情報記憶領域59から情報を読み出して、シナリオ記憶部15、シナリオ文脈語候補記憶部16、メタ情報文脈語候補記憶部17、及び文脈語別ユーザ反応情報記憶部18の各々をメモリ42に展開する。これにより、対話制御プログラム250を実行したコンピュータ40が、対話制御装置220として機能することになる。なお、プログラムを実行するCPU41はハードウェアである。
【0083】
なお、対話制御プログラム250により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
【0084】
次に、本実施形態に係る対話制御システム200の作用について説明する。なお、第1実施形態と同一の作用となる部分については同一の符号を付して、その説明を省略する。
【0085】
図15に示すように、ステップS214で、シナリオ進行部221が、広告判断部26又は広告提示部28から次のシナリオに進む指示を受け付け、シナリオの次のセットのシステム発話を行うことでシナリオを進行し、ステップS102へ移行して処理を繰り返す。また、広告を提示した後は、対話中のシナリオのユーザについて、提示された広告の広告選択効果履歴を計測し、記憶する。
【0086】
ステップS216で、広告選択部227が、課金情報DB231と、広告選択効果履歴DB232と、広告データDB30と、文脈語別ユーザ反応情報記憶部18とに記憶されている情報に基づいて、広告を選択する。
【0087】
本実施形態に係る対話制御システムによれば、ユーザ発話と対話のシナリオとから抽出された文脈語情報に関連する広告を、広告データDBの広告から選択する。選択した広告を、対話に挿入してユーザに提示にする。ユーザごとの広告選択効果履歴を計測し、広告の選択に用いる。このため、対話の文脈に沿うと共に、各ユーザに対する広告効果を高める適切な広告を提示することができる。
【0088】
なお、上記各実施形態では、対話制御装置において対話サービスが提供される場合について説明したが、これに限定されない。例えば、対話制御装置とネットワークを介して接続されたユーザ端末において動作するアプリケーションにおいて、対話サービスが提供される形態としてもよい。なお、ユーザ端末は、パーソナルコンピュータ、タブレット端末、スマートフォン等で実現することができる。
【0089】
また、付帯情報は広告である場合について説明したが、これに限定されるものではなく、対話の文脈に沿ったニュースなど他の情報でもよい。
【0090】
以上の各実施形態に関し、更に以下の付記を開示する。
【0091】
(付記1)
ユーザからの入力と、前記ユーザからの入力に対して予め定められたシステムの出力とを含むインタラクションの過去の文脈、前記システムの出力に対応して予め定められた今後期待される前記ユーザの入力、及び今後予定される前記システムの出力の少なくとも1つに関連する付帯情報を、付帯情報候補から選択する選択部と、
前記選択した前記付帯情報を、前記インタラクションに挿入して前記ユーザに提示する提示部と、
を含む対話制御システム。
【0092】
(付記2)
前記インタラクションにおける前記ユーザからの入力に基づいて、前記付帯情報を提示するか否かを判断する判断部を更に含み、
前記提示部は、前記付帯情報を提示すると判断した場合に、前記選択した前記付帯情報を、前記インタラクションに挿入して前記ユーザに提示する付記1記載の対話制御システム。
【0093】
(付記3)
前記ユーザからの入力に基づいて、前記システムの出力、又は前記提示された前記付帯情報に関する情報に対する、前記ユーザの反応に関する情報を抽出する抽出部を更に含み、
前記選択部は、前記抽出された前記ユーザの反応に関する情報に基づいて、前記付帯情報を選択する付記1又は付記2に記載の対話制御システム。
【0094】
(付記4)
前記抽出部は、前記ユーザの反応に関する情報として、前記情報に対する前記ユーザの否定的な反応を含めて抽出し、
前記選択部は、前記ユーザの否定的な反応が抽出された前記情報に対応する前記付帯情報候補を除いて、前記付帯情報候補から前記付帯情報を選択する付記1〜付記3の何れかに記載の対話制御システム。
【0095】
(付記5)
ユーザごとに、前記提示した前記付帯情報に対する前記ユーザの反応を記録する記録部を更に含み、
前記選択部は、前記記録された前記ユーザの各々の前記付帯情報に対する反応に基づいて、前記付帯情報候補から前記付帯情報を選択する付記1〜付記4の何れかに記載の対話制御システム。
【0096】
(付記6)
前記記録部には、前記ユーザごとの前記付帯情報に対する前記ユーザの反応として、前記付帯情報を提示した後に前記付帯情報が前記ユーザに受け入れられたか否かを示す付帯情報効果、前記付帯情報を提示した後に前記インタラクションが継続したか否かを示す文脈親和性、及び前記付帯情報を提示した後に前記インタラクションにおいて前記ユーザから前記付帯情報に関する反応が得られたか否かを示す文脈誘導性の少なくとも1つが記録され、
前記選択部は、前記付帯情報効果、前記文脈親和性、及び前記文脈誘導性の少なくとも一つに基づいて、前記付帯情報候補から前記付帯情報を選択する付記1〜付記4のいずれかに記載の対話制御システム。
【0097】
(付記7)
前記選択部は、前記付帯情報候補に対して予め定められたコストに応じて定まる選択確率に従って、前記付帯情報を選択する割合を変化させる付記1〜付記6のいずれかに記載の対話制御システム。
【0098】
(付記8)
ユーザからの入力と、前記ユーザからの入力に対して予め定められたシステムの出力とを含むインタラクションの過去の文脈、前記システムの出力に対応して予め定められた今後期待される前記ユーザの入力、及び今後予定される前記システムの出力の少なくとも1つに関連する付帯情報を、付帯情報候補から選択し、
前記選択した前記付帯情報を、前記インタラクションに挿入して前記ユーザに提示することを特徴とするプログラム。
【0099】
(付記9)
前記インタラクションにおける前記ユーザからの入力に基づいて、前記付帯情報を提示するか否かを更に判断し、
前記付帯情報を提示すると判断した場合に、前記選択した前記付帯情報を、前記インタラクションに挿入して前記ユーザに提示する付記8に記載のプログラム。
【0100】
(付記10)
前記ユーザからの入力に基づいて、前記システムの出力、又は前記提示された前記付帯情報に関する情報に対する、前記ユーザの反応に関する情報を更に抽出し、
前記抽出された前記ユーザの反応に関する情報に基づいて、前記付帯情報を選択する付記8又は付記9に記載のプログラム。
【0101】
(付記11)
前記ユーザの反応に関する情報として、前記情報に対する前記ユーザの否定的な反応を含めて抽出し、
前記ユーザの否定的な反応が抽出された前記情報に対応する前記付帯情報候補を除いて、前記付帯情報候補から前記付帯情報を選択する付記8〜付記10の何れかに記載のプログラム。
【0102】
(付記12)
ユーザごとに、前記提示した前記付帯情報に対する前記ユーザの反応を更に記録し、
前記記録された前記ユーザの各々の前記付帯情報に対する反応に基づいて、前記付帯情報候補から前記付帯情報を選択する付記8〜付記11の何れかに記載のプログラム。
【0103】
(付記13)
前記ユーザごとの前記付帯情報に対する前記ユーザの反応として、前記付帯情報を提示した後に前記付帯情報が前記ユーザに受け入れられたか否かを示す付帯情報効果、前記付帯情報を提示した後に前記インタラクションが継続したか否かを示す文脈親和性、及び前記付帯情報を提示した後に前記インタラクションにおいて前記ユーザから前記付帯情報に関する反応が得られたか否かを示す文脈誘導性の少なくとも1つが記録され、
前記付帯情報効果、前記文脈親和性、及び前記文脈誘導性の少なくとも一つに基づいて、前記付帯情報候補から前記付帯情報を選択する付記12に記載のプログラム。
【0104】
(付記14)
前記付帯情報候補に対して予め定められたコストに応じて定まる選択確率に従って、前記付帯情報を選択する割合を変化させる付記8〜付記13のいずれかに記載のプログラム。
【0105】
(付記15)
ユーザからの入力と、前記ユーザからの入力に対して予め定められたシステムの出力とを含むインタラクションの過去の文脈、前記システムの出力に対応して予め定められた今後期待される前記ユーザの入力、及び今後予定される前記システムの出力の少なくとも1つに関連する付帯情報を、付帯情報候補から選択し、
前記選択した前記付帯情報を、前記インタラクションに挿入して前記ユーザに提示することを特徴とする対話制御方法。
【0106】
(付記16)
前記インタラクションにおける前記ユーザからの入力に基づいて、前記付帯情報を提示するか否かを更に判断し、
前記付帯情報を提示すると判断した場合に、前記選択した前記付帯情報を、前記インタラクションに挿入して前記ユーザに提示する付記15に記載の対話制御方法。
【0107】
(付記17)
前記ユーザからの入力に基づいて、前記システムの出力、又は前記提示された前記付帯情報に関する情報に対する、前記ユーザの反応に関する情報を更に抽出し、
前記抽出された前記ユーザの反応に関する情報に基づいて、前記付帯情報を選択する付記15又は付記16に記載の対話制御方法。
【0108】
(付記18)
前記ユーザの反応に関する情報として、前記情報に対する前記ユーザの否定的な反応を含めて抽出し、
前記ユーザの否定的な反応が抽出された前記情報に対応する前記付帯情報候補を除いて、前記付帯情報候補から前記付帯情報を選択する付記15〜付記17の何れかに記載の対話制御方法。
【0109】
(付記19)
ユーザごとに、前記提示した前記付帯情報に対する前記ユーザの反応を更に記録し、
前記記録された前記ユーザの各々の前記付帯情報に対する反応に基づいて、前記付帯情報候補から前記付帯情報を選択する付記15〜付記18の何れかに記載の対話制御方法。
【0110】
(付記20)
前記ユーザごとの前記付帯情報に対する前記ユーザの反応として、前記付帯情報を提示した後に前記付帯情報が前記ユーザに受け入れられたか否かを示す付帯情報効果、前記付帯情報を提示した後に前記インタラクションが継続したか否かを示す文脈親和性、及び前記付帯情報を提示した後に前記インタラクションにおいて前記ユーザから前記付帯情報に関する反応が得られたか否かを示す文脈誘導性の少なくとも1つが記録され、
前記付帯情報効果、前記文脈親和性、及び前記文脈誘導性の少なくとも一つに基づいて、前記付帯情報候補から前記付帯情報を選択する付記19に記載の対話制御方法。
【0111】
(付記21)
前記付帯情報候補に対して予め定められたコストに応じて定まる選択確率に従って、前記付帯情報を選択する割合を変化させる付記15〜付記20のいずれかに記載の対話制御方法。