AIはなぜ役職を持ち始めたのか?
AutoGenはAI同士の会話を実現した。しかし会話だけでは組織にならなかった。全員が同じモデルである以上、エコーチェンバー問題が生まれる。CAMELの登場により、AIは「役割」というレンズを手に入れた。
はじめに
2023年、AI業界では新しい変化が始まっていた。
2022年末に登場したChatGPTは、世界中に大きな衝撃を与えた。人々は初めてAIと長時間会話するようになった。質問する。学ぶ。議論する。相談する。文章を書く。コードを書く。翻訳する。
それまでのAIとは明らかに異なる体験だった。
しかし研究者たちの関心はすでに次の段階へ向かい始めていた。
一人のAIではない。複数のAIである。
もしAI同士が会話できるならどうなるだろうか。もしAI同士が協力できるならどうなるだろうか。もしAI同士が互いをレビューできるならどうなるだろうか。そしてもしAI同士がチームとして働けるならどうなるだろうか。
前回の記事で見たAutoGenは、その可能性を初めて本格的に示した研究だった。
しかしAutoGenの成功は、同時に新しい問題も浮かび上がらせた。
AI同士は会話できる。だが本当に組織になっているのだろうか。本当に協力しているのだろうか。
そして最も重要な問いが残っていた。
全員が同じAIならば、本当にチームを作る意味があるのだろうか。
本記事ではCAMELとRole Playing Agentの登場を中心に、AIがなぜ役職を持ち始めたのかを追っていく。
その出発点となったのは、最新のAI技術ではなかった。むしろ人間社会が何百年もかけて発見してきた「役割」という仕組みだった。
AutoGenが切り開いた世界
AutoGen以前のLLMは基本的に一問一答だった。
ユーザーが質問する。AIが回答する。必要なら追加で質問する。もちろん会話は続く。しかし構造そのものは変わらない。一人の人間。一つのAI。
AutoGenはこの前提を崩した。
複数のAgentを用意する。それぞれがメッセージを送る。あるAgentが提案する。別のAgentが確認する。さらに別のAgentが修正する。必要に応じて人間が介入する。必要がなければAgent同士で会話を続ける。
この発想は多くの研究者を興奮させた。
人間社会の成果の多くは協力によって生まれている。企業、大学、研究所、病院、政府、軍隊。どれも複数人の協力によって成立している。
ならばAIも同じ道を辿るのではないか。一つのAIだけで考えるより、複数のAIが協力した方が複雑な問題を解けるのではないか。
この発想は極めて自然だった。そして実際に、多くのタスクで成果が現れ始めた。
計画担当。実行担当。レビュー担当。それぞれに仕事を分けることで、単独Agentよりも良い結果が得られる場合があった。
しかし研究者たちは次第に違和感を覚え始める。
会話は成立している。だが本当に組織になっているのだろうか。
会話と組織は違う
人間社会を考えてみる。
十人を会議室へ集める。全員が発言する。全員が議論する。全員が意見を述べる。
それだけで会社になるだろうか。ならない。研究所にもならない。プロジェクトチームにもならない。
なぜなら組織には役割が必要だからである。
誰が決めるのか。誰が調査するのか。誰が実装するのか。誰が確認するのか。誰が責任を持つのか。
こうした役割が存在して初めて組織は機能する。単なる会話と組織は違う。
AutoGenは会話を実現した。しかし組織を実現したわけではなかった。
全員が同じAI問題
さらに深刻な問題があった。
Agentが全員同じモデルなのである。
例えば五人のGPT-4 Agentを用意する。名前を変える。履歴を変える。担当タスクを変える。しかし根本的には同じモデルである。
同じ学習データ。同じアーキテクチャ。同じ世界知識。同じ推論傾向。
人間社会で例えるなら、五人の人間が会議しているように見えて、実際には同一人物のコピーが五人並んでいるようなものである。
もちろん完全に同じ回答にはならない。しかし傾向は似る。似た発想をする。似たミスをする。似た結論へ向かう。
それでは本当の意味での多様性は生まれない。
エコーチェンバー問題
この問題は社会学ではエコーチェンバーとして知られている。
似た価値観を持つ人々だけが集まる。すると意見は強化される。反対意見は減少する。盲点は共有されたまま残る。結果として集団全体の判断が偏る。
マルチエージェントシステムでも似た現象が起きる。
あるAgentが提案する。別のAgentが賛成する。三人目も賛成する。四人目も賛成する。一見すると合意形成に見える。
しかし実際には、同じモデルが同じ方向へ推論しているだけかもしれない。
それは議論ではない。反響である。
研究者たちは理解し始めた。複数Agentを並べるだけでは不十分である。本当に必要なのは多様な視点だった。
人間社会はなぜ役職を発明したのか
ここで研究者たちは人間社会へ目を向ける。
なぜ人間は役職を作ったのだろうか。なぜ組織には肩書きが存在するのだろうか。
もちろん専門知識の違いもある。しかし本質はそれだけではない。
役職は思考を変える。
エンジニアは実装を見る。営業は顧客を見る。法務はリスクを見る。会計は数字を見る。経営者は市場を見る。
全員が同じ問題を見ている。しかし見ているものは違う。
だから議論が生まれる。だから盲点が発見される。だから一人では到達できない結論へ到達できる。
役職とは単なる肩書きではない。思考のレンズなのである。
Role Theory
この考え方は社会学ではRole Theoryとして知られている。役割理論である。
役割理論によれば、人間の行動は人格だけで決まるわけではない。社会的役割によっても大きく影響される。
教師になれば教える。裁判官になれば証拠を見る。医師になれば診断する。軍人になれば命令系統を重視する。
同じ人間であっても、役割が変われば行動が変わる。視点が変わる。評価基準が変わる。意思決定が変わる。
研究者たちは考えた。もし人間で起きることがAIでも起きるならどうだろうか。
同じモデルでも、役割を与えるだけで異なる視点を生み出せるのではないだろうか。
AIが役職を持ち始めた背景には、この発想があった。
プロンプトは人格を作れるのか
Role Theoryが示したものは興味深かった。
人間は役割によって振る舞いを変える。教師として振る舞う。医師として振る舞う。裁判官として振る舞う。経営者として振る舞う。
同じ人物であっても、立場が変われば注目するものが変わる。
ではAIはどうだろうか。同じモデルに異なる役割を与えたらどうなるのだろうか。
この問いは、現在では当たり前に思えるかもしれない。しかし2023年前後の研究者たちにとっては非常に重要な問いだった。
なぜなら、それはマルチエージェントシステムへ多様性を導入する手段になるかもしれなかったからである。
全員が同じモデルである。同じ知識を持つ。同じ推論能力を持つ。その状況で、どうやって異なる視点を生み出すのか。
研究者たちは次第にプロンプトそのものへ注目し始める。
Persona Prompting
最初に注目されたのがPersona Promptingだった。
Personaとは人格や人物像を意味する。AIへ特定の人物像を与えるのである。
例えば、「あなたは歴史学者です」と指示する。すると回答は歴史的背景を重視し始める。出来事の因果関係を説明する。過去との比較を行う。長期的な変化を語る。
同じ質問に対して、「あなたは投資家です」と指示するとどうなるだろうか。
今度は違う。市場への影響を見る。リスクを見る。利益を見る。競争環境を見る。
モデルは同じである。しかし出力は変わる。
研究者たちはここに重要な発見を見た。人格を与えるだけで振る舞いが変化するのである。
Character Prompting
やがて研究者たちは、職業だけではなく性格も指定できることに気付く。
慎重な人物。楽観的な人物。悲観的な人物。批判的な人物。創造的な人物。
同じ問題に対しても反応が変わる。
慎重な人物はリスクを探す。楽観的な人物は可能性を探す。批判的な人物は欠陥を探す。創造的な人物は新しい発想を探す。
人間社会でも同じである。同じ会議に出席していても、誰もが同じことを考えているわけではない。性格によって注目する部分が異なる。
AIにも似た現象が現れたのである。
Expert Prompting
さらに発展したのがExpert Promptingだった。これは人格ではなく専門性を与える方法である。
例えば、「あなたは経験豊富なサイバーセキュリティ専門家です」と指示する。すると回答はセキュリティ上の脆弱性へ注意を向ける。攻撃経路を考える。権限管理を考える。リスク分析を行う。
同じ質問に対して、「あなたは法律顧問です」と指示すると、契約上の問題を見る。責任範囲を見る。規制上のリスクを見る。
つまり専門家らしい視点が現れる。
ここで重要なのは、AIが本当に専門家になったわけではないということである。新しい知識を獲得したわけではない。追加学習が行われたわけでもない。変わったのは出力の方向性だった。
しかし結果としては十分に有用だった。研究者たちは、専門家チームのような振る舞いを人工的に作り出せる可能性を見出したのである。
Role Prompting
そしてこれらの発想を整理したものがRole Promptingだった。
Role Promptingは非常に単純な考え方である。Agentへ役割を与える。それだけである。
あなたはエンジニアです。あなたはプロダクトマネージャーです。あなたはレビュアーです。あなたは研究者です。
すると同じモデルであっても出力が変化する。
エンジニアは実装を考える。マネージャーは優先順位を考える。レビュアーは問題点を探す。研究者は仮説を考える。
人間社会では当たり前のことである。しかしLLM研究においては非常に重要な発見だった。なぜなら、同じモデルから複数の視点を引き出せることを意味していたからである。
役割は知識を増やさない
ここで重要なことがある。役割は知識を増やさない。
これは非常に誤解されやすい。
エンジニア役になったからといって、新しいプログラミング知識が追加されたわけではない。弁護士役になったからといって、法学部を卒業したわけでもない。医師役になったからといって、医学部で六年間学んだわけでもない。
モデルの内部知識は変わらない。パラメータも変わらない。学習データも変わらない。
変わるのは知識の使い方だけである。しかしその違いは予想以上に大きかった。
なぜ振る舞いが変わるのか
ここで自然な疑問が生まれる。なぜ役割だけで振る舞いが変わるのだろうか。
数行のプロンプトを追加しただけである。それなのに、なぜ出力全体が変わるのだろうか。
この問いを理解するためには、Transformerそのものへ戻る必要がある。
Attentionの方向が変わる
Transformerの記事で説明したように、LLMの中心にはAttentionが存在する。
Attentionとは、どこへ注目するかを決める仕組みである。
モデルは膨大な知識を内部に持っている。しかし全てを同時に使うわけではない。質問ごとに、どの知識を優先するかを選択している。
役割プロンプトは、この選択へ影響を与える。
例えば、「あなたはエンジニアです」と言われる。すると、設計、性能、保守性、実装方法、技術的制約などに関連する知識が優先されやすくなる。
一方で、「あなたはプロダクトマネージャーです」と言われると、市場、顧客、優先順位、コスト、スケジュールなどが前面に出てくる。
知識は同じである。しかし取り出される知識が変わる。これが役割の効果だった。
人間でも同じことが起きる
実はこれは人間にもよく似ている。
ある優秀なエンジニアがいる。その人が翌日CEOになったとする。
突然プログラミング能力が消えるわけではない。知識も経験も残っている。
しかし考えることは変わる。利益を見る。市場を見る。人材を見る。競争環境を見る。
役割が変われば、注意の向け先が変わる。結果として意思決定も変わる。
AIで起きていることも本質的には似ていた。知識が変わったのではない。注意の向け先が変わったのである。
役割は認知のレンズである
研究者たちは次第に理解し始める。役割とは知識ではない。役割とはレンズである。
同じ世界を見る。同じ問題を見る。同じ情報を見る。しかしレンズが変われば見え方が変わる。
エンジニアは技術的問題を見る。法務担当はリスクを見る。会計担当はコストを見る。経営者は市場を見る。
全員が同じ現実を見ている。しかし注目する部分が違う。
AIも同じだった。役割を与えることで、どこを見るかを変えられる。何を重視するかを変えられる。そしてその結果として、異なる振る舞いが生まれる。
多様性は人工的に作れるのか
ここで研究者たちは重要な可能性に気付く。
もし役割によって注意の向け方を変えられるなら、同じモデルしか持っていなくても、異なる視点を持つAgentを作れるのではないか。
エンジニア役。研究者役。マネージャー役。レビュアー役。
全員が同じモデルである。しかし全員が異なる問題を見る。
もしそれが可能なら、エコーチェンバー問題をある程度緩和できるかもしれない。単なるモデルのコピーではなく、異なる役割を持つチームを作れるかもしれない。
この仮説を真正面から検証した研究が2023年に登場する。それがCAMELだった。
CAMELの登場
2023年、マルチエージェント研究は急速に発展し始めていた。
AutoGenはAI同士の会話という可能性を示した。Role Promptingは同じモデルから異なる振る舞いを引き出せることを示した。
しかしまだ決定的な証明はなかった。
本当に役割だけでチームは成立するのだろうか。本当に役割だけで多様性は生まれるのだろうか。本当に役割だけで問題解決能力は向上するのだろうか。
この問いに真正面から挑戦した研究がCAMELだった。
CAMELはAgent研究の歴史において極めて重要な論文である。なぜなら、「AI同士が会話する」から「AI同士が役割を持って協力する」への転換点になったからである。
CAMELとは何だったのか
CAMELは Communicative Agents for "Mind" Exploration of Large Scale Language Model Society の略称である。
名称は長い。しかし発想は驚くほど単純だった。
人間社会では役割によって行動が変わる。ならばAIも同じではないか。その仮説を検証しよう。それがCAMELだった。
当時の研究者たちは、モデルサイズ競争だけが未来ではないと考え始めていた。
より大きなモデル。より多くのデータ。より多くのパラメータ。もちろんそれらも重要だった。
しかし人間社会を見ると、文明を生み出したのは個人だけではない。協力である。組織である。分業である。
ならばAIにも同じ仕組みを与えられるのではないか。
CAMELはその第一歩だった。
AI UserとAI Assistant
CAMELの中心には二人のAgentが存在する。AI User。AI Assistant。
非常に興味深い構造だった。
通常のChatGPTでは、人間がUserであり、AIがAssistantである。しかしCAMELでは違う。両方ともAIである。
AI Userが目標を提示する。AI Assistantがそれに応答する。そして会話が続く。
ここで重要なのは、二つのAgentが異なる役割を持っていることである。単なるコピーではない。異なる責任を持つ。異なる視点を持つ。異なる目的を持つ。
だから会話が成立する。
ソフトウェア開発の例
例えばソフトウェア開発を考える。
AI Userはプロダクトマネージャーとして振る舞う。AI Assistantはソフトウェアエンジニアとして振る舞う。
プロダクトマネージャーは要求を説明する。エンジニアは実装方法を提案する。問題があれば質問する。要求を修正する。仕様を具体化する。
これは人間社会で日常的に行われている会話そのものである。
重要なのは、どちらも同じLLMで動いている可能性があるという点である。違うのは役割だけだった。
Inception Prompt
CAMELの核心はInception Promptにあった。
現在ではRole Promptingは珍しくない。しかし当時は非常に新鮮だった。
Agentへ最初に、「あなたは誰なのか」を定義する。
例えば、あなたは経験豊富なソフトウェアエンジニアである。あなたの責任は実装可能な解決策を考えることである。あなたは技術的制約を重視する。そのように定義する。
一方で別のAgentには、あなたはプロダクトマネージャーである。あなたの責任はユーザー価値を最大化することである。あなたは要求整理と優先順位付けを担当する。そのように定義する。
すると会話の方向性が大きく変わる。
Task Specifier
CAMELにはもう一つ重要な仕組みがあった。Task Specifierである。
研究者たちは早い段階で問題に気付いていた。タスクが曖昧だと会話も曖昧になる。目標が不明確だと議論も発散する。
これは人間社会でも同じである。
そのためCAMELでは、まず目標を明確化するプロセスを設けた。
何を作るのか。何を達成するのか。成功条件は何か。それを整理した上で会話を始める。
この仕組みによって、Agent同士の対話はより安定した。
なぜTask Specifierが重要だったのか
多くの人はRole Promptingばかりに注目する。しかし実際にはTask Specifierも同じくらい重要だった。
なぜなら、役割だけでは問題は解決しないからである。
優秀なエンジニアがいても、目標が不明確なら成果は出ない。優秀なマネージャーがいても、目的が曖昧ならプロジェクトは迷走する。
Agentも同じだった。役割と目標。この二つが揃って初めて協力が成立する。
会話はどのように進むのか
CAMELでは会話が段階的に進む。
目標が提示される。役割が与えられる。Agent同士が議論する。計画を立てる。問題を発見する。修正する。再提案する。
この流れは人間のチームに驚くほど似ていた。
研究者たちはここで興味深い現象を観察する。役割を持つAgentは、本当に異なる視点から問題を見るのである。
エンジニア役は実装可能性を重視する。プロダクトマネージャー役はユーザー価値を重視する。
同じモデルなのに、異なる方向から議論が進む。これはRole Theoryが予測していたことだった。
CAMELの実験
研究者たちは様々なタスクで実験を行った。
ソフトウェア開発。教育。創造的タスク。問題解決。計画立案。
多くの場合、役割を持つAgent同士は自然な分業を始めた。
マネージャー役が目標を整理する。エンジニア役が実装案を考える。質問が発生する。要求が修正される。会話が進む。
その結果として、単独Agentでは得られなかった解決策が生まれることがあった。
AIは役割を理解したのか
ここで重要な注意がある。AIが本当に役割を理解したわけではない。少なくとも人間の意味で理解したわけではない。
エンジニア役のAgentは、自分が本当にエンジニアだと思っているわけではない。プロダクトマネージャー役のAgentも、企業で働いていると思っているわけではない。
内部で起きているのはもっと単純なことである。エンジニアらしい文章を生成する。マネージャーらしい文章を生成する。そのパターンを再現している。
しかし結果としては十分だった。人間社会で見られるような役割分担が現れたからである。
Society of Mindとの共鳴
CAMELを読むと、多くの研究者がMarvin Minskyの Society of Mind を思い出す。
1986年、Minskyは、知能とは単一の存在ではなく、多数の小さなエージェントの協力によって生まれるという考え方を提案した。
当時は実装が難しかった。計算資源も不足していた。
しかしLLM時代になり、その発想は新しい形で現れた。CAMELは偶然にも、Society of Mindを現代的な形で再現していたのである。
CAMELが示したもの
CAMELが示したのは、AIが人格を持ったという話ではない。AIが意識を持ったという話でもない。
もっと現実的な発見である。
役割を与えるだけで、同じモデルから異なる振る舞いを引き出せる。そしてその違いが、問題解決能力を向上させる可能性がある。
この発見は後のAgent研究へ大きな影響を与える。
研究者たちは気付き始める。重要なのはモデルサイズだけではない。組織構造も重要である。役割分担も重要である。協力の仕組みも重要である。
こうしてAgent研究は、単体知能の研究から協調知能の研究へ進み始める。
そして同時に、新しい問題も見え始めていた。役割は確かに有効だった。しかし本当にそれだけで十分なのだろうか。
CAMELの成功と新しい疑問
CAMELはAgent研究に大きな影響を与えた。その理由は単純だった。役割が機能したからである。
それまでのマルチエージェント研究では、複数のAgentを並べること自体に注目が集まっていた。
しかしCAMELは違った。重要なのはAgentの数ではない。役割である。
同じモデルであっても、異なる役割を与えることで異なる振る舞いを引き出せる。そしてその違いが協力を生み出す。
この発見は非常に魅力的だった。なぜなら、モデルを巨大化しなくても性能を改善できる可能性を示したからである。
しかし研究者たちはすぐに次の疑問へ直面する。
本当に専門家が生まれたのだろうか。それとも私たちは専門家らしく振る舞うAIを見ているだけなのだろうか。
AIは本当に専門家になったのか
これは現在でも重要な問いである。
エンジニア役のAgent。法務役のAgent。研究者役のAgent。マネージャー役のAgent。
彼らは本当に異なる専門家なのだろうか。
厳密に言えば違う。内部のモデルは同じである。知識もほぼ同じである。学習データも同じである。パラメータも同じである。
その意味では、本物の専門家ではない。
しかし一方で、振る舞いは確かに異なる。
エンジニア役は実装を重視する。法務役はリスクを重視する。研究者役は仮説を重視する。マネージャー役は成果を重視する。
これは人間社会の専門家と非常によく似ている。
つまりCAMELが作り出したのは、専門家そのものではなく、専門家の視点だった。
Role Drift
CAMELには限界もあった。その一つがRole Driftである。
Role Driftとは、Agentが与えられた役割から徐々に逸脱していく現象を指す。
最初はエンジニアとして振る舞っていた。しかし会話が長くなるにつれて、マネージャーのような発言を始める。あるいは本来の責任範囲を超えた判断を行う。
これは人間社会でも起きる。会議が長引く。議論が複雑になる。すると本来の役割が曖昧になる。
AIでも同じだった。役割を与えただけでは、永続的にその役割を維持できるわけではなかったのである。
Infinite Loop
もう一つ有名な問題があった。Infinite Loopである。無限ループだ。
Agent Aが提案する。Agent Bが修正する。Agent Aが再提案する。Agent Bが再修正する。これが延々と続く。
人間社会でも似た光景は珍しくない。会議が終わらない。レビューが終わらない。仕様変更が終わらない。
Agentでも同じ問題が発生した。特に目標が曖昧な場合、会話が終了条件を見失うことがあった。
役割は会話を豊かにした。しかし同時に会話を長引かせることもあった。
Coordination Failure
さらに複雑な問題も現れた。Coordination Failureである。協調の失敗だ。
役割が増える。Agentが増える。すると今度は調整が難しくなる。
誰が決めるのか。誰が責任を持つのか。誰が最終判断するのか。
役割を与えるだけでは解決できない問題が出てくる。
これは人間社会でも同じである。優秀な専門家を集めただけでは組織は機能しない。組織には調整の仕組みが必要である。
CAMELは役割の重要性を示した。しかし組織そのものの問題はまだ残っていた。
CAMELが残したもの
それでもCAMELの価値は極めて大きい。なぜなら、Agent研究の視点そのものを変えたからである。
それまでの研究は、どうやって一つのモデルを賢くするかが中心だった。
より大きなモデル。より多くのデータ。より長いコンテキスト。より高性能な推論。
しかしCAMELは別の方向性を示した。協力である。役割である。分業である。
同じモデルであっても、適切な役割を与えることで新しい能力を引き出せる。
これはAgent研究にとって非常に重要な発見だった。
人間社会との不思議な類似
振り返ると興味深い。
研究者たちはAIを作ろうとしていた。しかし気付けば、人間社会を再発見していた。
分業。役割。責任。協力。レビュー。意思決定。
これらは何百年も前から人間が利用してきた仕組みである。
CAMELは、その一部をAI上で再現した研究だった。だからこそ多くの研究者に強い印象を与えたのである。
AIは役職を持ち始めた
本記事の問いへ戻ろう。AIはなぜ役職を持ち始めたのか。
答えは単純である。会話だけでは十分ではなかったからである。
複数のAIを並べるだけでは、多様性は生まれなかった。同じモデルのコピーでは、エコーチェンバー問題を解決できなかった。
そこで研究者たちは役割を導入した。
エンジニア。マネージャー。研究者。レビュアー。
役割を与えることで、同じモデルから異なる視点を引き出そうとした。
CAMELはその発想を体系化した最初期の重要な研究だった。
そしてその影響は現在まで続いている。今日のAgent研究において、役割分担という考え方は当たり前になった。しかしその出発点を辿ると、CAMELへ行き着くのである。
次回予告
AIは役割を手に入れた。しかし研究者たちはすぐに新しい問題へ直面する。
役割を与えるだけでは十分ではなかった。人間社会にはさらに重要な仕組みが存在する。
組織構造である。
CEO。マネージャー。チームリーダー。担当者。
人間社会では、誰が指示するのか、誰が実行するのか、誰が責任を持つのか、それが明確に定義されている。
なぜなら組織が大きくなるほど、全員で全てを決めることが不可能になるからである。
AI社会も同じ問題に直面した。Agentが増えるほど、会話は増える。調整コストは増える。意思決定は遅くなる。
ではAIたちはどのように組織化されていったのだろうか。
次回は 「なぜAIには組織図が必要だったのか?」 をテーマに、Agent研究が役割から組織へと進化していく過程を追っていく。
参考文献
Li, G., Hammoud, H., Itani, H., Khizbullin, D., & Ghanem, B. (2023). CAMEL: Communicative Agents for Mind Exploration of Large Scale Language Model Society. arXiv:2303.17760
Minsky, M. (1986). The Society of Mind. Simon & Schuster.
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention Is All You Need. NeurIPS.
Microsoft Research. AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation.
Biddle, B. J. (1986). Recent Developments in Role Theory. Annual Review of Sociology.
Goffman, E. (1959). The Presentation of Self in Everyday Life. Doubleday.