ストックマークに入社して、1年をふりかえる

この記事は、Stockmark Advent Calendar Day 17 です。

こんにちは! ストックマークの OpenData でエンジニアをやっているいっしーです。

転職してから 1 年が経ち、今回はその節目を振り替えりつつ、「ストックマークって実際どうなんよ」という話をお伝えします。


自己紹介: ストックマークへ入る前まで

大学時代で自然言語処理の研究をはじめたきっかけ

私は大学に入るまでは、国語が苦手でした。でも、ある先輩に出会ってからは変わりました。先輩は知識が豊富で、オススメの本を教えてくれ、そのおかげで本を読む楽しさを知りました。その結果、国語も苦手ではなくなり、今の私がいます。

そのころ、大学では年に 2,3 回はハッカソンに参加して、新しいものを作る楽しさに目覚めました。そこで出会った教授に気に入られ、学部 3 年生のときにその研究室に入りました。当初、研究室では自然言語処理をやっていなかったのですが、私は振り切って、自然言語処理がやりたかったので、自分でその研究を始めました。今思い返してみると、国語が苦手だった過去で不安を取り除きたいという心が、自然言語処理を学びたいと思うきっかけになったのかもしれません。

大学では「大学の図書館で借りた本を元におすすめ記事を推薦するクロスドメイン推薦」、大学院では「畳み込みニューラルネットワークを応用して拡張固有表現の判定」などの研究をしました。Google 検索で欲しい情報があまりちゃんと出てこないことや、質の高い知識を効率良く吸収したいといった日々のストレスが、私の研究の原動力でした。

前職

卒業後は、アドプラットフォームの会社で新しい経験を積みました。広告配信のデータを扱い、大量のデータ処理やデータ処理バッチ基盤の整備を手がけました。また、フルサイクルエンジニアとして、社内トレーディングデスクの困り事を聞いたり、課題の発見から設計、開発、デプロイ、動作検証、保守・運用まで幅広く経験しました。ここでエンジニア人生の基礎を築きました。

そして、2022 年にストックマークへと出会うこととなるのです。

新たなステージへ: ストックマークへの転職

28 歳 (当時) にして 30 台の新しいライフステージに向けて新しい挑戦と成長を求めて転職を考えていました。この転職活動で複数の企業の方と対話しましたが、その中で特に楽しい経験をしたのがストックマークとの面談でした。

はじめに、OpenData チームのリーダーとカジュアル面談しました。Anews のプロダクト画面を見ながら話を説明をしてもらいました。

画面を見ると、今までの経験がストックマークでも共通していることに気づきました。

  • 大学の研究や前職で抱えた課題

    • 本文部分をうまく抜き出すのが難しい

    • クロールしている情報が圧倒的に不足している

  • 前職で大量データを扱っていた経験

    • 新しいアルゴリズムを適用するには、過去に取得して記事に対して再処理

そして、2 回目にして最終面談でした。正直、「いや、早すぎる」という感覚がありました。
ベンチャーのノリなのか、それとも単に私が圧倒的にストックマークがマッチしすぎていたのか。おそらくほぼ確実に後者です。笑

オフィスでの雰囲気や、オフィスにいた方々と実際に会話してみて、会社のビジョンが明確であり、ユーモアも豊富な方々が揃っていることを感じて、好印象でした。

こうした偶然の一致がたくさん重なって入社することに決めました!
まるで運命

OpenData チームへ参加

2022 年 12 月にストックマークへ入社し、OpenData チームとして働き始めました。ちょうど1年です。

OpenDataチームの役割

まずは、あまり知られていないであろうチームの役割をまとめてみます!

ひとことでいうと、ニュースサイトから情報をクロールし、それを Anews, Astrategy プロダクトに連携することです。私たちは様々なデータソースから情報を引き出し、データの種類も日々増加し、最近は、論文、特許、有料記事など多岐にわたります。

検索やパーソナルニュースの判定には、根幹となる元のデータの質と量の双方向の改善が欠かせません。情報が必要なときに正確に取得するためには、検索で使用する情報やパーソナルニュースでおすすめするための情報を広範で網羅的にカバーする必要があります。

データ拡充は日々進行しており、新しい情報源を積極的にアップデートしています。これにより、利用者が求める情報にアクセスできる幅が広がります。しかし、ただ情報の量を増やすだけではなく、ノイズを最小限に抑えながら質の高い情報を提供することが重要です。

OpenData では、あらゆる手を使ってデータの質と量の向上することで、間接的に、Anews, Astrategy のユーザーエクスペリエンスに大きな影響を与えています。ユーザーが的確な情報に迅速にアクセスできるようにし、ストックマーク全体の価値を高める上で非常に重要な役割を果たしています。

OpenDataのクローラー

クローラーで、とくに難しいのは、仕様通りに実装していないサイトなど例外が無数にあります。コンテンツをうまく取得できない理由が複数あるんですね。そういったサイトにも対応できるように、エラーがあったときのコールバックが非常にたくさん実装してあります。これにより大抵のサイトでは正しくコンテンツが取れます。

それでも、うまくいかない場合は、サイト固有ルールがたくさんあります。クローラーを触って、一番おどろいたのは、サイト固有のルールがたくさんあることです。詳しい数は見ていないですが、たしか数千はあったはず。

