Learn more about Search Results データサイエンスブログマラソン - Page 8

「機械学習モデルにおける気象データの利用」

はじめに 天気は現実世界で起こる多くのことに影響を与える主要な要素です。実際、それは非常に重要なので、機械学習モデルを組み込むことでそれを取り込む予測モデルには通常恩恵をもたらします。 次のシナリオを考えてみてください: 公共交通機関がシステム内の遅延や渋滞を予測しようとする エネルギー供給業者が明日の太陽光発電量を見積もり、エネルギー取引のために使用したい イベント主催者が参加者数を予測し、安全基準を満たすために確保する必要がある 農場が来週の収穫作業をスケジュールする必要がある 上記のシナリオのどれにも天気を含めないモデルは、無意味であるか、あるいはできるだけ良くないと言えるでしょう。 驚くことに、天気予測自体に焦点を当てたオンラインリソースは多くありますが、天気データを効果的に特徴量として取得・使用する方法についてはほとんどありません。この記事はそれについて説明します。 概要 まず、モデリングに天気データを使用する際の課題、一般的に使用されるモデル、および提供者について紹介します。そして、ケーススタディを実行し、ニューヨークのタクシー乗車を予測するために提供者のデータを使用して機械学習モデルを構築します。 この記事の最後には、以下のことを学びます: モデリングにおける天気データの課題 どのような天気モデルと提供者が存在するか 時系列データのETLと特徴量構築の典型的な手順 SHAP値を使用した特徴量の重要度評価 この記事はデータサイエンスブログマラソンの一環として公開されました。 課題 測定と予測された天気 本番のMLモデルでは、(1)リアルタイムで予測を行うためのライブデータと(2)モデルをトレーニングするための大量の過去のデータの両方が必要です。 by Hadija on Unsplash…

「VAEs、GANs、およびTransformersによる創発的AIの解放」

イントロダクション 生成AIは、人工知能と創造性の交差点に位置する興奮する分野であり、機械が新しいオリジナルなコンテンツを生成することによって、さまざまな産業を革新しています。リアルな画像や音楽の作曲から生き生きとしたテキストや没入型の仮想環境の作成まで、生成AIは機械が達成できる範囲を広げています。このブログでは、VAEs、GANs、およびTransformersを使って生成AIの有望な領域を探求し、その応用、進歩、そして将来における深い影響について検討します。 学習目標 VAEs、GANs、およびTransformersを含む生成AIの基本的な概念を理解する。 生成AIモデルの創造的なポテンシャルとその応用を探求する。 VAEs、GANs、およびTransformersの実装についての洞察を得る。 生成AIの将来の方向性と進歩を探求する。 この記事は、データサイエンスブログマラソンの一部として公開されました。 生成AIの定義 生成AIは、本質的には既存のデータから学習し、類似した特性を持つ新しいコンテンツを生成するためにモデルをトレーニングすることを含みます。既存の情報に基づいてパターンを認識し予測する従来のAIアプローチとは異なり、生成AIは完全に新しいものを作成し、創造性とイノベーションの領域を広げることを目指しています。 生成AIの力 生成AIは、創造性を解放し、機械が達成できる範囲を広げる力を持っています。VAEs、GANs、およびTransformersなど、生成AIで使用される基本原理とモデルを理解することで、この創造的な技術の背後にある技術と手法を把握することができます。 生成AIの力は、創造性を解放し、人間の創造性を模倣し、さらには超える新しいコンテンツを生成する能力にあります。アルゴリズムとモデルを活用することにより、生成AIは画像、音楽、テキストなど多様な出力を生成し、インスピレーションを与え、革新し、芸術的表現の領域を広げることができます。 VAEs、GANs、およびTransformersなどの生成AIモデルは、この力を解放するために重要な役割を果たしています。VAEsはデータの基本的な構造を捉え、学習された潜在空間からサンプリングすることで新しいサンプルを生成することができます。GANsは生成器と識別器の間の競争的なフレームワークを導入し、非常にリアルな出力を生み出します。Transformersは長距離の依存関係を捉えることに優れており、一貫性のあるコンテンツを生成するのに適しています。 詳細を探求しましょう。 変分オートエンコーダ(VAEs) 生成AIで使用される基本的なモデルの1つは変分オートエンコーダまたはVAEです。エンコーダ-デコーダのアーキテクチャを用いて、VAEsは入力データの本質を低次元の潜在空間に圧縮することによって、新しいサンプルを生成します。 VAEsは画像生成、テキスト合成などに応用され、機械が魅了し、インスピレーションを与える新しいコンテンツを作成することが可能になりました。 VAEの実装 このセクションでは、変分オートエンコーダ(VAE)をスクラッチから実装します。 エンコーダとデコーダモデルの定義 エンコーダは入力データを受け取り、ReLU活性化関数を持つ密な層を通過させ、潜在空間分布の平均と対数分散を出力します。 デコーダネットワークは、潜在空間表現を入力として受け取り、ReLU活性化関数を持つ密な層を通過させ、シグモイド活性化関数を適用することでデコーダの出力を生成します。 import…

