`
`EXHIBIT F
`(Part 2 of 2)
`
`
`
`Case 6:20-cv-00810-ADA Document 73-17 Filed 04/23/21 Page 2 of 21
`
`6,029,195
`
`59
`electronic newspaper. This information can be structured by
`client r into a prearranged form, comprising a number of
`files, each of which is associated with a different target
`object. In the case of an electronic newspaper, the files can
`contain textual representations of stock prices, weather 5
`forecasts, editorials, etc. The system determines likely
`demand for the target objects associated with these files in
`order to optimize the distribution of the tlles through the
`network N of interconnected clients p-s and proxy servers
`A-D. A-;sume that cluster C consists of text articles relating 10
`to the aerospace industry; further assume that the target
`profile interest summaries stored at proxy servers A and B
`for the users at clients p and r indicate that these users are
`strongly interested in such articles. Then the proxy servers A
`and B are selected as core servers for the multicast tree 15
`MT(C). The multicast tree MT(C) is then computed to
`consist of the core servers, A and B, connected by an edge
`that represents the least costly virtual point-to-point link
`between A and B (either the direct path A-B or the indirect
`path A-C-B, depending on the cost).
`Global Requests to Multicast Trees
`One type of message that may be transmitted to any proxy
`server S is termed a "global request message." Such a
`message M triggers the broadcast of an embedded request R
`to all core servers in a multicast tree MT(C). The content of 25
`request R and the identity of cluster C are included in the
`message M, as is a field indicating that message M is a
`global request message. In addition, the message M contains
`a field Szas, which is unspecified except under certain cir(cid:173)
`cumstances described below, when it names a specific core 30
`server. A global request message M may be transmitted to
`proxy server S by a user registered with proxy server S,
`which transmission may take place along a pseudonymous
`mix path, or it may be transmitted to proxy server S from
`another proxy server, along a virtual point-to-point connec- 35
`tion.
`When a proxy server S receives a message M that is
`marked as a global request message, it acts as follows: 1. If
`proxy server S is not a core server for topic C, it retrieves its
`locally stored list of nearby core servers for topic C, selects
`from this list a nearby core server S', and transmits a copy
`of message M over a virtual point-to-point connection to
`core server S'. If this transmission fails, proxy server S
`repeats the procedure with other core servers on its list. 2. If
`proxy server S is a core server for topic C, it executes the
`following steps: (a) Act on the request R that is embedded
`in message M. (b) Set Scurr to be S(C) Retrieve the locally
`stored subtree of MT(C), and extract from it a list L of all
`core servers that are directly linked to Scurr in this subtree.
`(d) If the message M specifies a value for S1a,, and Szas,
`appears on the list L, remove S 10s, from the list L. Note that
`list L may be empty before this step, or may become empty
`as a result of this step. ( e) For each server Si in list L,
`transmit a copy of message M from server S to server Si over
`a virtual point-to-point connection, where the Szas, field of
`the copy of message M has been altered to S curr· If Si cannot
`be reached in a reasonable amount of time by any virtual
`point-to-point connection (for example, server Si is broken),
`recurse to step (c) above with S 0 r;g bound to Scurr and Scurr
`bound to S{\sub I} for the duration of the recursion.
`When server S' in step 1 or a server Si in step 2( e) receives
`a copy of the global request message M, it acts according to
`exactly the same steps. As a result, all core servers eventu(cid:173)
`ally receive a copy of global request message M and act on
`the embedded request R, unless some c.-ore servers cannot be
`reached. Even if a core server is unreachable, step ( e)
`ensures that the broadcast can continue to other core servers
`
`60
`in most circumstances, provided that d>l; higher values of
`d provide additional insurance against unreachable core
`servers.
`Multicastini Files
`The system for customized electronic information of
`desirable objects executes the following steps in order to
`introduce a new target object into the system. These steps are
`initiated by an entity E, which may be either a user entering
`commands via a keyboard at a client processor q, as illus-
`trated in FIG. 3, or an automatic software process resident on
`a client or server processor q. 1. Processor q forms a signed
`request R, which asks the receiver to store a copy of a file
`F on its local storage device. File F, which is maintained by
`client q on storage at client q or on storage accessible by
`client q over the network, contains the informational content
`of or an identifying description of a target object, as
`described above. The request R also includes an address at
`which entity E may be contacted (possibly a pseudonymous
`address at some proxy server D), and asks the receiver to
`store the fact that tlle F is maintained by an entity at said
`20 address. 2. Processor q embeds request R in a message Ml,
`which it pseudonymously transmits to the entity E's proxy
`server D as described above. Message Ml instructs proxy
`server D to broadcast request R along an appropriate mul-
`ticast tree. 3. Upon receipt of message Ml, proxy server D
`examines the doubly embedded file F and computes a target
`profile P for the corresponding target object. It compares the
`target profile P to each of the cluster profiles for topical
`clusters Cl . . . Cp described above, and chooses Ck to be
`the cluster with the smallest similarity distance to protlle P.
`4. Proxy server D sends itself a global request message M
`instructing itself to broadcast request R along the topical
`multicast tree MT(Ck). 5. Proxy server D notifies entity E
`through a pseudonymous communication that file F has been
`multicast along the topical multicast tree for cluster Ck.
`As a result of the procedure that server D and other
`servers follow for acting on global request messages, step 4
`eventually causes all core servers for topic Ck to act on
`request R and therefore store a local copy of file F. In order
`to make room for file F on its local storage device, a core
`40 server Si may have to delete a less useful file. There are
`several ways to choose a file to delete. One option, well
`known in the art, is for Si to choose to delete the least
`recently accessed file. In another variation, Si deletes a file
`that it believes few users will access. In this variation,
`45 whenever a server Si stores a copy of a file F, it also
`computes and stores the weight w(Si, C1-), where CF is a
`cluster consisting of the single target object associated with
`file F. Then, when server Si needs to delete a file, it chooses
`to delete the file F with the lowest weight w(Si, CF). To
`50 reflect the fact that files are accessed less as they age, server
`Si periodically multiplies its stored value of w(Si, CF) by a
`decay factor, such as 0.95, for each file F that it then stores.
`Alter natively, instead of using a decay factor, server Si may
`periodically recompute aggregate interest w(Si, CF) for each
`55 file F that it stores; the aggregate interest changes over time
`because target objects typically have an age attribute that the
`system considers in estimating user interest, as described
`above.
`If entity E later wishes to remove file F from the network,
`60 for example because it has just multicast an updated version,
`it pseudonymously transmits a digitally signed global
`request message to proxy server D, requesting all proxy
`servers in the multicast tree MT(Ck) to delete any local copy
`of file F that they may be storing.
`65 Queries to Multicast Trees
`In addition to global request messages, another type of
`message that may be transmitted to any proxy server S is
`
`TT0007219
`
`
`
`Case 6:20-cv-00810-ADA Document 73-17 Filed 04/23/21 Page 3 of 21
`
`6,029,195
`
`61
`termed a "query message." When transmitted to a proxy
`server, a query message causes a reply to be sent to the
`originator of the message; this reply will contain an answer
`to a given query Q if any of the servers in a given multicast
`tree MT(C) are able to answer it, and will otherwise indicate
`that no answer is available. The query and the cluster C are
`named in the query message. In addition, the query message
`contains a tleld S1as, which is unspecitled except under
`certain circumstances described below, when it names a
`specitlc core server. When a proxy server S receives a 10
`message M that is marked as a query message, it acts as
`follows: 1. Proxy server S sets Ar to be the return address for
`the client or server that transmitted message M to server S.
`Ar may be either a network address or a pseudonymous
`address 2. If proxy server S is not a core server for cluster 15
`C, it retrieves its locally stored list of nearby core servers for
`topic C, selects from this list a nearby core server S', and
`transmits a copy of the locate message M over a virtual
`point-to-point connection to core server S'. If this transmis(cid:173)
`sion fails, proxy server S repeats the procedure with other 20
`core servers on its list. Upon receiving a reply, it forwards
`this reply to address Ar. 3. If proxy server S is a core server
`for cluster C, and it is able to answer query Q using locally
`stored information, then it transmits a "positive" reply to Ar
`containing the answer. 4. If proxy server S is a core server 25
`for topic C, but it is unable to answer query Q using locally
`stored information, then it carries out a parallel depth-tlrst
`search by executing the following steps: (a) Set L to be the
`empty list. (b) Retrieve the locally stored subtree of MT(C).
`For each server Si directly linked to S curr in this subtree, 30
`other than Szast (if specitled), add the ordered pair (Si, S) to
`the list L. (c) If Lis empty, transmit a "negative" reply to
`address A, saying that server S cannot locate an answer to
`query Q, and terminate the execution of step 4; otherwise
`proceed to step (d). (d) Select a list Ll of one or more server 35
`pairs (Ai, Bi) from the list L. For each server pair (Ai, Bi)
`on the list Ll, form a locate message M(Ai, Bi), which is a
`copy of message M whose Szast tleld has been moditled to
`specify Bi, and transmit this message M(Ai, Bi) to server Ai
`over a virtual point-to-point connection. ( e) For each reply 40
`received (by S) to a message sent in step (d), act as follows:
`(I) If a "positive" reply arrives to a locate message M(Ai,
`Bi), then forward this reply to Ar and terminate step 4,
`immediately. (ii) If a "negative" reply arrives to a locate
`message M(Ai, Bi), then remove the pair (Ai, Bi) from the 45
`list Ll. (iii) If the message M(Ai, Bi) could not be success(cid:173)
`fully delivered to Ai, then remove the pair (Ai, Bi) from the
`list Ll, and add the pair (Ci, Ai) to the list L1 for each Ci
`other than Bi that is directly linked to Ai in the locally stored
`subtree of MT(C). (t) Once L1 no longer contains any pair 50
`(Ai, Bi) for which a message M(Ai, Bi) has been sent, or
`after a tlxed period of time has elapsed, return to step (c).
`Retrieving Files from a Multicast Tree
`When a processor q in the network wishes to retrieve the
`tlle associated with a given target object, it executes the 55
`following steps. These steps are initiated by an entity E,
`which may be either a user entering commands via a
`keyboard at a client q, as illustrated in FIG. 3, or an
`automatic software process resident on a client or server
`processor q. l. Processor q forms a query Q that asks 60
`whether the recipient ( a core server for cluster C) still stores
`a tlle F that was previously multicast to the multicast tree
`MT(C); if so, the recipient server should reply with its own
`server name. Note that processor q must already know the
`name of file P and the identity of cluster C; typically, this 65
`information is provided to entity E by a service such as the
`news clipping service or browsing system described below,
`
`62
`which must identify tlles to the user by (name, multicast
`topic) pair. 2. Processor q forms a query message M that
`poses query Q to the multicast tree MT(C). 3. Processor q
`pseudonymously transmits message M to the user's proxy
`5 server D, as described above. 4. Processor q receives a
`response M2 to message M. 5. If the response M2 is
`"positive," that is, it names a server S that still stores tlle F,
`then processor q pseudonymously instructs the user's proxy
`server D to retrieve tlle F from server S. If the retrieval fails
`because server S has deleted tlle F since it answered the
`query, then client q returns to step l. 6. If the response M2
`is "negative," that is, it indicates that no server in MT(C) still
`stores tlle F, then processor q forms a query Q that asks the
`recipient for the address A of the entity that maintains tlle F;
`this entity will ordinarily maintain a copy of tlle F indefi(cid:173)
`nitely. All core servers in MT(C) ordinarily retain this
`information (unless instructed to delete it by the maintaining
`entity), even if they delete file F for space reasons.
`Therefore, processor q should receive a response providing
`address A, whereupon processor q pseudonymously
`instructs the user's proxy server D to retrieve tlle F from
`address A.
`When multiple versions of a tlle F exist on local servers
`throughout the data communication network N, but are not
`marked as alternate versions of the same tlle, the system's
`ability to rapidly locate tlles similar to F (by treating them
`as target objects and applying the methods disclosed in
`"Searching for Target Objects" above) makes it possible to
`tlnd all the alternate versions, even if they are stored
`remotely. These related data tlles may then be reconciled by
`any method. In a simple instantiation, all versions of the data
`tlle would be replaced with the version that had the latest
`date or version number. In another instantiation, each ver(cid:173)
`sion would be automatically annotated with references or
`pointers to the other versions.
`
`NEWS CLIPPING SERVICE
`The system for customized electronic identitlcation of
`desirable objects of the present invention can be used in the
`electronic media system of FIG. 1 to implement an auto(cid:173)
`matic news clipping service which learns to select (tllter)
`news articles to match a user's interests, based solely on
`which articles the user chooses to read. The system for
`customized electronic identitlcation of desirable objects
`generates a target protlle for each article that enters the
`electronic media system, based on the relative frequency of
`occurrence of the words contained in the article. The system
`for customized electronic identitlcation of desirable objects
`also generates a search protlle set for each user, as a function
`of the target profiles of the articles the user has accessed and
`the relevance feedback the user has provided on these
`articles. As new articles are received for storage on the mass
`storage systems SS 1-SSm of the information servers lcim,
`the system for customized electronic identitlcation of desir(cid:173)
`able objects generates their target protlles. The generated
`target protlles are later compared to the search protlles in the
`users' search protlle sets, and those new articles whose
`target protlles are closest (most similar) to the closest search
`protlle in a user's search protlle set are identitled to that user
`for possible reading. The computer program providing the
`articles to the user monitors how much the user reads (the
`number of screens of data and the number of minutes spent
`reading), and adjusts the search protlles in the user's search
`protlle set to more closely match what the user apparently
`prefers to read. The details of the method used by this system
`are disclosed in flow diagram form in FIG. 5. ]11is method
`requires selecting a specitlc method of calculating user-
`
`TT0007220
`
`
`
`Case 6:20-cv-00810-ADA Document 73-17 Filed 04/23/21 Page 4 of 21
`
`6,029,195
`
`63
`specific search protlle sets, of measuring similarity between
`two profiles, and of updating a user's search profile set ( or
`more generally target profile interest summary) based on
`what the user read, and the examples disclosed herein are
`examples of the many possible implementations that can be 5
`used and should not be construed to limit the scope of the
`system.
`Initialize Users' Search Profile Sets
`The news clipping service instantiates target profile inter(cid:173)
`est summaries as search profile sets, so that a set of high(cid:173)
`interest search profiles is stored for each user. The search
`profiles associated with a given user change over time. As in
`any application involving search profiles, they can be ini(cid:173)
`tially determined for a new user (or explicitly altered by an
`existing user) by any of a number of procedures, including
`the following preferred methods: (1) asking the user to
`specify search profiles directly by giving keywords and/or
`numeric attributes, (2) using copies of the profiles of target
`objects or target clusters that the user indicates are repre(cid:173)
`sentative of his or her interest, (3) using a standard set of 20
`search profiles copied or otherwise determined from the
`search profile sets of people who are demographically
`similar to the user.
`Retrieve New Articles from Article Source
`Articles are available on-line from a wide variety of 25
`sources. In the preferred embodiment, one would use the
`current days news as supplied by a news source, such as the
`AP or Reuters news wire. These news articles are input to the
`electronic media system by being loaded into the mass
`storage system SS 4 of an information server S4 . ]11e article 30
`profile module 201 of the system for customized electronic
`identification of desirable objects can reside on the infor(cid:173)
`mation server S4 and operates pursuant to the steps illus(cid:173)
`trated in the flow diagram of FIG. 5, where, as each article
`is received at step 501 by the information server S 4 , the 35
`article profile module 201 at step 502 generates a target
`profile for the article and stores the target profile in an article
`indexing memory (typically part of mass storage system SS 4
`for later use in selectively delivering articles to users. This
`method is equally useful for selecting which articles to read 40
`from electronic news groups and electronic bulletin boards,
`and can be used as part of a system for screening and
`organizing electronic mail ("e-mail").
`Calculate Article Profiles
`A target profile is computed for each new article, as
`described earlier. The most important attribute of the target
`profile is a textual attribute that stands for the entire text of
`the article. This textual attribute is represented as described
`earlier, as a vector of numbers, which numbers in the
`preferred embodiment include the relative frequencies (TF/
`IDF scores) of word occurrences in this article relative to
`other comparable articles. The server must count the fre(cid:173)
`quency of occurrence of each word in the article in order to
`compute the TF;1DF scores.
`These news articles are then hierarchically clustered in a
`hierarchical cluster tree at step 503, which serves as a
`decision tree for determining which news articles are closest
`to the user's interest. The resulting clusters can be viewed as
`a tree in which the top of the tree includes all target objects
`and branches further down the tree represent divisions of the
`set of target objects into successively smaller subclusters of
`target objects. Each cluster has a cluster profile, so that at
`each node of the tree, the average target profile ( centroid) of
`all target objects stored in the subtree rooted at that node is
`stored. This average of target profiles is mmputed over the
`representation of target profiles as vectors of numeric
`attributes, as described above.
`
`64
`Compare Current Articles' Target Profiles to a User's Search
`Profiles
`The process by which a user employs this apparatus to
`retrieve news articles of interest is illustrated in flow dia(cid:173)
`gram form in FIG. 11. At step 1101, the user logs into the
`data communication network N via their client processor C1
`and activates the news reading program. This is accom(cid:173)
`plished by the user establishing a pseudonymous data com(cid:173)
`munications connection as described above to a proxy server
`10 S2 , which provides front-end access to the data communi(cid:173)
`cation network N. The proxy server S2 maintains a list of
`authorized pseudonyms and their corresponding public keys
`and provides access and billing control. The user has a
`search profile set stored in the local data storage medium on
`15 the proxy server S2 . When the user requests access to "news"
`at step 1102, the profile matching module 203 resident on
`proxy server S2 sequentially considers each search profile Pk
`from the user's search profile set to determine which news
`articles are most likely of interest to the user. The news
`articles were automatically clustered into a hierarchical
`cluster tree at an earlier step so that the determination can be
`made rapidly for each user. The hierarchical cluster tree
`serves as a decision tree for determining which articles'
`target profiles are most similar to search profile pk: the
`search for relevant articles begins at the top of the tree, and
`at each level of the tree the branch or branches are selected
`which have cluster profiles closest to Pk· This process is
`recursively executed until the leaves of the tree are reached,
`identifying individual articles of interest to the user, as
`described in the section "Searching for Target Objects"
`above.
`A variation on this process exploits the fact that many
`users have similar interests. Rather than carry out steps 5-9
`of the above process separately for each search profile of
`each user, it is possible to achieve added efficiency by
`carrying out these steps only once for each group of similar
`search profiles, thereby satisfying many users' needs at
`once. In this variation, the system begins by non(cid:173)
`hierarchically clustering all the search profiles in the search
`profile sets of a large number of users. For each cluster k of
`search profiles, with cluster profile Pk, it uses the method
`described in the section "Searching for Target Objects" to
`locate articles with target profiles similar to Pk· Each located
`article is then identified as of interest to each user who has
`45 a search profile represented in cluster k of search profiles.
`Notice that the above variation attempts to match clusters
`of search profiles with similar clusters of articles. Since this
`is a symmetrical problem, it may instead be given a sym(cid:173)
`metrical solution, as the following more general variation
`50 shows. At some point before the matching process
`commences, all the news articles to be considered are
`clustered into a hierarchical tree, termed the "target profile
`cluster tree," and the search profiles of all users to be
`considered are clustered into a second hierarchical tree,
`55 termed the "search profile cluster tree." The following steps
`serve to find all matches between individual target profiles
`from any target profile cluster tree and individual search
`profiles from any search profile cluster tree: 1. For each child
`subtree S of the root of the search profile cluster tree ( or, let
`60 S be the entire search profile cluster tree if it contains only
`one search profile): 2. Compute the cluster profile P s to be
`the average of all search profiles in subtree S 3. For each
`subcluster ( child subtree) T of the root of the target profile
`cluster tree (or, let T be the entire target profile cluster tree
`65 if it contains only one target profile): 4. Compute the cluster
`profile Pr to be the average of all target profiles in subtree
`T 5. Calculate d(Ps, Pr, the distance between Ps and Pr 6. If
`
`TT0007221
`
`
`
`Case 6:20-cv-00810-ADA Document 73-17 Filed 04/23/21 Page 5 of 21
`
`6,029,195
`
`5
`
`10
`
`65
`d(Ps, Pr)<t, a threshold, 7. If S contains only one search
`profile and T contains only one target profile, declare a
`match between that search profile and that target profile, 8.
`otherwise recurse to step 1 to find all matches between
`search profiles in tree S and target profiles in tree T.
`The threshold used in step 6 is typically an affine function
`or other function of the greater of the cluster variances ( or
`cluster diameters) of Sand T. Whenever a match is declared
`between a search profile and a target profile, the target object
`that contributed the target profile is identified as being of
`interest to the user who contributed the search profile. Notice
`that the process can be applied even when the set of users to
`be considered or the set of target objects to be considered is
`very small. In the case of a single user, the process reduces
`to the method given for identifying articles of interest to a
`single user. In the case of a single target object, the process 15
`constitutes a method for identifying users to whom that
`target object is of interest.
`Present List of Articles to User
`Once the protlle correlation step is completed for a
`selected user or group of users, at step 1104 the profile 20
`processing module 203 stores a list of the identified articles
`for presentation to each user. At a user's request, the profile
`processing system 203 retrieves the generated list of relevant
`articles and presents this list of titles of the selected articles
`to the user, who can then select at step 1105 any article for 25
`viewing. (If no titles are available, then the first sentence(s)
`of each article can be used.) The list of article titles is sorted
`according to the degree of similarity of the article's target
`profile to the most similar search profile in the user's search
`profile set. The resulting sorted list is either transmitted in 30
`real time to the user client processor C1 , if the user is present
`at their client processor C1 , or can be transmitted to a user's
`mailbox, resident on the user's client processor C1 or stored
`within the server S2 for later retrieval by the user; other
`methods of transmission include facsimile transmission of 35
`the printed list or telephone transmission by means of a
`text-to-speech system. The user can then transmit a request
`by computer, facsimile, or telephone to indicate which of the
`identified articles the user wishes to review, if any. The user
`can still access all articles in any information server S4 to 40
`which the user has authorized access, however, those lower
`on the generated list are simply further from the user's
`interests, as determined by the user's search profile set. The
`server S2 retrieves the article from the local data storage
`medium or from an information server S4 and presents the 45
`article one screen at a time to the user's client processor C1 .
`The user can at any time select another article for reading or
`exit the process.
`Monitor Which Articles Are Read
`The user's search profile set generator 202 at step 1107 50
`monitors which articles the user reads, keeping track of how
`many pages of text are viewed by the user, how much time
`is spent viewing the article, and whether all pages of the
`article were viewed. This information can be combined to
`measure the depth of the user's interest in the article, 55
`yielding a passive relevance feedback score, as described
`earlier. Although the exact details depend on the length and
`nature of the articles being searched, a typical formula might
`be: measure of article attractiveness=0.2 if the second page
`is accessed +0.2 if all pages are accessed +0.2 if more than 60
`30 seconds was spent on the article +0.2 if more than one
`minute was spent on the article +0.2 if the minutes spent in
`the article are greater than half the number of pages.
`The computed measure of article attractiveness can then
`be used as a weighting function to adjust the user's search 65
`profile set to thereby more accurately reflect the user's
`dynamically changing interests.
`
`66
`
`Update User Profiles
`Updating of a user's generated search profile set can be
`done at step 1108 using the method described in copending
`U.S. patent application Ser. No. 08/346,425. When an article
`is read, the server S 2 shifts each search profile in the set
`slightly in the direction of the target profiles of those nearby
`articles for which the computed measure of article attrac(cid:173)
`tiveness was high. Given a search protlle with attributes uik
`from a user's search profile set, and a set of J articles
`available with attributes djk (assumed correct for now),
`where I indexes users, j indexes articles, and k indexes
`attributes, user I would be predicted to pick a set of P distinct
`articles to minimize the sum of d(ur, b) over the chosen
`articles j. The user's desired attributes uik and an article's
`attributes djk would be some form of word frequencies such
`as TF/IDF and potentially other attributes such as the source,
`reading level, and length of the article, while d(ui, dj) is the
`distance between these two attribute vectors (profiles) using
`the similarity measure described above. If the user picks a
`different set of P articles than was predicted, the user search
`profile set generation module should try to adjust u and/or d
`to more accurately predict the articles the user selected. In
`particular, Ur and/or t\ should be shifted to increase their
`similarity if user I was predicted not to select article j but did
`select it, and perhaps also to decrease their similarity if user
`I was predicted to select article j but did not. A preferred
`method is to shift u for each wrong prediction that user I will
`not select article j, using the formula: u;k'=u;k-e(u;k djk)
`Here Ur is chosen to be the search profile from user I's
`search profile set that is closest to target profile. If e is
`positive, this adjustment increases the match between user
`I's search profile set and the target profiles of the articles
`user I actually selects, by making u1 closer to dj for the case
`where the algorithm failed to predict an article that the
`viewer selected. The size of e determines how many
`example articles one must see to change the search profile
`substantially. If e is too large, the algorithm becomes
`unstable, but for sufficiently small e, it drives u to its correct
`value. In general, e should be proportional to the measure of
`article attractiveness; for example, it should be relatively
`high if user I spends a long time reading article j. One could
`in theory also use the above formula to decrease the match
`in the case where the algorithm predicted an article that the
`user did not read, by making e negative in that case.
`However, there is no guarantee that u will move in the
`correct direction in that case. One can also shift the attribute
`weights w1 of user I by using a similar algorithm: w;/=(w;k-
`eluik-djkl)IS1c (w;k-eluil,-dj/,1) This is particularly important if
`one is combining word frequencies with other attributes. As
`before, this increases the match if e is positive-for the case
`where the algorithm failed to predict an article that the user
`read, this time by decreasing the weights on those charac-
`teristics for which the user's target profile u1 differs from the
`article's profile dj. Again, the size of e determines how many
`example articles one must see to replace what was originally
`believed. Unlike the procedure for adjusting u, one also
`make use of the fact that the above algorithm decreases the
`match if e is negative-for the case where the algorithm
`predicted an article that the user did not read. The denomi(cid:173)
`nator of the expression prevents weights from shrinking to
`zero over time by renormalizing the modified weights w/ so
`that they sum to one. Both u and w can be adjusted for each
`article accessed. When e is small, as it should be, there is no
`conflict between the two parts of the algorithm. The selected
`user's search profile set is updated at step 1108.
`Purther Applications of the Piltering Technology
`The news clipping service may deliver news articles (or
`advertisements and coupons for purchasables) to off-line
`
`TT0007222
`
`
`
`Case 6:20-cv-00810-ADA Document