こういったのも定期的に見直して、汎用対応で取れるようにしていっています。1年前に比べると、徐々に使われないルールの種類も少しずつでも減っているように思います。

1から全てのパターンを網羅することは不可能なため、いきなり汎用対応しようとせずに、まずはルールベースでやってパターンが見えてきたら汎用対応を考えるというのが、最近は良いプラクティスだと考えています。

OpenDataのバッチ処理

クロールしたものを、前処理してプロダクトに渡すバッチ処理の基盤があります。ここでデータの結合処理、クリーニング処理、類似記事集約 (似たような記事を落とす機能)、後続のバッチで使うベクトル生成処理、検索システム用のファイルを作る処理なんかをやっています。

私は、サイト内で定型文を抽出して本文から落すジョブを担当しました。実は、本文判定されているテキストの約2~3割くらいは定型文なんですね。意外と多かったので自分でもびっくりです。

定型文は、レコメンドシステムにとって有用とは言えません、毎日同じようなテキストがずっと入ってくるため、テキストの文章の意味というよりサイトのコンテキストを特徴として捉えてしまいます。また、検索でもヘッダーやフッターのテキストを拾ってきてしてしまいとてもノイジーです。

こうした、質に関することは、直接目に見えて即効性のあるものではありませんが、長期的に見るととても重要です。

バッチ処理に挑戦してみて、現状、ローカルでのフローの実行確認ができなくて、確認作業に時間がかかったり、冪等性の担保が難しいジョブがあることで、とても再処理などが非常にやりにくい状態となっています。次バッチ基盤をよくするといった課題に挑戦していきたいです。

1 年間、働いてみて

生成AIの流行

2022年11月に OpenAI の ChatGPT が登場して、ちょうど入社を決めたタイミングだったので自分でもびっくりでした。まさか、ここまで流行るとはといった感覚です。

その後は、いろんな企業が生成AIの開発に注力するようになりました。生成AIの特徴としては確からしい文章を出すだけ (言わば確率の高そうな文章を出している) なので正しさは自分で保証する必要があります。

Chrome に ChatHub の拡張機能を入れてクロスチェックすると、間違いに築きやすいので、おすすめです。

私は、感受性が強い人(HSP: Highly Sensitive Person) でとくに文章を考えるときに、細かな表現が気になってしまって、出すまでにとても時間がかかるといった状態でした。しかし、生成AIが出てからは、文章を考える助けになったため、仕事でもかなり時間が節約できるようになり、負担も軽減されて、かなり生きやすくなりました。

資金調達がすさまじい速度

社内LLMの開発に関してお金がかかるので、資金調達がとても早く感じました。

AWS LLM開発支援プログラムも受けてます。

ストックマークでもLLMが公開されているので、気になる方は要チェックです。

最先端の技術がどんどん作られていく。身近でそうした雰囲気を噛み締めながら仕事ができるのは、とても刺激的でいつまでも新鮮な感覚で仕事できてます

ニーズをキャッチして、試行錯誤しながら製品実装するまでのスピードがものすごい早いところがストックマークの魅力かもしれませんね。

社員数の増加

毎月のように新しい人を採用して、爆速で社員が増えている雰囲気を感じています。

OpenData でも、入社前は 4人 (正社員2、業務委託2) だったようですが、私ともう一人が入って 2人 (6人)、今年も2人が加わって計8人になりました。嬉しい。ビジョンに共感いただける方、一緒に働きませんか?

これだけ急激に増えても、話はしやすい文化はあまり変わらないなーと、いつも関心しています。果して100人の壁はどうでしょうか?これは来年おたのしみ 笑

 その他、My Topic

  • NeoVim

  • O'Reilly Learning Platform

    • 技術本の横断検索できるのが非常に便利

    • Pre Release のやつも見れたりする

    • 高いのが難点だけど十分に価値がある

  • 将棋

    • 藤井聡太 八冠の誕生!!リアルタイムで生放送を見ていて興奮した。

    • 将棋が趣味の社員が増えた!!共通の話題を話せる人が増えて嬉しい。

  • ピアノ

    • Roland FP-90X に乗りかえてから、グランドピアノのタッチ感に近づいて練習が楽しくなった

    • 先生に習うようになってテクニックが身につき始めている

      • ブルグミュラー25から、ゆっくりやりはじめました。

        • 独学だと弾いた気になって、全くちゃんと弾けていないのとが分かり、習うことの大事さを痛感

      • ハノンやベレンスの左手のトレーニング、リトルピシュナなどのトレーニング用も普段もちょっとずつするように

  • 紅茶

    • 珈琲の延長で、紅茶も趣味に追加された

    • 気分によって入れる種類を変えたりしている

      • スッキリしたいときにダージリン

      • おちつきたいときにアッサムティー

  • マッサージガン

    • 最近、買ったばかりだけど、人生を変えた。

    • 毎日、当てていたら、首・肩の凝りが激減、骨盤周りの筋肉が緩くなって疲れが激減しました。

まとめ

2023年は私にとって非常に刺激的で充実した一年でした。
ストックマークでの新たな挑戦や生成AIの急成長、会社のメンバー増加、チームの成長など、さまざまな出来事がありました。
来年も、質と量を極限まで高めて、新たなAIの可能性が広がる年にしていきたいですね。
今年も残りわずか、最後まで力を合わせて頑張りましょう!

この記事が気に入ったらサポートをしてみませんか?