「オートエンコーダを用いたMNIST画像の再構築」

はじめに インターネット上の情報が非常に多いため、研究者や科学者はより効率的かつ安全なデータ転送方法の開発に取り組んでいます。オートエンコーダは、そのシンプルで直感的なアーキテクチャのために、この目的において貴重なツールとして現れています。通常、オートエンコーダがトレーニングされた後、エンコーダの重みは送信者に、デコーダの重みは受信者に送信することができます。これにより、送信者はデータをエンコードされた形式で送信することができ、時間とコストを節約することができます。一方、受信者は圧縮されたデータを受け取ることができます。この記事では、特にMNIST数値データベースとPythonのPyTorchフレームワークを使用したMNIST画像再構築におけるオートエンコーダの興味深い応用について探求します。 学習目標 この記事では、MNIST画像をエンコードすることができるTensorFlowオートエンコーダの構築に焦点を当てています。 データベースの読み込みと処理のための関数を実装し、データポイントの動的な変換を作成します。 ノイズのある画像と実際の画像を入力として使用して、エンコーダ-デコーダアーキテクチャのオートエンコーダを生成します。 オートエンコーダの深層学習における重要性、アプリケーションの原則、モデルの性能向上の潜在能力について探求します。 この記事は、データサイエンスブログマラソンの一部として公開されました。 オートエンコーダのアーキテクチャ オートエンコーダは、主に3つの主要なコンポーネントに分けることができます: エンコーダ:このモジュールは、トレーニング-検証-テストセットからの入力データを受け取り、それをエンコードされた表現に圧縮します。通常、コーディングされた画像データは入力データよりも小さくなります。 ボトルネック:ボトルネックモジュールは、知識表現を圧縮し、ネットワークの重要な部分として保持します。データの次元は縮小の障壁となります。 デコーダ:デコーダモジュールは、データ表現を「解凍」して元の形式に復元することが重要です。デコーダからの出力は、グラウンドトゥルースまたは初期の入力データと比較されます。 デコーダモジュールは、データの表示を「解凍」し、エンコードされた形式で再構築するのに役立ちます。デコーダの出力は、グラウンドトゥルースまたは元の入力データと比較されます。 エンコーダ、ボトルネック、デコーダの関係 エンコーダ エンコーダは、プーリングモジュールと畳み込みブロックを介して入力データを圧縮することで重要な役割を果たします。この圧縮により、ブロックと呼ばれるコンパクトな画像が生成されます。 エンコーダの後には、デコーダがあります。デコーダは入力データを再構築するための高レベルモジュールで構成されており、ノイズの削減に関係なく、入力と似たような出力を再構築することを目指します。MNIST画像のオートエンコーダを使用した画像再構築 ただし、可変オートエンコーダの場合、入力は入力の再構築ではありません。代わりに、モデルに与えられた入力データに基づいて、完全に新しい画像を作成します。この違いにより、可変オートエンコーダは結果の画像にある程度の制御を持つことができ、異なる結果を生成することができます。 ボトルネック ボトルネックは神経系の最小部分ですが、非常に重要な役割を果たしています。エンコーダからデコーダへのデータのフローを制限する重要な要素として機能し、最も重要なデータのみが通過することができます。フローを制限することで、バリアは重要な特性を保存し、回復に使用します。 これにより、入力の知識の種類を表現することができます。エンコーダ-デコーダの構造により、画像から貴重な情報を抽出し、ネットワーク内のさまざまな入力間の意味のあるつながりを作成することが可能となります。 この圧縮形式の処理により、神経系が入力を記憶し、情報の過剰負荷を防ぐことができます。一般的なガイドラインとして、バリアが小さいほど余分なリスクが低くなります。 ただし、非常に小さなバッファは格納できるデータ量を制限する可能性があり、エンコーダのプール層を介して重要なデータが失われる可能性が高くなります。…

「テキスト要約の革新:GPT-2とXLNetトランスフォーマーの探索」

イントロダクション すべてを読んで理解するためには時間が足りません。そこでテキスト要約が登場します。テキスト要約は、テキスト全体を短くすることで、私たちが理解するのを助けます。詳細をすべて読まずに、必要な情報を得るようなものです。テキスト要約は、さまざまな状況で本当に役立ちます。たとえば、明日試験があるけれどもまだ読み始めていない学生の場合を想像してみてください。試験のために3章を勉強しなければならず、今日しか勉強する時間がありません。心配しないでください。テキスト要約を使ってください。それは明日の試験に合格するのに役立ちます。興味深いですね?この記事では、GPT-2とXLNetトランスフォーマーモデルを使用したテキスト要約について探求します。 学習目標 この記事では、以下のことを学びます。 テキスト要約とその種類について トランスフォーマーモデルの登場とそのアーキテクチャの仕組みについて GPT-2やXLNetなどのトランスフォーマー要約モデルについて 最後に、それぞれの異なるバリアントを使用した実装について この記事は、データサイエンスブログマラソンの一環として公開されました。 テキスト要約とは何ですか? 本のいくつかのページを読まなければならない状況に直面したことはありますか?しかし、怠け者のためにそれができなかったこともありますよね。テキスト要約のおかげで、私たちは本のすべての行やページを実際に読まずに、テキスト全体の要約を理解することができます。 テキスト要約は、重要な情報を保ちながら長いテキストを短く変換することです。まるでテキストの要約を作成するかのようなものです。テキスト要約は、自然言語処理(NLP)の魅力的な分野です。それは元のテキストの主要なアイデアと重要な情報を保持します。簡単に言えば、テキスト要約の目標は、元のテキストの重要なポイントを捉え、実際には読まずにテキストの内容を素早く把握できるようにすることです。 出典: Microsoft 要約の種類 テキスト要約のアプローチには、主に2つのタイプがあります。それらは以下の通りです。 抽出型 抽象型 それぞれ詳しく理解しましょう。 抽出型要約 これは、元のテキストから重要な文を選択し組み合わせて要約を形成することを含みます。このタイプの要約は、最も関連性の高い情報を抽出します。これらの文は、元のテキストの主要なアイデアや文脈を表すものでなければなりません。選択された文は、修正なしで要約を形成します。抽出型要約で使用される一部の標準的な手法には、次のものがあります。 文のスコアリング: これはスコアに基づくアプローチです。システムは、単語の頻度、文の位置、キーワードの重要性に基づいて要約のための文を選択します。スコアが高い文を要約に含めるために、スコアが高い文を選択します。この方法で、すべての高スコアの文が元のテキスト全体の要約となります。 グラフベース:…

創造力の解放:生成AI芸術アプリケーションの探求

導入 生成AIは、人工知能の一分野であり、芸術的な創造に新たな可能性を開拓しています。機械学習アルゴリズムを活用することで、生成AIはユニークで魅力的な芸術作品を生成し、創造プロセスを革新しています。この記事では、GenAIがさまざまな芸術領域でどのように応用されているかを探求します。それによって、従来の手法が変革され、比類のない創造性が解き放たれています。 この記事は、データサイエンスブログマラソンの一環として公開されました。 音楽作曲 生成AIは、音楽作曲において重要な進展を遂げており、オリジナルのメロディ、ハーモニー、リズムを生成することが可能になりました。RNNやトランスフォーマーモデルを使用することで、GenAIアルゴリズムは既存の音楽作品からパターンやスタイルを分析し、まったく新しい作品を創造します。この革新的なアプローチにより、ミュージシャンは新しい音楽の領域を探求し、ユニークなサウンドで実験し、従来のジャンルを超える作曲を作り出すことができます。 以下のコードスニペットは、Pythonライブラリ「magenta」を使用した音楽生成アルゴリズムの簡略な例を示しています。 import magenta # 事前学習済みの音楽生成モデルを読み込む model = magenta.models.melody_rnn.MelodyRnnModel() # 新しいメロディを生成する generated_melody = model.generate() # 生成されたメロディを再生または保存する generated_melody.play() generated_melody.save('generated_melody.mid') 音楽作曲では、生成AIは魅力的な音楽を自律的に作り出すための洗練されたアルゴリズムを開発しています。たとえば、OpenAIの「MuseNet」は、さまざまな音楽のジャンルやスタイルに沿ってオリジナルの作曲を行うことができる生成AIモデルです。JukedeckやAmper Musicなどのプラットフォームは、動画や広告、コンテンツ作成などのためにロイヤリティフリーな音楽を作曲するために、生成AIアルゴリズムを利用しています。…

BERTを使用してカスタムFAQチャットボットを構築する

チャットボットは、さまざまな目的のために多くの組織で使用される、ますます標準的で価値のあるインターフェースとなっています。顧客に個別の製品推奨を提供したり、クエリの解決のための24時間対応のカスタマーサポートを提供したり、顧客の予約をサポートしたりするなど、異なる産業で多くの応用が見つかっています。この記事では、お客様との対話を目的としたFAQチャットボットの作成プロセスについて説明します。FAQチャットボットは、特定のドメイン内の質問に対処し、事前定義された質問と対応する回答のリストを利用します。このタイプのチャットボットは、その基盤として意味的な質問マッチングを利用しています。 学習目標 BERTモデルの基礎を理解する Elasticsearchとそのチャットボットへの適用を理解する チャットボットの作成メカニズム Elasticsearchにおけるインデックス作成とクエリ処理 この記事は、データサイエンスブログマラソンの一部として公開されました。 BERTとは何ですか? BERT(Bidirectional Encoder Representations from Transformers)は、2018年にGoogleによって開発された大規模な言語モデルです。単方向モデルとは異なり、BERTはTransformerアーキテクチャに基づく双方向モデルです。文中の前後の単語を考慮して単語の文脈を理解することで、より包括的な理解を可能にします。 BERTには、NLPタスクにおいて最先端のパフォーマンスを達成できなかったという大きな課題がありました。主な問題は、トークンレベルの埋め込みがテキストの類似性に効果的に使用できなかったため、文の埋め込みを生成する際のパフォーマンスが低下するということです。 しかし、この課題に対処するために、Sentence-BERT(SBERT)が開発されました。SBERTは、Siamese Networkに基づいており、2つの文を一度に取り、BERTモデルを使用してトークンレベルの埋め込みを生成します。次に、各セットの埋め込みに対してプーリング層を適用して文の埋め込みを生成します。本記事では、文の埋め込みにSBERTを使用します。 Elastic Searchとは何ですか? Elastic Searchは、非常に強力で高いスケーラビリティを持ち、リアルタイムで大量のデータを処理するために設計されたオープンソースの検索および分析エンジンです。全文検索機能を提供するApache Luceneライブラリ上に開発されています。Elasticsearchは、複数のノードにわたる高度に分散したネットワークを提供するため、高い可用性と障害耐性を提供する高いスケーラビリティを持っています。また、柔軟で堅牢なRESTful APIも提供しており、HTTPリクエストを使用して検索エンジンとの対話を可能にします。さまざまなプログラミング言語をサポートし、簡単なアプリケーション統合のためのクライアントライブラリも提供しています。 BERTとElastic Searchを使用してチャットボットを作成する方法…

トランスフォーマーエンコーダー | 自然言語処理の核心の問題

イントロダクション 非常に簡単な方法でトランスフォーマーエンコーダーを説明します。トランスフォーマーの学習に苦労している人は、このブログ投稿を最後まで読んでください。自然言語処理(NLP)の分野で働く興味がある方は、トランスフォーマーについて少なくとも基本的な知識を持っておくべきです。ほとんどの産業はこの最新のモデルをさまざまな仕事に使用しています。トランスフォーマーは、「Attention Is All You Need」という論文で紹介された最新のNLPモデルであり、従来のRNNやLSTMを上回っています。トランスフォーマーは再帰ではなくセルフアテンションに頼ることで、長期的な依存関係の捉える課題を克服しています。トランスフォーマーはNLPを革新し、BERT、GPT-3、T5などのアーキテクチャの道を開いています。 学習目標 この記事では、以下を学びます: トランスフォーマーがなぜ人気になったのか? NLPの分野でのセルフアテンションメカニズムの役割。 自分自身の入力データからキー、クエリ、バリューの行列を作成する方法。 キー、クエリ、バリューの行列を使用してアテンション行列を計算する方法。 メカニズムにおけるソフトマックス関数の適用の重要性。 この記事は、データサイエンスブログマラソンの一部として公開されました。 トランスフォーマーがRNNやLSTMモデルを上回る要因は何か? RNNやLSTMでは、長期的な依存関係を理解することができず、複雑なデータを扱う際に計算量が増えるという問題に直面しました。「Attention Is All You Need」という論文では、トランスフォーマーという新しいデザインが従来の順次ネットワークの制約を克服するために開発され、NLPアプリケーションの最先端モデルとなりました。 RNNやLSTMでは、入力とトークンは一度に1つずつ与えられ、トランスフォーマーではデータを並列に処理します。 トランスフォーマーモデルは再帰プロセスを完全に排除し、アテンションメカニズムに完全に依存しています。セルフアテンションという独特のアテンションメカニズムを使用します。 トランスフォーマーの構成と動作 多くのNLPタスクでは、トランスフォーマーモデルが現在の最先端モデルです。トランスフォーマーの導入により、NLPの分野での大きな進歩があり、BERT、GPT-3、T5などの先端システムの道を開きました。…

Amazon SageMaker Ground Truthのはじめ方

イントロダクション ジェネレーティブAIの時代において、データ生成はピークに達しています。正確な機械学習およびAIモデルの構築には、高品質なデータセットが必要です。データセットの品質保証は最も重要なタスクであり、不正確な分析や特定できない予測は、どのビジネスの全体的なレポに影響を与え、数十億または数兆の損失をもたらす可能性があります。 出典:Forbes データラベリングは、AIモデルが理解できるようにするためのデータ品質保証の第一歩です。人間にデータラベルを付けることはできないため、日々生成される無制限のデータに人間がラベルを付けることはできません。そのため、ここでは正確にラベル付けされたデータセットを作成するための素晴らしいテクニックであるAmazon SageMaker Ground Truthについて学びます。 この記事は、データサイエンスブログマラソンの一部として公開されました。 Amazon SageMaker Ground Truthとは何ですか? Amazon SageMaker Ground Truthは、データラベリングタスクを実行して効率的で高精度なデータセットを作成するためのセルフサービスオファリングです。Ground Truthでは、サードパーティのベンダーやAmazon Mechanical Turk、または私たち自身のワークフォースを介して人間の注釈者を使用することもできます。また、エンドツーエンドのラベリングジョブを設定するための管理された体験も提供しています。 出典:Edlitera.com SageMaker Ground Truthは、データ収集やラベリングの手間をかけずに数百万の自動ラベル付け合成データを生成することができます。Ground Truthは、画像、テキスト、ビデオなどさまざまなデータタイプのデータラベリング機能を提供します。これにより、テキスト分類、セグメンテーションセグメンテーション、オブジェクト検出、画像分類のタスクを機械学習モデルが容易に行えるようになります。…

LangChainを使用したLLMパワードアプリケーションの構築

はじめに 言語処理の未来へようこそ!言語が人々と技術をつなぐ架け橋である世界において、自然言語処理(NLP)の進歩によって素晴らしい機会が広がりました。これらの進歩の中で、革命的な言語モデルであるLLM(大規模言語モデル)が登場し、テキストベースのデータとのやり取り方法を完全に変えました。私たちは、LLMの驚異を探求し、LLMを活用したアプリケーションを構築する方法を学びます。それには、LLMのフルポテンシャルを引き出す革新的なプラットフォームであるLangChainを使用します。 言語モデルは、人間らしいテキストを理解し生成する能力により、さまざまなアプリケーションで重要な役割を果たしています。これらのモデルは、機械翻訳、感情分析、チャットボット、コンテンツ生成など、自然言語処理のタスクを革新しました。彼らは貴重な洞察を提供し、コミュニケーションを改善し、ユーザーエクスペリエンスを向上させます。 学習目標 言語モデル(LLM)の基礎と、インテリジェントなアプリケーションの構築における重要性を理解する。 LangChainをアプリケーション開発ワークフローに統合し、そのAPIを活用する方法を学ぶ。 Langchainでできることについての洞察を得る。 Langchainを使用してさまざまなLLMと対話する。 LLMを使用して対話型チャットボットを作成する。 LangchainでのファインチューニングLLMの意味を理解する。 この記事は、データサイエンスブログマラソンの一環として公開されました。 LLMとは何ですか? LLM(Large Language Model)とは、膨大なテキストデータでトレーニングされた最新の言語モデルを指します。深層学習の技術を利用して人間らしいテキストを理解し生成するため、テキスト補完、言語翻訳、感情分析など、さまざまなアプリケーションにおいて強力なツールとなっています。LLMの最も有名な例の1つは、OpenAIのGPT-3であり、言語生成能力に対して大きな注目と賞賛を浴びています。 LangChainの紹介 あなたのアプリケーションが努力なく人間らしいテキストを理解し生成できる世界を想像してください。LangChainへようこそ。これは、言語モデル(LLM)の魅惑的な領域への入り口を開く先駆的なプラットフォームです。LangChainを使用することで、LLMの非凡な能力を連携させ、プロジェクトに統合することができます。LangChainが明らかにする魅力的な機能と無限の可能性を探求しましょう。 LangChainは、開発者にシームレスで直感的なインターフェースを提供し、アプリケーションでLLMのパワーを最大限に活用することができる高度なプラットフォームです。言語処理のフルポテンシャルを引き出すためのさまざまなAPIやツールを提供しています。 LangChainの特徴と機能 LangChainには、あなたを魅了するさまざまな機能と機能が満載されています。文章の補完から感情の分析、言語の翻訳から固有名詞の認識まで、LangChainは言語を使って驚きを生み出すためのツールを提供します。APIのドキュメントを探索することで、まるで魔法使いが呪文を使いこなすかのように、これらの機能を効果的に使用する方法の秘密を発見します。 LLMをプロジェクトに統合する LangChainの機能と能力を理解したら、それを自分自身のプロジェクトに魔法として織り込む時です。LangChain SDKを使用することで、既存のコードベースとLLMの非凡な能力をシームレスに統合することができます。わずか数行のコードで、LLMの言語処理能力を呼び出し、あなたのアプリケーションを人間らしいテキストを理解し生成するインテリジェントな存在に変えることができます。 LLMの魔法が解き放たれる…

NLPとエリシットを用いたジェンダー平等に関する研究の探索

はじめに NLP(自然言語処理)は、膨大なテキストデータを理解するのに役立ちます。大量の文書を手作業で読む代わりに、これらの技術を利用して理解を高速化し、主要なメッセージに素早くたどり着くことができます。このブログ記事では、パンダデータフレームとPythonのNLPツールを使用して、Elicitを使用してアフガニスタンのジェンダー平等に関する研究で人々が何を書いたかを把握する可能性について探求します。これらの洞察は、女性や女の子にとって最も困難な場所の1つとされている国で、ジェンダー平等を推進するために何がうまくいき、何がうまくいかなかったかを理解するのに役立つかもしれません(World Economic Forum、2023年)。 学習目標 CSVファイル内のテキストのテキスト分析の習得 Pythonでの自然言語処理の方法に関する知識の習得 効果的なデータ可視化のためのスキルの開発 アフガニスタンにおけるジェンダー平等に関する研究が時間とともにどのように進展したかについての洞察の獲得 この記事は、データサイエンスブログマラソンの一環として公開されました。 文献レビューにおけるElicitの使用 基礎となるデータを生成するために、私はAIパワードツールであるElicitを使用して文献レビューを行います(Elicit)。ツールに質問をすることで、アフガニスタンでジェンダー平等が失敗した理由に関連する論文のリストを生成するように依頼します。その後、CSV形式で結果の論文リスト(150以上のランダムな数の論文とみなします)をダウンロードします。このデータはどのように見えるのでしょうか?さあ、見てみましょう! PythonでElicitからのCSVデータを分析する まず、CSVファイルをパンダデータフレームとして読み込みます: import pandas as pd # ファイルパスとCSVファイルを特定 file_path = './elicit.csv' #…

Find the right Blockchain Investment for you

Web 3.0 is coming, whether buy Coins, NFTs or just Coding, everyone can participate.

Advertising with us